Я хочу добавить новую область, которая будет охватывать весь сайт. Опишите процесс добавления этого нового региона в мою тему, если возможно, обобщите его для добавления любого нового пользовательского региона.
Затем вам нужно поместить соответствующие теги шаблона в ваш файл page.tpl.php.
Так, например, если вы определили регион sidebarв файле .info тем, вы бы добавили: <?php print render($page['sidebar']); ?>в соответствующее место на вашем page.tpl.php.
Чтобы прояснить этот момент: если вы определяете свои собственные регионы, вам нужно определить все, что вы используете, включая те, которые требуются. Другими словами, вы не можете просто определить дополнительные регионы: если вы определяете какие-либо, вы должны определить их все.
Создание региона для темы Drupal 7 ничем не отличается от создания региона для региона Drupal 6; различия между Drupal 7 и предыдущими версиями по существу:
Регионы не определяются с помощью mytheme_regions()функции, как это было сделано в Drupal 5, но они определяются в mytheme.info с использованием regions[]директив, что также делается с темами Drupal 6.
Области отображаются с использованием функции Drupal render()вместо печати содержимого переменной.
По умолчанию Drupal 7 регионов следующие:
regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer
Основные темы Drupal 7 теперь включают регион с именем «подсвеченный», который использует тот же дисплей, что и область формулировки миссии в Drupal 6; они также включают регион с именем 'help', который по умолчанию содержит то же содержимое, что и $helpпеременная, используемая в Drupal 6.
Области темы определены в вашем информационном файле темы - см. Документацию . Просто добавьте строку с, regions[corner] = Cornerчтобы получить угол области.
Затем вам нужно отредактировать файл page.tpl.php и добавить, <php print render($corner); ?>где вы хотите, чтобы регион отображался. Если ваша тема не имеет page.tpl.php, скопируйте ее из базовой темы или из системного модуля.
Общие подводные камни:
Если в файле theme.info не было объявлено ни одного региона, он использовал регионы по умолчанию в Drupal. Если вы хотите добавить, вам придется повторно объявить регионы по умолчанию. Вы можете, конечно, удалить любой регион, но, пожалуйста, поддержите необходимые регионы. Смотрите документы снова.
Изменения в файле .info или добавление новых файлов в тему (например, page.tpl.php) будут замечены только после очистки кешей.
Omega, очень популярная базовая тема, не нуждается в каких-либо изменениях в файле page.tpl.php, только в файле .info. Но вам придется посетить настройки темы в пользовательском интерфейсе и назначить свой регион для зоны.
Это обобщение ответов с общими подводными камнями.
Capi Etheriel
Является regions[content] = Contentединственным в регионе требуется D7? drupal.org/node/171205#regions , кажется, подразумевает, но затем drupal.org/node/171224 говорит , что требуемые регионы content, help, page_topиpage_bottom
Джим Гаррисон
Я не знаю, проверяет ли Drupal какой-либо из регионов, но contentэто определенно очень важно. helpподдерживается ядром (для вывода справочных сообщений), page_bottomвероятно, там, где печатается нижняя js, и, page_topкажется, она используется для панелей навигации, таких как панели инструментов ядра.
Capi Etheriel
2
Выполните следующие шаги, чтобы создать пользовательский регион в своей теме:
Перейдите в файл theme.info и добавьте эту строку.
regions[machine_name_of_your_region]=Name of your region
Хотя вы также можете вызывать блоки регионов в шаблоне узла, вы обычно добавляете регион в шаблон страницы темы. Обычно это page.tpl.php, или, если у вас есть файлы шаблонов для разных страниц, отредактируйте их тоже. Новый регион появится только на страницах, построенных вокруг шаблона, к которому вы добавляете новый регион. Вставьте его туда, где вы хотите, чтобы появился новый регион.
Ответы:
Вы определяете регионы в вашем файле .info. Смотрите: Структура .info файла
Затем вам нужно поместить соответствующие теги шаблона в ваш файл page.tpl.php.
Так, например, если вы определили регион
sidebar
в файле .info тем, вы бы добавили:<?php print render($page['sidebar']); ?>
в соответствующее место на вашем page.tpl.php.источник
Еще один момент: не пропустите необходимые регионы!
Подробнее об этом можно узнать по адресу http://drupal.org/update/themes/6/7#closure .
Чтобы прояснить этот момент: если вы определяете свои собственные регионы, вам нужно определить все, что вы используете, включая те, которые требуются. Другими словами, вы не можете просто определить дополнительные регионы: если вы определяете какие-либо, вы должны определить их все.
источник
Создание региона для темы Drupal 7 ничем не отличается от создания региона для региона Drupal 6; различия между Drupal 7 и предыдущими версиями по существу:
mytheme_regions()
функции, как это было сделано в Drupal 5, но они определяются в mytheme.info с использованиемregions[]
директив, что также делается с темами Drupal 6.render()
вместо печати содержимого переменной.По умолчанию Drupal 7 регионов следующие:
Основные темы Drupal 7 теперь включают регион с именем «подсвеченный», который использует тот же дисплей, что и область формулировки миссии в Drupal 6; они также включают регион с именем 'help', который по умолчанию содержит то же содержимое, что и
$help
переменная, используемая в Drupal 6.источник
Области темы определены в вашем информационном файле темы - см. Документацию . Просто добавьте строку с,
regions[corner] = Corner
чтобы получить угол области.Затем вам нужно отредактировать файл page.tpl.php и добавить,
<php print render($corner); ?>
где вы хотите, чтобы регион отображался. Если ваша тема не имеет page.tpl.php, скопируйте ее из базовой темы или из системного модуля.Общие подводные камни:
Если в файле theme.info не было объявлено ни одного региона, он использовал регионы по умолчанию в Drupal. Если вы хотите добавить, вам придется повторно объявить регионы по умолчанию. Вы можете, конечно, удалить любой регион, но, пожалуйста, поддержите необходимые регионы. Смотрите документы снова.
Изменения в файле .info или добавление новых файлов в тему (например, page.tpl.php) будут замечены только после очистки кешей.
Omega, очень популярная базовая тема, не нуждается в каких-либо изменениях в файле page.tpl.php, только в файле .info. Но вам придется посетить настройки темы в пользовательском интерфейсе и назначить свой регион для зоны.
источник
regions[content] = Content
единственным в регионе требуется D7? drupal.org/node/171205#regions , кажется, подразумевает, но затем drupal.org/node/171224 говорит , что требуемые регионыcontent
,help
,page_top
иpage_bottom
content
это определенно очень важно.help
поддерживается ядром (для вывода справочных сообщений),page_bottom
вероятно, там, где печатается нижняя js, и,page_top
кажется, она используется для панелей навигации, таких как панели инструментов ядра.Выполните следующие шаги, чтобы создать пользовательский регион в своей теме:
Перейдите в файл theme.info и добавьте эту строку.
Хотя вы также можете вызывать блоки регионов в шаблоне узла, вы обычно добавляете регион в шаблон страницы темы. Обычно это page.tpl.php, или, если у вас есть файлы шаблонов для разных страниц, отредактируйте их тоже. Новый регион появится только на страницах, построенных вокруг шаблона, к которому вы добавляете новый регион. Вставьте его туда, где вы хотите, чтобы появился новый регион.
Конфигурация - Производительность - Очистить все кэши
источник
Создать новый регион в теме
Вам просто нужно определить его в двух файлах.
Theme.info
page.tpl.php
Теперь рендер этого региона
Теперь очистите весь кэш. Теперь у вас есть новый регион в вашей теме. Вы можете увидеть это на странице конфигурации вашего блока.
Для получения дополнительной информации посетите http://drupal.org/node/171205
источник