Quelle est la bonne façon de prétraiter les éléments de collection de champs pour ajouter des noms de première et de dernière classe?


9

Comment ajouter 'first'et 'last'classer des noms en addition à 'odd'/ 'even'pour des éléments de collection de champs dans les fonctions de prétraitement?



Yepp, jetez un œil à l'intérieurhook_preprocess_field(&$vars)
leymannx

Réponses:


22

Vous feriez normalement cela dans MYTHEME_preprocess_field_collection_item (), mais les éléments de collection de champs n'ont pas leur propre prétraitement. Heureusement, ce sont des entités, vous pouvez donc utiliser le prétraitement d'entité pour créer votre propre fonction de prétraitement de collection de champs:

/**
 * 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.
}

2

Dans Drupal 8, la fonction de prétraitement existe sans avoir à en ajouter une:

/**
 * Implements hook_preprocess_field_collection_item().
 */
function mymodule_preprocess_field_collection_item(array &$vars, $hook) {
  //dpm($vars);
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.