Функция Drupal theme () и пользовательский шаблон - PullRequest
2 голосов
/ 30 октября 2010

У меня есть пользовательский модуль, который возвращает данные из вызова веб-службы.Он возвращается из XML-ответа, который я преобразую в массив.

Как только у меня есть массив, я делаю:

$output = theme('search_srs_results', $data);
return $output;

Но я получаю белый экран.Нет ошибок apache / php / watchdog.

Я делал это раньше в другом модуле без каких-либо затруднений.Моя цепочка тем определена и указывает на файл шаблона, передавая аргумент $ data.Если я дам дамп $ output до того, как он будет возвращен, его NULL.

$ data определенно будет заполнен массивом до того, как он будет тематическим.рендеринг отсутствует, белый экран.

Я попытался снова прочитать документы на hook_theme и theme (), но, похоже, я не делаю ничего плохого.

Вот функции темы:

/**
 * Implementation of hook_theme()
 */

function srs_finder_theme() {
  return array(
    'search_srs_results' => array(
      'template' => 'srs-finder-results',
      'arguments' => array('data' => null),
    ),
  );
}

/**
 * Implementation of hook_preprocess()
 */

function srs_finder_preprocess_search_srs_results(&$vars) {
  $data = $vars['data'];
}

Чего не хватает?

1 Ответ

3 голосов
/ 30 октября 2010

Я не понимаю, зачем вам вообще нужна функция hook_preprocess().$data должен автоматически быть доступен для srs-finder-results.tpl.php.Это потому, что вы передаете эту переменную в вызове theme('src_src_results', $data) и факте, что вы объявили, что в hook_theme() есть 1 аргумент.Файл

srs-finder-results.tpl.php должен находиться в папке модуля src_finder.Вы должны реализовать код для этого!(В качестве альтернативы, как прокомментировал выше nikit, предоставьте функцию theme_search_srs_results. В этом случае вам нужно будет удалить запись массива template)

[Примечание: если другие пользователи модуля хотят переопределить эту темушаблон они всегда могут предоставить собственную реализацию srs-finder-results.tpl.php в папке темы активной темы.]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...