hook_theme () не передает аргументы - PullRequest
0 голосов
/ 18 октября 2010

Я сейчас пишу модуль, который генерирует блок. Выходные данные должны быть определены шаблоном. Ничего особенного, но аргументы, похоже, не передаются должным образом.

Это тема-метод:

/* # Theme {{{*/
function browse_by_taxonomy_theme() {
  return array(
    'browse_by_taxonomy_block' => array(
      'template' => 'browse_by_taxonomy_block',
      'arguments' => array(
        'next' => null,
        'previous' => null,
        'term' => null,
        'hide_if_null' => variable_get('browse_by_taxonomy_hide_links', false)
      )
    )
  );
}/*}}}*/

И это так называется:

$block['content'] = theme('browse_by_taxonomy_block', "next", "previous", $tid);

Даже когда я ставлю его на минимум, он не работает:

function browse_by_taxonomy_block($op = 'list', $delta = 0, $edit = array()) {  
  switch ($op) {
    case 'list':
      $block = array(array('info' => t("Browse by taxonomy")));
      return $block;

    case 'view':
      # […] Dragons be here
      return array(
        'subject' => null, 
        'content' => theme('browse_by_taxonomy_block', "next", "previous", "p")
      );
  }
}/*}}}*/

Но в моем шаблоне все равно null

var_dump($previous); # => NULL
var_dump($next); # => NULL
var_dump($hide_if_null); # => NULL
var_dump($term); # => NULL

В другом модуле, который я написал, я сделал то же самое, и он работает. Что я делаю неправильно на этот раз?

Ответы [ 2 ]

1 голос
/ 18 октября 2010

Скорее всего, проблема вызвана проблемами с кэшированием, так как Drupal кэширует всю информацию о темах для повышения производительности.

0 голосов
/ 25 января 2011

Кэширование - это дьявол, в этом случае мой друг ... просто обновите вашу тему, и она, скорее всего, будет работать. Это было в моем случае, по крайней мере, после долгих долгих поисков, наполненных множеством ругательств и ругательств, я наконец попробовал это и БИНГО ...

...