วิธีที่เหมาะสมในการประมวลผลรายการคอลเลกชันฟิลด์เพื่อเพิ่มชื่อชั้นแรกและชั้นสุดท้ายคืออะไร?


คำตอบ:


22

โดยปกติแล้วคุณจะทำสิ่งนี้ใน MYTHEME_preprocess_field_collection_item () แต่รายการคอลเลกชันฟิลด์ไม่มีการประมวลผลล่วงหน้าของตัวเอง โชคดีที่มันเป็นเอนทิตีดังนั้นคุณจึงสามารถใช้เอนทิตี preprocess เพื่อสร้างฟังก์ชั่น preprocess ของคอลเลกชันของคุณเอง:

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

ในDrupal 8มีฟังก์ชัน preprocess อยู่โดยไม่ต้องเพิ่มอีกหนึ่งฟังก์ชัน:

/**
 * Implements hook_preprocess_field_collection_item().
 */
function mymodule_preprocess_field_collection_item(array &$vars, $hook) {
  //dpm($vars);
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.