Qual é a maneira correta de pré-processar os itens da coleção de campos para adicionar o primeiro e o último nomes de classe?

9

Como adicionar 'first'e 'last'nomes de classes em adição a 'odd'/ 'even'para itens de coleção de campos em funções de pré-processo?

Alex
fonte
11
não testado: dropbucket.org/node/764
commonpike 25/10
Yepp, ter um olhar para dentrohook_preprocess_field(&$vars)
leymannx

Respostas:

22

Você normalmente faria isso em MYTHEME_preprocess_field_collection_item (), mas os itens da coleção de campos não têm seu próprio pré-processo. Felizmente, são entidades, portanto você pode usar o pré-processo da entidade para criar sua própria função de pré-processo da coleção de campos:

/**
 * Implements template_preprocess_entity().
 */
function MYTHEME_preprocess_entity(&$variables, $hook) {
  $function = 'MYTHEME_preprocess_' . $variables['entity_type'];
  if (function_exists($function)) {
    $function($variables, $hook);
  }
}

/**
 * Field Collection-specific implementation of template_preprocess_entity().
 */
function MYTHEME_preprocess_field_collection_item(&$variables) {
  $variables['classes_array'][] = 'your-class-here';
  // Plus whatever other preprocessing you want to do.
}
ksenzee
fonte
2

No Drupal 8, a função de pré-processo existe sem a necessidade de adicionar uma:

/**
 * Implements hook_preprocess_field_collection_item().
 */
function mymodule_preprocess_field_collection_item(array &$vars, $hook) {
  //dpm($vars);
}
Darvanen
fonte