_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 17 FebruaryEurope/MoscowbFri, 17 Feb 2012 13:21:38 +0400000000pmFri, 17 Feb 2012 13:21:38 +040012 2012, 13:21:38

3 ответа


5

В Drupal 7 эта функция препроцесса автоматически не будет получена, как это было в Drupal 6. Существует обходное решение здесь , если вы хотите того же поведения, что и Drupal 6. Для вопроса.

ответил Pontus Nilsson 29 J000000Sunday12 2012, 14:15:38
5

Просто вызовите препроцесс для каждого вида.

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
}
ответил mrded 17 MonEurope/Moscow2012-12-17T14:17:58+04:00Europe/Moscow12bEurope/MoscowMon, 17 Dec 2012 14:17:58 +0400 2012, 14:17:58
0

Конечно, это зависит от того, какая версия Drupal вы используете. Следите за этой проблемой . В нем говорится, что вы не можете иметь функцию предпроцесса представлений, если у вас нет соответствующего файла tpl.

ответил Badri 17 FebruaryEurope/MoscowbFri, 17 Feb 2012 15:16:21 +0400000000pmFri, 17 Feb 2012 15:16:21 +040012 2012, 15:16:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132