Node.tpl.php, список доступных переменных

Главные вкладки

Аватар пользователя direqtor direqtor 29 мая 2008 в 11:32

Не нашел полного русского перевода доступных переменных в разных шаблонах, потому взялся за это сам.

Для тех, кто английского не знает. Smile

Принимаются исправления.

node.tpl.php, список доступных переменных (Drupal 6)

node.tpl.php, список доступных переменных (Drupal 5)

Комментарии

Аватар пользователя VladSavitsky VladSavitsky 29 мая 2008 в 20:57

Это нужно знать всем! Подшил в книги и сохранил у себя.
Drupal CookBook - Готовить может каждый!Решение было сохранено на сайте DrupalCookBook.ru:

Переменные файла node.tpl.php.

Авторы, предложившие решения, также указаны в сохранённой статье.

Аватар пользователя mityok mityok 29 мая 2008 в 22:48

Зашел на Drupal CookBook.ru под 3-м Firefox - правая колонка (теги) съехала в самый низ страницы, поправьте баг верстки.

Аватар пользователя seaji seaji 29 мая 2008 в 23:25

Топикстартеру, ну зачем Вы вводите народ в заблуждение?
На самом деле, НЕТ ТАКОГО СПИСКА.
Вы не можете перечислить все возможные переменные, которые употребляются в шаблонах.
А причина достаточно тривиальна. Вы сами устанавливаете, какие переменные там будут.

Более корректное название этой записи это "Дефолтные переменные".
Вы вот это читали: 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

Аватар пользователя direqtor direqtor 30 мая 2008 в 14:28

Список, аднако, есть. Я даже указал на какой странице.
Но, наверное, я в таком же заблуждении. Понадобилось тут вместо $submitted вывести просто дату.
Залез на drupal.org - выяснил нужную переменную, но, сцуко, подумал, млять, о других....

Аватар пользователя restyler restyler 29 мая 2008 в 23:28

ужас. изучайте внутренности phptemplate engine, там есть как раз подготовка переменных для разных темплейтов, открываем
function phptemplate_node в themes\engines\phptemplate\phptemplate.engine и смотрим какие переменные будут доступны в нашем node.tpl.

Аватар пользователя direqtor direqtor 30 мая 2008 в 14:22

И вообще...
Переведены две страницы. Источники указвны. На большее пока времени нет.
Если у меня есть неточности в этих переводах - укажите.

А про то, что при желании я в PHPtemplate могу назначить любую переменную, знаю без вас.

А кто-то ведь из здешних просто английского не знает...

Аватар пользователя seaji seaji 30 мая 2008 в 15:36

Да я, собственно, ничего против Вас и против Вашего стремления сделать свой вклад в сообщество не имею.
Я и сам делюсь с сообществом своими наработками.
Просто хочется, чтоб люди начали правильно и грамотно оформлять свои мысли и выражаться яснее.

В Вашем случае нужно было как минимум указать, что это список переменных, доступных по умолчанию. И в конце перевода включить ссылку на соответствующую функцию (как это было в оригинале).

Воспринимайте это просто как здоровую критику.

Аватар пользователя VladSavitsky VladSavitsky 30 мая 2008 в 21:00

seaji, лично мне не кажется, что "здововая критика" начинается с утверждения "Топикстартеру, ну зачем Вы вводите народ в заблуждение?"
Если цель сделать уточнение, то не нужно на автора наезжать. А в остальном вы правы.

Аватар пользователя RoSk0 RoSk0 20 мая 2010 в 13:43

"<a href="mailto:sdik@drupal.org">sdik@drupal.org</a>" wrote:
<?php
dpm(get_defined_vars());
?>

Вот спасибо! Вроде обычная php функция, а пользы то сколько!

Единственное что можно добавить так это то, что когда круумо показывает ∞  (Recursion)
нужно просто передавать именно этот элемент аргументом для dpm() и тогда уже смотреть.

2sdik@drupal.org еще раз спосибо! Как говорится век живи век учись, было б еще побольше таких, которые действителдьно чет полезное говорят, а не так...

Аватар пользователя toorr2p toorr2p 27 ноября 2010 в 10:35

А как в page.tpl.php узнать node-type ??? Мне это нужно для создания условия, что если выводится такой тип ноды, то шаблон строим такто, если другой тип node то так-то...
Спасибо!