drupal-header

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:

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:

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:

Y listo! ya tenes control a todos los niveles del markup que va a entregar un field collection.

Chau!

6 Comments

  • Jose Luis Bellido 22/07/2014

    Gracias monstruo! Estupendo!
    Un abrazo.

    • Capy 22/07/2014

      jlbellido++ XD

  • Regina 14/12/2014

    Y si lo que quiero es acceder a los subcampos del field_collection por separado para poder hacerle el theming?

    • Capy 15/12/2014

      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.

  • Regina 15/12/2014

    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

  • Ignacio Novello 08/03/2016

    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!!!

:).