Как вывести HTML из модуля drupal хорошим способом - PullRequest
5 голосов
/ 06 мая 2011

это может быть просто, но я только начал использовать Drupal (6 btw).

Я строю модуль и получил обратный вызов, который должен вернуть html.Я мог бы просто сделать что-то вроде этого:

function myModule_myFunction(){
    $r = '';
    $r .= '<h1>'.$variable.'</h1>';
    return $r;
} 

Но я бы предпочел разделить логику и представление и поместить это в отдельный файл или что-то в этом роде.HTML в строках безобразен!

Что такое «друпал»? Насколько мне известно, не нужно использовать систему тем .

Ответы [ 2 ]

7 голосов
/ 06 мая 2011

Система тем - это друпский способ сделать это.

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

Если нет, нужно ...

  1. Объявите новую функцию темы с помощью hook_theme () . Префикс этого с вашим модулем, что-то вроде yourmodule_something.

  2. Создайте функцию темы (или шаблон), функция темы должна иметь префикс theme_, поэтому что-то вроде function theme_yourmodule_something().

  3. Обязательно очистите все кэши, чтобы Drupal знал о функции вашей темы.

  4. Вызовите функцию темы с помощью theme () : theme('yourmodule_something', $argument1, $argument2):

Более подробную информацию можно найти на связанных страницах документации.

2 голосов
/ 06 мая 2011

hook_theme впервые используется для определения шаблонов и функций для тематического вывода.

Затем используйте эти шаблоны или функции темы для вывода любой разметки, например, для вызова theme_my_content или my-content.tpl.php с парой параметров, которые вы можете вызвать:

theme('my_content', $param1, $param2);

...