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

Название и слоган в регионе как вы понимаете не нуждаются, а вот меню давайте сделаем регионом, для того, что мы смогли выводить любое наше меню. Дальше идёт изображение, которое остаётся фиксированным на всём сайте, а под ним расположены ещё 3 блока с изображениями и информацией, информация в блоках так же является изменяемой и поэтому будем выводить их в регионах.

Далее у нас идёт вывод контента и справа расположен ещё один блок с выводом последних статей сайта, они так же нуждаются в регионах. Замечу, что в Drupal 7, в отличии от Drupal 6, вывод контента происходит через блоки.

И теперь у нас остался только подвал сайта, который не нуждается в регионе. Как мы видим, нам необходимо создать 6 регионов и произвести вывод названия сайта и его слогана.
Приступим, начнём опять же с шапки сайта и займёмся выводом названия сайта и слогана, для этого открываем наш файл
page.tpl.php
И смотрим, где у нас в коде прописано название и слоган

Теперь, нам необходимо заменить значения в шаблоне на стандартные переменные вывода Drupal.
Вывод названия сайта записывается как
print $site_name;
Вывод слогана сайта записывается как
print $site_slogan;
И будет выглядеть вот так

Для демонстрации как это работает, вы можете изменить информацию о сайте, которая находится здесь «Конфигурация->Информация о сайте». Полный список переменных для page.tpl.php можно посмотреть вот здесь. Теперь займёмся созданием региона под наше меню: Для начала нам нужно придумать как будет называть данный регион, мудрить не будем и назовём его как «header_menu». Теперь нам нужно дать понять Drupal, что у нас есть новый регион, для этого открываем файл
Название_шаблона.info
И пишем следующее
regions[header_menu] = Меню в шапке сайта

Далее необходимо указать Drupal, где данный регион будет находиться. Для этого открываем файл
page.tpl.php
И вместо кода с меню, пишем вывод нашего региона
print render($page['header_menu']);

После этого пересохраняем наш шаблон, при необходимости чистим кеш сайта и смотрим, что получилось

Видим, что меню у нас исчезло, ничего страшного в этом нет, так и должно быть. Зато если пройти в «Структура->Блоки», то мы увидим, что нам стал доступен новый регион

Теперь нам необходимо проделать тоже самое, еще 5 раз, для вывода всех регионов. Здесь работа индентична с выводом региона для меню, поэтому я просто выложу уже готовый результат как должен выглядеть
Название_шаблона.info

И
page.tpl.php

И список доступных регионов

