Небольшое наблюдение по поводу практики верстки сайтов на drupal. Я все чаще и чаще использую данный метод. Но сначала - небольшое вступление.
Допустим: мы хотим на главной странице нашего сайта выводить "все что появилось нового". К примеру:
И для всего этого отлично подходит views - удобно сделать списки, удобно фильтровать, отличное кэширование - в общем, все что угодно. И тут перед многими встает вопрос: "А как это все сверстать?".
Если обобщить, у нас есть несколько вариантов:
Ради последнего варианта и затевается данная статья.
Лично я ни разу в рабочем проекте не использовал panels. Знаком с ним, конечно, меня вело любопытство - "каждый друпал-специалист должен знать......и Panels тоже". Но html-вывод panels меня как верстальщика несколько отпугивает - я представляю сколько кода у меня в итоге будет в сложном проекте, и мне не хочется даже начинать идти этим путем (хотя, говорят, есть способы.... :)
Способ хорош. Но имеет свои недостатки. А именно:
Вообще это классический метод проектирования сайтов, когда количество информационных "блоков/колонок" невелико и известно изначально. Я вообще сторонник регионов в шаблоне. Но в последнее время удобным часто нахожу и следующий способ.
Оказывается это безумно удобно! Использование 960gs фреймворка и такого функционала views как views embed делает создание 3х колонок с новостями/галереей/комментариями безумно простым.
Я просто создаю ноду с данным кодом (допустим, у меня под область контента отдано 12 колонок сетки, grid-12 т.е.):
<div class="grid-4 alpha">
<?php print views_embed_view('news', 'block_1'); ?>
</div>
<div class="grid-4">
<?php print views_embed_view('gallery', 'block_1'); ?>
</div>
<div class="grid-4 omega">
<?php print views_embed_view('comment', 'block_1'); ?>
</div>И все! Этот удобочитаемый элегантный код, который не разбросан по разным местам (в случае использования регионов нам пришлось бы править и tpl.php файлы, и .info темы), который легко расширить/изменить при необходимости.
Что делает эта волшебная строчка?
<?php print views_embed_view('news', 'block_1'); ?>
Она выводит представление views с машинным именем "news" (вы сами его назначаете при создании нового представления views), а конкретней - первый блок в этом представлении. Если в представлении views у вас несколько блоков - смотрите по их ID - следующие будут block_2, block_3 и т.п. Подробнее об этой замечательной функции вы можете прочитать на drupalcontrib
p.s. А еще скоро появятся возможность комментировать. Пока же вы можете подписаться на данный блог через RSS