@Vlad171

Как переопределить регион 'content' в своей теме?

Три дня-три вопроса. Непросто дается мне Drupal. О чем это я... Тема своя с нуля. Определены регионы в page.tpl. В центре три региона - content и 2 sidebar'a по бокам. Созданы 2 новых типа материала, под них переопределены шаблоны вывода. Создан модуль который выводит в левом сайдбаре блок с материалами только одного типа без использования Views. Проблема в том, что все вновь созданные материалы появляются в блоке content. По задумке- в трех регионах должны выводиться материалы только одного типа. Можно сделать кастомные блоки для каждого типа материала. Но блок содержимого является обязательным в Drupal 7, его можно определить в другой регион (не content), но он должен быть. Соответственно материалы опять будут там дублироваться. Мрак, одним словом...С другой стороны, в блоке содержимого отрисовывается полный текст материала по ссылке тизера. Что если нужно чтобы полный материал открывался в том же блоке что и список тизеров. Есть желающие помочь?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
@heartdevil
плыву как воздушный шарик
Привет)

1 способ. Заходите в админку. Там идете в раздел Content. В списке записей кликаете на edit у необходимой записи. В режиме редактирования в самом низу имеется блок с настройками. Вам нужен Publishing options. А именно Promoted to front page. Снимаете галочку и запись не будет отображаться на главной странице.
2 способ. В предыдущем варианте вы запретили запись только одной конкретной статьи. Если же вам нужно запретить отображение на главной целого типа материалов, скажем, новостей, то в адмике идете в раздел Structure->Content types->Publishing Options и убираете галочку у опции Promoted to front page.
3 способ. Самый гибкий, но и геморный. Вот у этого товарщиа xandeadx.ru/blog/drupal/104 имеется отличный сайт с разными фишками по drupal. Полазайте на досуге. Суть, как я уже вам писал, использовать preprocessing функции.

Пару секретов. В друпал самым главным объектом является $node. Поставьте его в var_dump на любой странице и он вам выведет содержимое текущей ноды, с которым вы можете легко работать. Также важно понять как вообще работает друпал. почитайте про hooks in drupal. Все завязано на них. Грубо говоря, для всего функционала в drupal предусмотрны хуки. Вам только нужно их найти и повесить свой обработчик (функцию). Вот, к примеру, отрисовывается страница. Для этого события тоже есть хук. Также есть хук для предотрисовывания и так далее.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы