Как вывести CCK в page.tpl.php?

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

Аватар пользователя Mindstorm Mindstorm 6 июля 2012 в 22:04

Облазил весь друпал орг. Ни одного работающего решения.
То есть в тип материала(его шаблон) выводится всё без проблем, а именно в шаблоне не срабатывает.
Может кто-то сталкивался?

А вообще задача стоит такая:

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

Но... Есть немаленькое но. Заголовок сайта нужно для это заметить со стандартного на CCK поле. В этом вся загвоздка.

Может для всего этого есть альтернативное решение или подскажите как правильно вывести поле для 6-го друпала в page.tpl?

Комментарии

Аватар пользователя Orion76 Orion76 6 июля 2012 в 22:15

простейший вариант

получить из строки запроса идентификатор ноды (nid):
функция arg() api.drupal.ru

загрузить ноду:
$node=node_load($nid);

вытащить из $node нужное поле.

Аватар пользователя Mindstorm Mindstorm 7 июля 2012 в 16:46

orion76 wrote:
простейший вариант

получить из строки запроса идентификатор ноды (nid):
функция arg() api.drupal.ru

загрузить ноду:
$node=node_load($nid);

вытащить из $node нужное поле.


Не могли бы вы для нубов написать, что конкретно нужно вставить в tpl. http://api.drupal.org/api/drupal/modules%21node%21node.module/function/n... -вроде почитал, повставлял, а ничего не выходит

Аватар пользователя Orion76 Orion76 7 июля 2012 в 16:58

node_load загружает объект ноды в $node
вставте после node_load такую конструкцию:

<?php
echo '<pre>'.print_r($node,TRUE).'</pre>';
?>

она выведет на страницу содержимое $node..
По выводу определите "путь" до нужного значения,
что-то на подобие предыдущего поста valero222

Аватар пользователя Mindstorm Mindstorm 7 июля 2012 в 17:57

Вставляю в нужное место:
<?php
node_load($nid, NULL, TRUE);
?>
<?php print $node->field_field_title[0]['value'] ?>

Ничего не происходит

<?php $node=node_load($nid);?>
<?php print $node->field_field_title[0]['value'] ?>
Тоже ничего

<?php print $node->field_field_title[0]['value'] ?>
<?php
$node = node_load(array("63" => $nid));
?>
Ничего
<?php $node=node_load($nid);?>
<?php
echo '

'.print_r($node,TRUE).'

';
?>

Ничего не выводит

Что я не так делаю? Подскажите плз

Аватар пользователя Mindstorm Mindstorm 7 июля 2012 в 20:20

<?php
$nid = db_result(db_query('SELECT MAX(nid) AS nid FROM {node} WHERE type = "audio"'));
$node = node_load($nid, NULL, TRUE);
node_view($node); // Needed to make available all cck fields for our node
print $node->field_audio[0]['view']; // Here we just printing our CCK field without node body
?>

Решено, чуть мозг не сломал.