Drupal, вывод блока view

27 Январь 2011

Продолжаю делать сайт на Друпал. Осваивать приходится очень и очень быстро и конечно же будут большие ошибки по планированию архитектуры сайта и организации логики работы. Да и программных ошибок не избежать.

Я работаю с системой drupal версии 6.20 (на момент написания этой статьи). Интернет полон разного рода статей и уроков. Но действительно хороших статей еденицы. По API я так и не нашел  доступной информации, а та что есть какая то непонятная даже с 10 раза. Конечно потом может теперешнии трудности показаться пустековыми, но сейчас если сравнивать Drupal с Textpattern или Modx можно сказать что Drupal страшный как ночь.

И так я создал сложную структуру справочников и типов документов. Они переплелись между собой самым все возможными способами. У некоторых типов документов есть по 50 полей. И это еще не предел. А все потому что спешу. Надо остановиться и пересмотреть все еще раз и как то упорядочить информацию. Конечно я пошел не друпальным способом, точнее такой способ тоже допускается, но у него есть большие минусы. Хотя я не вижу минусов, вижу только плюсу. А именно для всех типов node(как документов/материалов) я создаю свои шаблоны по типу node-НАЗВАНИЕ ДОКУМЕНТА.tpl.php и уже в них сам расставляю все поля как мне надо указывая примерно такой код:
<div class="numberz">
<?php print $node->field_numberz[0]['view'] ?>
</div>

И все ставится на свои места сразу и как надо. Так называемая "ТЕМИНИЗАЦИЯ" в ручную. А попросту я потом делаю оформление документов с помощью стилей CSS.

Но на страницах встречаются данные которые должны быть сформированны динамически. Для быстрого создания блоков служит модуль Views. Модуль очень большой, но полезный. Правда некоторые заявляют что он сильно напрягает сервер и бывает даже подвешивает его. Но мне была важна скорость разработки, а потом подпилим.(Так сказать в бронзе подправим)

И я создал в view блок информации. Информация меняется в зависимости от адреса страницы. И теперь мне надо было вывести этот блок информации на своей странице. Точнее на страницах с определенным типом материалов. Самый правильный способ это сделать блок в документе этого типа и уже вставлять вывод информации в этот блок. Типа универсально. Но пока я дошел до этого успел несколько раз проголодаться. Хотя если знать ни чего сложного тут нету. А пока я использовал другой способ, который не совсем верный.
<?php
$myvid = views_get_view('view_pacient');
$ar = array();
$ar[] = 23;
$myvid->set_arguments($ar);
$myvid->set_items_per_page(0);
print $myvid->render('block');
?>
Вот этот код я вставил в файл шаблона для определенных типов документов. (node-НАЗВАНИЕ ДОКУМЕНТА.tpl.php). Правда не знаю что лучше самому залесть в базу и выбрать все необходимые поля или все таки оставить вывод с помощью views.

Немного позже напишу все таки как правильно сделать. Хотя у каждого свои правильные методы.

Андрей Лебедев

,

, , , ,

Комментарий

Нет комментарий.

Комментировать: