Вывод cck полей в node-pagetype.tpl.php - как?

Аватар пользователя Dope Skeeza Dope Skeeza 25 июля 2008 в 10:51

В моих файлах node-***.tpl.php есть html таблица структуры страницы. В одну из ячеек мне нужно вставить поле buylink которое я создал при помощи CCK.
Я пробовал вписывать в node-***.tpl.php следующий код, но ничего не работает:

<?php print $node->field_buylink[0]['buylink'] ?>

Как это делается правильно?

Комментарии

Аватар пользователя goodboy goodboy 25 июля 2008 в 11:20

Cделайте print_r( $node ) и найдите нужное поле. Возможно, достаточно написать $node->field_buylink[0]['value']

Если $node не будет содержать значение поля ССK - воспользуйтесь node_load

$n = node_load( $node->nid );
print_r( $n );
print $n->field_buylink[0]['value'];
Аватар пользователя Antoniy Antoniy 24 апреля 2012 в 15:21

А проверку для вывода полей как сделать?
Типа

<?php if ($field_buylink): ?>
   <?php print $node->field_buylink[0]['view'?>
<?php 
endif; ?>
Аватар пользователя Antoniy Antoniy 24 апреля 2012 в 18:22

Спасибо!

У меня в page.tpl сработало не 'view' , а 'value'
Надо было выводить полный заголовок (если есть) из текстового поля CCK, а стандартный node title использовать для краткого заголовка. Сделал так:

<?php if (!empty($node->field_full_header[0]['value'])): ?>
  <h1 class="title"><?php print $node->field_full_header[0]['value'?></h1>
<?php else: ?>
  <h1 class="title"><?php print $title?></h1>
<?php endif; ?>
Аватар пользователя Antoniy Antoniy 24 апреля 2012 в 21:25

Может и проще. Но он, как я понял, только title в head меняет.

А меня в данном случае интересовал page node, который должен быть коротким ("Название магазина"), чтобы потом удобно было его использовать для коротких URL и выводов коротких title в полях Node Reference. Но при этом чтобы на самих страницах были длинные заголовки (Магазин того-то и того-то "Название магазина").

Урлы все на кириллице, а если еще и составные типа верхний-термин/название-магазина/подстраница-магазина то не очень иногда получается.