it-swarm-ja.com

_preprocess_views_view__ビュー名を指定

「taxonomy_term_custom」という名前のビューがあります。以下の前処理コードは、このビューに対して特定の処理を実行するように機能しますが、次のようにフックをオーバーライドします。

function mywebsite_glue_preprocess_views_view__taxonomy_term_custom(&$vars) {
}

これは可能ですか?

function mywebsite_glue_preprocess_views_view(&$vars) {
  if($vars['view']->name == 'taxonomy_term_custom'){
    dpm($vars);
    // do stuff
  }
}
6
Jos Vaessen

Drupal 7では、この前処理関数はDrupal 6.で行ったように自動的に取得されません。回避策があります here Drupal 6.と同じ動作が必要な場合。 issue。 の場合

5
Pontus Nilsson

ビューごとにプリプロセスを呼び出すだけです。

function mywebsite_glue_preprocess_views_view(&$vars) {
  $function_name = __FUNCTION__ . '__' . $vars['view']->name;
  if (function_exists($function_name)) {
    $function_name($vars);
  }
}

function mywebsite_glue_preprocess_views_view__taxonomy_term_custom(&$vars) {
  dpm($vars);
  // do stuff
}
5
mrded

確かに、これは使用しているDrupalのバージョンによって異なります。 この問題 に注意してください。ビューの前処理関数は、対応するtplファイルがあります。

0
Badri