it-swarm.com.de

Zugriff auf eine Feldsammlung

Mein Inhaltstyp verwendet eine Feldsammlung (field_site_web), damit Benutzer mehrere Websites eingeben können, die aus einem Namen (field_site_name) und einer Internetverbindung (field_link) bestehen.

Ich möchte eine foreach() - Schleife verwenden, um diesen Wert abzurufen, weiß aber nicht, wie ich auf diese Felder zugreifen soll. Wie kann ich?

BEARBEITEN

wie kann ich den Fehler in der Zeile des Foreach vermeiden? Ich habe es versucht, funktioniert aber nicht:

if($fc_fields != false){
  // Extract the field collection item ids
  $ids = array();
  foreach ($fc_fields as $fc_field) {
    $ids[] = $fc_field['value'];
  }
}
5
Antilope

Die Feldsammlung ist eine eigenständige Entität. Die auf Ihrem Knoten gespeicherten Werte sind eine Liste von IDs für Feldsammlungselemente, die Sie manuell laden müssen, um eine Schleife durchzuführen. Etwas wie das:

// Get the field collection items.
$fc_fields = field_get_items('node', $node, 'field_field_collection_field');

// Extract the field collection item ids
$ids = array();
foreach ($fc_fields as $fc_field) {
  $ids[] = $fc_field['value'];
}

// Load up the field collection items
$items = field_collection_item_load_multiple($ids);

// Loop through the items and extract field values
foreach ($items as $item) {
  $link_fields = field_get_items('field_collection_item', $item, 'field_link');
  $link = array_shift($link_fields);
  $url = $link['url'];

  $site_name_fields = field_get_items('field_collection_item', $item, 'field_site_name');
  $site_name = array_shift($site_name_fields);
  $name = $site_name['value'];
}
12
Clive