Drupal 7: Controlar completamente los template de Field collection
El muy jodido tiene mas vueltas que una oreja cuando de theming se trata.
NOTA: todos los templates que hay que crear ponlos en tu theme. Lo ideal es dentro del directorio tu_theme/templates/field_collection o algo similar.
Primero creamos el tpl field-collection-view.tpl.php que es el wrapper que hay entre el html del field y el del field collection. Pon esto dentro:
1 |
<?php print $element['#children']; ?> |
Luego field-collection-item.tpl.php que es el tpl que controla el render de cada uno de los item individuales de la colección:
1 |
<?php print render($content); ?> |
Por ultimo necesitamos field-field-collection.tpl.php (ojo que mi wordpress junta los dos guiones), un tpl para el field que contiene todo lo que field collection entregue:
1 2 3 |
<?php foreach ($items as $delta => $item): ?> <?php print render($item); ?> <?php endforeach; ?> |
Y listo! ya tenes control a todos los niveles del markup que va a entregar un field collection.
Chau!
Gracias monstruo! Estupendo!
Un abrazo.
jlbellido++ XD
Y si lo que quiero es acceder a los subcampos del field_collection por separado para poder hacerle el theming?
Regina, si tienes un field collection llamado “field_grupo_de_cosas” y dentro tienes dos field mas: “field_titulo” y “field_imagen“, los nombres de los tpl de cada uno sería:
field-field_titulo-field_grupo_de_cosas.tpl.php
field-field_imagen-field_grupo_de_cosas.tpl.php
NOTA: son dobles guiones los que hay en los nombres, pero el puto wordpress los convierte en uno 🙂 (field[- -]field_titulo[- -]field_grupo_de_cosas.tpl.php)
El código que va dentro de cada uno de los field tomalo de modules/field/theme/field.tpl.php que es un buen punto de partida.
Saludos.
Muchas gracias Capy! Quizás no sea la forma correcta de hacer esto pero al final en lugar de crear todos esos .tpl en mi node-myContentType.tpl.php hice lo siguiente
al tener todos los field en el mismo archivo me parece más fácil para hacerle el theming!
Saludos
Siendo mi campo field_galeria_imagenes que tiene un subcampo field_imagen, me anduvo así: en la estructura de directorios themes > miplantilla > templates > field_galeria_imagenes puse los archivos:
field-field-galeria_imagenes.tpl.php: field[- -]field-galeria_imagenes.tpl.php
field[ - -]field_imagen[- -]field_galeria_imagenes.tpl.php
field-collection-item[- -]field_galeria_imagenes.tpl.php
Con los contenidos especificados en el post.
Muchas gracias por la info!!!