тема ($ hook, $ variable = array ()) и как она работает в Drupal 7 - PullRequest
4 голосов
/ 24 ноября 2011

Я пытаюсь вывести тематический контент на страницу, и я пытаюсь прочитать о функции theme () и о том, как она работает. Как я понимаю, он предоставляет метод для генерации тематического HTML. Это именно то, что я хочу. Теперь я не понимаю, как передать HTML или переменные, которые мне нужны, чтобы генерировать HTML. Что такое параметр $ hook? Это файл .tpl.php? Как мне структурировать этот файл так, чтобы HTML отображался в разделе содержимого страницы? Может кто-нибудь объяснить функцию theme () очень простым способом?

Спасибо

1 Ответ

11 голосов
/ 24 ноября 2011

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

function mymodule_theme($existing, $type, $theme, $path) {
    return array(
        'your_theme_key' => array(
            'variables' => array(
                'nid' => NULL,
                'title' => NULL
            ),
            'template' => 'your_template_filename', // do not include .tpl.php
            'path' => 'path-to-your-template-file'
        )
    );
}

После этого вы должны создать файл your_template_filename.tpl.php в папке вашего модуля, и в этом файле у вас будут переменные $nid и $title (в этом примере).Ваш файл шаблона будет выглядеть так:

// define your html code using variables provided by theme
<div class="node node-type" id="node-<?php print $nid; ?>">
    <h3><?php print l($title, "node/{$nid}"); ?></h3>
</div>

После этого вы сможете использовать свою тему в любых модулях на вашем сайте.Должно быть названо так:

$variables = array(
    'nid' => $nid,
    'title' => $title
);
$output = theme('your_theme_key', $variables);
print $output;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...