¿Cuál es la forma correcta de preprocesar los elementos de la colección de campo para agregar el nombre y el apellido de la clase?

9

¿Cómo agregar 'first'y 'last'clasificar nombres además de 'odd'/ 'even'para elementos de colección de campo en funciones de preproceso?

Alex
fuente
1
sin probar: dropbucket.org/node/764
commonpike
Sí, eche un vistazo adentrohook_preprocess_field(&$vars)
leymannx

Respuestas:

22

Normalmente lo haría en MYTHEME_preprocess_field_collection_item (), pero los elementos de la colección de campos no tienen su propio preproceso. Afortunadamente, son entidades, por lo que puede usar el preproceso de entidad para crear su propia función de preproceso de colección 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
fuente
2

En Drupal 8, la función de preproceso existe sin tener que agregar una:

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