Пользовательский поиск по Drupal сайтам.
Loading
Темизация ноды с таксономией и CCK без использования VIEWS для Друпал6
Опубликовано IgorPerm в Чт, 11/13/2008 - 20:13
Для оформления содержимого сайта на Друпал не обязательно пользоватся модулем VIEWS даже если в типе материала мы используем поля (читаем используем модуль CCK). Views достаточно ресурсоемок, поэтому попробуем обойтись без этого модуля.
- Создаем шаблон для нашего типа данных. В папке наш_сайт/modules/node находим файл node.tpl.php, переименовываем в node-НашТипДанных.tpl.php и переносим в папку нашей темы.
- Убираем из файла штатный вывод контента, он выглядит примерно так :
- И начинаем писать вывод Для разделения вывода списком и отдельных нод используем переменную $page
<?php if ($page): ?>
<?php //здесь выводим то что надо на отдельные ноды ?>
<?php else: ?>
<?php //здесь выводим то что надо для списка нод ?>
<?php endif;?> - Теперь отдельно переменные для вывода полей:
Описание: $node->content['body']['#value']
Поле ССК в ноде: $node->ИмяCCKполя[0]['view'] - Если полями ноды являются термины таксономии то можно использовать следующее:
//Выводим все словари таксономии
foreach(taxonomy_node_get_terms($node, 'vid') as $name3 => $value3) {
//echo "<br> $name3 : $value3";
$vocabulary = taxonomy_vocabulary_load($name3);
echo '<div class = "pole_l0" id = "term' . $vocabulary->vid . '"><p><b>' . $vocabulary->name . ': </b>';
$cc = '';
$rr = '';
$ii = 1;
foreach (taxonomy_node_get_terms_by_vocabulary($node, $name3,'description') as $name => $value1) {
if($ii>1){$rr = ', ';}
$cc = $cc . $rr . $name;
$ii +=1;}
echo $cc . '</p></div>';
}
Выводит следующее: НаименованиеСловаряТаксономии: термин1, термин2 - И напоследок не забываем для просмотра массива $node не забываем использовать:
P.S.: Примеры темизации без использования вьюса, только node.tpl.php и разбор массива $node:
(этот пост перенес со своего блога на Drupal.ru )
Читаем пункт 1
Читаем пункт 1