Не получается вывести поле в шаблоне ноды

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

Аватар пользователя psyh psyh 16 июня 2012 в 12:27

Здравствуйте.
Уже 2 дня бьюсь над выводом поля file_field в шаблоне ноды. В шестом друпале делал это сто раз, дело то минутное.
А в Семерке никак не пойму как вывести. Перебрал уже сотню вариантов.
Поставил модуль content template, чтобы в нем подсмотреть вид переменной, но этот модуль сам неправильно генерирует страницу.
В общем работает у меня только один вариант <?php print render($content['field_file']); ?>
Но так выводится поле в стандартном виде, а я хочу вытащить url, чтобы вписать нужный анкор.

Результаты поиска выдают такой вариант <?php print $node->field_name[LANGUAGE_NONE][0]['value'];?>
Но подобный код вообще вызывает ошибку, я пробовал менять value на uri. <?php print $node->field_name[LANGUAGE_NONE][0]['uri'];?>

Уже всю голову сломал, и поиск ничего не дал. Либо проблемы не существует и я ошибся в какой-то мелочи. Либо никто не сталкивался с такой задачей, что было бы невероятно.

Комментарии

Аватар пользователя Alexei91 Alexei91 16 июня 2012 в 18:01

http://www.sooource.net/drupal7-node-fields - грубой силой без CSS и учета мультиязычности.
http://www.sooource.net/drupal7-node-view - стандарт по образцу Bartik.
http://www.sooource.net/drupal-7-get-imagefield - вытягивание картинок по fid.

Выбирайте любой.

Аватар пользователя psyh psyh 18 июня 2012 в 19:18

<?php var_dump($node->field_file?> выдало вот это:

array(1) { ["und"]=> array(1) { [0]=> array(11) { ["fid"]=> string(1) "4" ["display"]=> string(1) "1" ["description"]=> string(0) "" ["uid"]=> string(1) "3" ["filename"]=> string(15) "prays-list.xlsx" ["uri"]=> string(33) "public://prices/prays-list_2.xlsx" ["filemime"]=> string(65) "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ["filesize"]=> string(4) "9904" ["status"]=> string(1) "1" ["timestamp"]=> string(10) "1339651312" ["rdf_mapping"]=> array(0) { } } } }

Аватар пользователя psyh psyh 18 июня 2012 в 19:39

Разобрался. Вместо [LANGUAGE_NONE] надо было ставить [und].
Сделал так:
<a href="../sites/default/files/prices/<?php print $node->field_file[und][0]['filename'];?>">Скачать прайс в exl</a>

Теперь все работает, ссылка хоть и относительная, но работает. Но почему-то при этом на странице вылазит ошибка:
Notice: Use of undefined constant und - assumed 'und' в функции include() (строка 16 в файле /home/site/httpdocs/sites/all/themes/dbr/templates/node--catalog.tpl.php).
Чем ему [und] не угодил?

Аватар пользователя psyh psyh 18 июня 2012 в 20:24

Всем спасибо, теперь все без ошибок. И относительный путь заменил на $base_url, думаю так правильнее.