it-swarm-ko.tech

특정 블록에 대해서만 전처리 변수

특정 블록에 대해서만 전처리 변수가 가능합니까? mytheme_preprocess_block__aggregator(&$vars) 같은 함수를 만들었지 만 작동하지 않습니다.

-- 편집하다 --

Drupal 8 https://drupal.org/node/1751194

10
ya.teck

불행히도 그렇게하는 방법은 없습니다 (hook_form_alter ()와 유사).

가장 좋은 방법은 $ variables [ 'block']-> bid를 사용하여 원하는 블록에만 수정 사항을 적용하는 것입니다.

function mytheme_preprocess_block(&$variables) {
  if ($variables['block']->bid === 'target_block_id') {
    // do something for this block
  } else if ($variables['block']->bid === 'other_target_block_id') {
    // do something else for this other block
  }
}
20
Alex Weber

확인하기 위해 Drupal 8)에서 특정 블록에 대한 전처리 함수를 작성할 수 있습니다.

Drupal 8

mytheme_preprocess_block__system_branding_block(&$vars) {
  // Make changes to the the system branding block
}

그러나 hook_preprocess_block 및 플러그인 ID를 사용할 수도 있습니다.

function mytheme_preprocess_block(&$vars) {
  if ($vars['plugin_id'] == 'system_branding_block') {
    // Make changes to the the system branding block
  }
}

Alex가 언급했듯이 Drupal 7)에서 HOOK_preprocess_block 및 ID 확인을 고수해야합니다.

중복 7

mytheme_preprocess_block(&$vars) {
  if ($vars['block']->bid === 'target_block_id') {
    // make changes to this block
  }
}
2
bryanbraun