Apa cara yang tepat untuk preprocess item koleksi lapangan untuk menambahkan nama kelas pertama dan terakhir?

9

Bagaimana cara menambahkan 'first'dan 'last'nama kelas sebagai tambahan ke 'odd'/ 'even'untuk item koleksi bidang dalam fungsi preproses?

Alex
sumber
1
belum teruji: dropbucket.org/node/764
commonpike
Yepp, lihat ke dalamhook_preprocess_field(&$vars)
leymannx

Jawaban:

22

Anda biasanya melakukan ini di MYTHEME_preprocess_field_collection_item (), tetapi item koleksi lapangan tidak memiliki preprocess sendiri. Untungnya, mereka adalah entitas, sehingga Anda dapat menggunakan preprocess entitas untuk membuat fungsi preprocess kumpulan bidang Anda sendiri:

/**
 * 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
sumber
2

Di Drupal 8 fungsi preprocess ada tanpa harus menambahkan satu:

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