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

:).