Пользовательский поиск по Drupal сайтам.
Loading

Темизация ноды с таксономией и CCK без использования VIEWS для Друпал6

Для оформления содержимого сайта на Друпал не обязательно пользоватся модулем VIEWS даже если в типе материала мы используем поля (читаем используем модуль CCK). Views достаточно ресурсоемок, поэтому попробуем обойтись без этого модуля.

  1. Создаем шаблон для нашего типа данных. В папке наш_сайт/modules/node находим файл node.tpl.php, переименовываем в node-НашТипДанных.tpl.php и переносим в папку нашей темы.
  2. Убираем из файла штатный вывод контента, он выглядит примерно так :
        <div class="content"><?php print $content ?></div>
       
  3. И начинаем писать вывод Для разделения вывода списком и отдельных нод используем переменную $page
     
    <?php if ($page): ?>    
    <?php //здесь выводим то что надо на отдельные ноды ?>    
    <?php else: ?>    
    <?php //здесь выводим то что надо для списка нод ?>  
    <?php endif;?>
  4. Теперь отдельно переменные для вывода полей:
    Описание: $node->content['body']['#value']
    Поле ССК в ноде: $node->ИмяCCKполя[0]['view']
  5. Если полями ноды являются термины таксономии то можно использовать следующее:
    //Выводим все словари  таксономии
    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
  6. И напоследок не забываем для просмотра массива $node не забываем использовать:
     
    <?php print '<pre>'. check_plain(print_r($node, 1)) .'</pre>'; ?>

P.S.: Примеры темизации без использования вьюса, только node.tpl.php и разбор массива $node:

(этот пост перенес со ]]>своего блога на Drupal.ru]]>)

 

Огромное вам человеческое Автор: Гость (не проверено)
Anna Автор: vetuchatri1971 (не проверено)
Anna Автор: vetuchatri1971 (не проверено)
Fiona Автор: gophidepou1975 (не проверено)
Ошибка Автор: Гость (не проверено)
а куда это вставлять Автор: Гость (не проверено)
Читаем пункт 1 Автор: IgorPerm
Как вывести поле с картинкой Автор: Гость (не проверено)
Спасибо Автор: Гость
- Автор: Гость
Вы о чем? Автор: IgorPerm
Кеш чистили? Автор: IgorPerm
Конечно Автор: Гость
в Автор: Гость