Я сейчас нахожусь в тупике с Drupal 6, и я надеюсь, что вторая пара глаз могла бы указать на некоторую синтаксическую субаренду, которую я пропустил ранее этим утром.
Давайте скажемУ меня есть тема под названием my_theme
.
Это тема, которая подтемы из Ginkgo, тема, которая, в свою очередь, подтемы из Rubik, в то время как в подтемах tun от Tao, довольно распространенная тема сброса CSS.
Я пытаюсь понять, как объявить свои собственные функции темы, чтобы я мог очистить пометку на платной странице, над которой я работаю для сайта.
Теперь мое понимание темыесли вы зарегистрируете тематическую функцию с помощью hook_theme, передав ее в массив с именем функции, вы сможете вызвать ее в будущем с помощью theme_function_name из вашей темы.
Например, еслиесли бы у меня был модуль с именем my
, я бы заполнил hook_theme, как показано ниже, определив имя функции и определив, какой аргумент должен быть передан в нее:
<?php
function my_theme() {
$items = array();
$items['randomtext'] = array('arguments' => array('element' => NULL));
$items['button_links'] = array('arguments' => array( '$links' => NULL, '$attributes' => NULL));
return $items;
};
Теперь яПосле того, как функции зарегистрированы, мне просто нужно реализовать их как этот несколько надуманный пример:
function theme_randomtext($element) {
$output = ' <h1>This is some very random text with' . ' this text concatenated: ' . $element . '</h1>';
return $output;
}
Теперь я могу использовать эту новую функцию, вызывая
<php
print theme('randomtext', 'some arbitrary words')
?>
И ожидаю, что следующий контентбыть возвращенным:
<h1>This is some very random text with this text concatenated: some arbitrary words</h1>
Я получаю нада.
И я не знаю почему.Когда я просматриваю реестр тем, моя функция отображается как my_randomtext
- я попытался вызвать обе эти опции, если мне нужно было добавить префикс темы:
theme('my_randomtext', 'getting desparate');
theme('randomtext', 'really losing my rag now');
Все еще нетудачи.
Почему эти функции темы могут не работать?И что дает вам это преимущество по сравнению с простым объявлением такой функции в теме?
function manual_random_text($element) {
$output = ' <h1>This is gives me everything I aleady need,
'without relying on the weird themeing sytem. It's perfect for' . $element . '</h1>';
return $output;
}