Um eine FieldCollection (egal wie komplex diese ist) in einem Template auszugeben, benötigt man lediglich ein paar Zeilen Code. Nachfolgend wird von folgendem ausgegangen:

  1. Der Content-Type (Name: dummy) hat eine FieldCollection mit dem Feldnamen “field_downloads”
  2. Die FieldCollection wiederum hat zwei Felder namens field_download_title (Typ: Text) und field_download_content (Typ: Datei)

Mit folgendem Code kann man nun in dem Node-Template (node–dummy.tpl.php) die Inhalte der FieldCollection ausgeben.

// Hier werden die IDs gespeichert
$items_ids = array();
// Prüfen, ob es überhaupt Downloads in diesem Node gibt
if(!empty($node->field_downloads){
  // Über alle iterieren und die ID speichern
  foreach($node->field_downloads[LANGUAGE_NONE] as $id){
    $items_ids[] = $id['value'];
  }
  // Der Funktion entity_load() übergeben wir nun die gesammelten IDs, die es zu laden gilt
  $fc = entity_load('field_collection_item', $items_ids);
  // Das zurückgelieferte Array hält als key die ID und als Value das FieldCollection-Objekt mit den dazugehörigen Feldern
  // Nachdem wir die IDs nicht benötigen, holen wir über array_values() nur die Objekte zur weiteren Verarbeitung
  $fc_contents = array_values($fc);
  print '<ul>';
  // Nun iterieren wir über alle FieldCollection-Objekte, um die Downloads entsprechend auszugeben
  // Die Variable $content hält unser aktuelles FieldCollection-Objekt
  foreach($fc_contents as $key => $content){
    // Hier speichern wir uns den Link-Titel
    $link_title = $content->field_download_title[LANGUAGE_NONE][0]['value'];
    // Wir nützen hier die Drupal-Funktion l() um den Link mit dem vorher gespeicherten Link-Titel auszugeben
    print '<li>' . l($link_title, $content->field_download_content[LANGUAGE_NONE][0]['uri']) . '</li>';
  }
  print '</ul>';
}

br /> Natürlich sollte die Ausgabe der Liste von einer Theming-Funktion übernommen werden, damit andere Module etc. darauf Einfluss nehmen können. Darauf wurde hier bewusst verzichtet, um den Code übersichtlich und verständlich zu halten.

Viel Spaß beim ausprobieren