回答:
これが直接役立つかどうかはわかりませんが、DropBucketでこのコードスニペットを見つけて、同様のことができるようになりました。
/**
* Implements hook_preprocess_entity().
*/
function wwvs_slices_preprocess_entity(&$variables) {
if ($variables['entity_type'] == 'paragraphs_item') {
$edge = field_get_items('paragraphs_item', $variables['paragraphs_item'], 'field_edge');
if ($edge && $edge[0]['value']) {
$variables['classes_array'][] = 'slice--edge';
}
}
}
私のユースケースでは、段落で使用されているタイトルフィールドのURLセーフバージョンを使用して、段落エンティティにIDを追加したいと考えていました。これが私の実装です:
/**
* Implements hook_preprocess_entity().
*/
function foo_preprocess_entity(&$variables) {
if ($variables['entity_type'] == 'paragraphs_item') {
if(isset($variables['elements']['pp_title']['#items'][0]['value'])){
$title = $variables['elements']['pp_title']['#items'][0]['value'];
$title = strtolower(drupal_clean_css_identifier($title));
$variables['attributes_array']['id'] = $title;
}
}
}
これがお役に立てば幸いです。
Drupal 8では、以下を使用できますhook_preprocess_HOOK
。
/**
* Implements hook_preprocess_HOOK().
*/
function MYTHEME/MYMODULE_preprocess_paragraph(&$variables) {
}
/**
* Implements hook_preprocess_HOOK().
*/
function MYTHEME/MYMODULE_preprocess_paragraph__TYPE(&$variables) {
}