Я хочу додати нову область, яка буде розміщена на сайті. Опишіть процес включення цього нового регіону до моєї теми, по можливості узагальнюйте його для додавання будь-якої нової, власної області.
Я хочу додати нову область, яка буде розміщена на сайті. Опишіть процес включення цього нового регіону до моєї теми, по можливості узагальнюйте його для додавання будь-якої нової, власної області.
Відповіді:
Ви визначаєте регіони у вашому темі .info-файлу. Див.: Структура файлу .info
Потім потрібно помістити відповідні теги шаблонів у файл page.tpl.php.
Так, наприклад, якщо ви визначили регіон sidebar
у своєму файлі .info, ви додали: <?php print render($page['sidebar']); ?>
до відповідного місця на своїй сторінці.t.tl.php.
Ще один момент: Не пропустіть потрібні регіони!
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
Більше про це можна дізнатися на веб- сайті 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 є такими:
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
змінної, що використовується Drupal 6.
Регіони тем визначені у вашому .info-файлі теми - див. Документи . Просто додайте рядок, regions[corner] = Corner
щоб отримати кутовий регіон.
Потім потрібно відредагувати файл page.tpl.php та додати місце, <php print render($corner); ?>
де ви бажаєте відобразити регіон. Якщо ваша тема не має сторінки.tpl.php, скопіюйте її з базової теми або з системного модуля.
Поширені підводні камені:
Якщо у файлі topic.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
здається, використовується для навігаційних панелей, таких як основна панель інструментів.
Виконайте наведені нижче кроки, щоб створити власну область у своїй темі:
Перейдіть у файл topic.info і додайте цей рядок.
regions[machine_name_of_your_region] = Name of your region
Хоча ви також можете викликати блоки регіонів у шаблоні вузла, зазвичай ви додасте область до шаблону сторінки теми. Зазвичай це page.tpl.php, або якщо у вас є власні файли шаблонів для різних сторінок, редагуйте і їх. Нова область з’явиться лише на сторінках, побудованих навколо шаблону, до якого ви додаєте новий регіон. Вставте його куди завгодно, щоб ваш новий регіон з’явився.
<?php if ($page['machine_name_of_your_region']): ?>
<div id="sidebar-first" class="column sidebar"><div class="section">
<?php print render($page['machine_name_of_your_region']); ?>
</div></div> <!-- /.section, /#sidebar-first -->
<?php endif; ?>
Конфігурація - Продуктивність - Очистити всі кеші
Вам просто потрібно визначити це у двох файлах.
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
Тепер візьміть цей регіон
<?php if ($page['new_region']): ?>
<div class="new_region_class">
<?php print render($page['new_region']); ?>
</div>
<?php endif; ?>
Тепер очистіть увесь кеш. Ось у вас є новий регіон у вашій темі. Ви можете бачити це на сторінці налаштування блоку.
Для більш детального відвідування http://drupal.org/node/171205