Node.tpl.php, список доступных переменных
Прислано: direqtor
чт, 29/05/2008 - 07:32
Не нашел полного русского перевода доступных переменных в разных шаблонах, потому взялся за это сам.
Для тех, кто английского не знает. :)
Принимаются исправления.
node.tpl.php, список доступных переменных (Drupal 6)
node.tpl.php, список доступных переменных (Drupal 5)
- direqtor's blog
- Для комментирования войдите или зарегистрируйтесь
спасибо
- Для комментирования войдите или зарегистрируйтесь
Это нужно знать всем! Подшил в книги и сохранил у себя.
Решение было сохранено на сайте DrupalCookBook.ru:
Переменные файла node.tpl.php.
Авторы, предложившие решения, также указаны в сохранённой статье.
- Для комментирования войдите или зарегистрируйтесь
Зашел на Drupal CookBook.ru под 3-м Firefox - правая колонка (теги) съехала в самый низ страницы, поправьте баг верстки.
- Для комментирования войдите или зарегистрируйтесь
Топикстартеру, ну зачем Вы вводите народ в заблуждение?
На самом деле, НЕТ ТАКОГО СПИСКА.
Вы не можете перечислить все возможные переменные, которые употребляются в шаблонах.
А причина достаточно тривиальна. Вы сами устанавливаете, какие переменные там будут.
Более корректное название этой записи это "Дефолтные переменные".
Вы вот это читали: http://drupal.ru/node/15296 ???
Приведу небольшой пример:
Вот я пишу в template.php
<?php
function _phptemplate_variables($hook, $vars) {
if ($hook == 'page') {
$vars['time'] = time();
}
if ($hook == 'node') {
$vars['new_var'] = 'Это новая переменная, ура!!!!';
}
return $vars;
}
?>При этом в page.tpl.php (про который у вас ни слова) появится новая переменная $time со штампом времени.
И в node.tpl.php появится новая переменная $new_var
- Для комментирования войдите или зарегистрируйтесь
ужас. изучайте внутренности phptemplate engine, там есть как раз подготовка переменных для разных темплейтов, открываем
function phptemplate_node в themes\engines\phptemplate\phptemplate.engine и смотрим какие переменные будут доступны в нашем node.tpl.
- Для комментирования войдите или зарегистрируйтесь
Вот кстати, на этой странице: http://api.drupal.org/api/file/modules/node/node.tpl.php есть таки ссылка на template_preprocess()
http://api.drupal.org/api/function/template_preprocess/6
(Это для шестого Друпала)
А у Вас про это ни слова....
- Для комментирования войдите или зарегистрируйтесь
Я перевел один конкретный текст. Будет время пойду по ссылкам глубже и переведу далее...
- Для комментирования войдите или зарегистрируйтесь
И вообще...
Переведены две страницы. Источники указвны. На большее пока времени нет.
Если у меня есть неточности в этих переводах - укажите.
А про то, что при желании я в PHPtemplate могу назначить любую переменную, знаю без вас.
А кто-то ведь из здешних просто английского не знает...
- Для комментирования войдите или зарегистрируйтесь
Список, аднако, есть. Я даже указал на какой странице.
Но, наверное, я в таком же заблуждении. Понадобилось тут вместо $submitted вывести просто дату.
Залез на drupal.org - выяснил нужную переменную, но, сцуко, подумал, млять, о других....
- Для комментирования войдите или зарегистрируйтесь
Да я, собственно, ничего против Вас и против Вашего стремления сделать свой вклад в сообщество не имею.
Я и сам делюсь с сообществом своими наработками.
Просто хочется, чтоб люди начали правильно и грамотно оформлять свои мысли и выражаться яснее.
В Вашем случае нужно было как минимум указать, что это список переменных, доступных по умолчанию. И в конце перевода включить ссылку на соответствующую функцию (как это было в оригинале).
Воспринимайте это просто как здоровую критику.
- Для комментирования войдите или зарегистрируйтесь
seaji, лично мне не кажется, что "здововая критика" начинается с утверждения "Топикстартеру, ну зачем Вы вводите народ в заблуждение?"
Если цель сделать уточнение, то не нужно на автора наезжать. А в остальном вы правы.
- Для комментирования войдите или зарегистрируйтесь
Извиняюсь.
- Для комментирования войдите или зарегистрируйтесь
Добавил ссылки, что просили... :)
- Для комментирования войдите или зарегистрируйтесь
Кстати, залил эти переводы на api.drupal.ru
- Для комментирования войдите или зарегистрируйтесь
Установить модуль devel, в файле шаблона:
<?php
dpm(get_defined_vars());
?>- Для комментирования войдите или зарегистрируйтесь
<?php
dpm(get_defined_vars());
?>Вот спасибо! Вроде обычная php функция, а пользы то сколько!
Единственное что можно добавить так это то, что когда круумо показывает ∞ (Recursion)
нужно просто передавать именно этот элемент аргументом для dpm() и тогда уже смотреть.
2sdik@drupal.org еще раз спосибо! Как говорится век живи век учись, было б еще побольше таких, которые действителдьно чет полезное говорят, а не так...
- Для комментирования войдите или зарегистрируйтесь
А как в page.tpl.php узнать node-type ??? Мне это нужно для создания условия, что если выводится такой тип ноды, то шаблон строим такто, если другой тип node то так-то...
Спасибо!
- Для комментирования войдите или зарегистрируйтесь










Комментарии