На этом с разметкой закончено.
Комментарии (61)
print render($page[header_menu]); - мне пришлось переменную в апострофы брать - print render($page['header_menu']); - иначе друпал (7.20) хоть и выводит, но ругается ошибками - Notice: Use of undefined constant header_menu - assumed 'header_menu' в функции include() (строка 47 в файле /home
всё правильно, в уроке опечатка - поправил. Спасибо!
При выводе в регионе потом на странице контента невозможно в такой теме редактировать сам материал с его страницы, только через содержимое. Слой админки появляется, а "редактировать" "просмотр" нет.
наверное вам сюда
Как кодировку настроить? regions[header_menu] = Меню в шапке сайта. В настройках блоков вместо "Меню в шапке сайта" у меня квадратики выводятся.
через что редактируете? если через notepad++, то пункт кодировка -> UTF-8 без BOM
Помогло. Спасибо
Тут проблемка одна:
Создал регион. Все как написано выше.
Захожу в Структура--Блоки
А там... Полно разных блоков, которых я не создавалл а моего нет.
Что это такое?
Ага, такая же беда
скорее всего вы не правильно прописали регионы в info файле. По умолчанию drupal выводит стандартные регионы, если они не указаны в info
имхо они наверно не отключили стандартную тему, надо бы обозначить в уроке чтобы отлючали полностью стндартную тему и еще у мня траблы с кэшем наверно чтобы блоки и описания появлялись нужно чистить кэш и обновлять тему (тут не доконца понимаю кагда нужно чистить и сохранять изменения)
Спасибо, у меня такая же проблема была, возился целый час. Автор вносите пожалуйста корректировки в уроки.)
За уроки 5+ !
делал все по рекомендации, хочу добавить, что друпал стоит на openserver и после создания всех файлов темы инфо и т.д. друпал стал страшно ругатся, специально проверил чтобы была кодировка utf-8 а оказалось что нужно было указать кодировку ansi возможно просто потому, что это все из под виндовс.
2. я начал разрабатывать тему под абсолютно свежеустановленным друпалом и это привело к проблеме, ведь ни меню ни контента не было никакого. только когда добавил пару статей и сделал меню, чтото стало вырисовыватся. но пока не получил 100% работающий вариант.
надеюсь мои комменты помогут таким же как свежеприбывшим в клуб друпал))
ничего подобного всё делаю в UTF-8 без BOM, под windows так и надо всегда использовать UTF
kogda ya v authorizate hochu ? U menya Access denied , kak ispravit ?
Подскажите, пожалуйста, как для drupal 7 вставить регион в node.tpl.php после определенного количества абзацев ноды, нашел только для 6 версии http://content-management-systems.info/node/3633
вот здесь описано
Позиция появилась. Но когда пытаюсь туда вставить блок пишет: "Блок не может быть помещен в этот регион."
С чем это может быть связано?
Разобрался - все стало норм после чистки кеша
Переделываю шаблон из Drupal6 в Drupal7 да что-то не получается. На что обратить внимание?
Обратите внимание на полную api темизации для Drupal 7, она в корне изменилась, и ничего похожего с 6ой не имеет.
Начал создавать шаблон по урокам. Все получалось до тех пор пока не очистил кеш. Потом пропали меню админки! Подумал что я случайно удалил или сделал не то, установил заново друпал, и в этом же моменте опять все пропало! Не открывается админка, нельзя добавить блоки и т.д.! Попробовал обратно поставить шаблоны по умолчанию, но толку 0. Подскажите пожалуйста что я делаю не так? Добавил несколько скиншотов для полной ясности. http://zalil.ru/34814225
Неужели никто с этим не сталкивался?
вы хотя бы пример кода скинилу, который вы добавляли в шаблон и потом у вас все пропало.
Вот сам шаблон http://zalil.ru/34814934 . Подскжате пожалуйста как авторизоватся на сайте с таким шаблоном?
Попробовал в этот раз переделать стандартный шаблон. Так же дошел до очистки кеша и все пропало! Выдает вот такую ошибку Notice: Undefined index: name в функции block_help() (строка 69 в файле /home/insof943/public_html/integral2/modules/block/block.module).
на чем drupal подняли? на denwer или xampp?
На хосинге
тогда почитайте документацию вашего хостинга, вы уверены что устанавливаете его в правильную директорию!
Такая же беда, как-то решили? У меня на OpenServer работает.
Друпал чистый, кроме установленной локализации ничего не менял ни 1го модуля не ставил(
Здравствуйте
print render($page['header_menu']); - ни чего не отображается кроме стандартных регионов. http://prntscr.com/27tjn6
print render($page[header_menu]); так только с ошибкой. http://prntscr.com/27tjxt
вот .инфо http://prntscr.com/27tk46
кеш чистили?
отключил шаблоны и заработало, но теперь не могу добавить другой регион.
Сначала создал этот регион http://prntscr.com/28z5z2 , и он отобразился http://prntscr.com/28z6cw .
Создал вот так
http://prntscr.com/28z6su
http://prntscr.com/28z6yi
получил
http://prntscr.com/28z74d
полазил в настройке шаблона, и заработало, пока всё очень странно)
Подскажите пожалуиста как вывести в своем шаблоне блок(меню, вьюс и пр неважно) в div теги в определенном месте в друпале 6. В фаиле page-front.tpl.php пробовал делать так же, вылезает ошибка на главной, на седьмом друпале все замечательно ваши уроки очень доходчивы, саит однозначно в закладки.
Все разобрался в дру6 немного по др там с регионами не срослось. http://тверьоблпроект.рф/ Слева новости вывел вот такои фиговиной $block = module_invoke('views', 'block', 'view', 'news-block_1');
print $block['content'];
Просто вывести надо было блок ньювс вот вставив эту строку news-block_1
/admin/build/block/configure/views/news-block_1 в настроиках блока в конце строки собственно что вывести надо было. Мож кому поможет... Спасибо еще раз за хорошии саит.
Здравствуйте.
Худо бедно разбираюсь с созданием своего шаблона...возник вопрос:
На главной у меня слайдер (большой), на других страницах его быть не должно, отключила показ (оставила только на главной). На других страницах пустой блок на месте слайдера. Как его убрать? Поднять содержимое под меню.
Спасибо.
Чувак я хочу от тебя детей! спасибо тебе за то что ты делаешь. в интернет искал про темизацию кругом шлак. а ты все разжувал и выложил все понятно и ясно с первого прочтения..
Столкнулся с проблемой, после того как все это проделал, почистил кэш, но не могу обратно вернутся в админку, самой панели не видно, когда вбиваю www.sitename/user ничего не происходит, никакой формы входа, а по www.sitename.com/admin - доступ запрещен и так же нет никакой формы входа в админку, как с этим бороться то ?
Подскажите как сделать чтобы не было квадратиков место русских символов
В htaccess приписывал AddDefaultCharset utf-8, но не получается
изменить кодировку файла на UTF-8 (без BOM)
подскажите, как задать стили для блока меню header_menu, в примере Вы удалили class='active', как сделать свой стиль меню?
http://drupalfly.ru/lesson/block_tpl
Пытаюсь адаптировать другой шаблон.

Регионы создал, разместил.
Проблема с меню. Вместо такого отображения:
какой-то бред:

Все стили написаны уже. Не понимаю в чем проблема.
Установите плагин firebug в firefox и смотрите, какие стили прицепились к странице, а какие нет. Может где-то синтаксическая ошибка, когда прописывали стили в шаблоне, а может просто не почистили кэш.
Уже решил. Пришлось вместо
Подскажите , проделал все как в уроке , но странно вывелся только блок контента и меню (после того как прописал код в блоке) , остальные регионы хоть тресни не выводится .т.е. блоки как у вас на скринах есть все настроено , а на сайте не появляются , весь код перекопал ну нет ошибки ? Может что из модулей не включено Друпал 7,35
Может синтаксическую ошибку допустили где-то?