Как создать пользовательские области в теме?

Я хочу добавить новую область, которая будет на сайте. Опишите процесс получения этого нового региона в мою тему, если возможно, обобщите его для добавления любого нового настраиваемого региона.

58 голосов | спросил palbakulich 3 MaramThu, 03 Mar 2011 02:49:51 +03002011-03-03T02:49:51+03:0002 2011, 02:49:51

6 ответов


65

Вы определяете регионы в файле темы .info. См .: Структура файла .info

Затем вам нужно поместить соответствующие теги шаблона в файл page.tpl.php.

Так, например, если вы определили боковую панель области sidebar в вашем файле .info темы, вы добавили бы: <?php print render($page['sidebar']); ?> в соответствующее место на странице page.tpl.php.

ответил Camsoft 3 MaramThu, 03 Mar 2011 02:57:12 +03002011-03-03T02:57:12+03:0002 2011, 02:57:12
20

Еще один момент: не пропустите необходимые регионы!

regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom

Подробнее об этом можно узнать на http://drupal.org/update/themes/6/7# закрытие .

Чтобы прояснить этот момент: если вы определяете свои собственные регионы, вам необходимо определить все, что вы используете, в том числе те, которые требуются. Другими словами, вы не можете просто определить дополнительные регионы: если вы определяете какой-либо объект, вы должны определить их все.

ответил laura 26 MarpmSat, 26 Mar 2011 20:54:23 +03002011-03-26T20:54:23+03:0008 2011, 20:54:23
9

Создание региона для темы 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.

ответил kiamlaluno 12 MarpmSat, 12 Mar 2011 23:36:05 +03002011-03-12T23:36:05+03:0011 2011, 23:36:05
4

Области темы определены в вашем файле .info. . Просто добавьте строку с областями 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 25 FebruaryEurope/MoscowbSat, 25 Feb 2012 20:25:27 +0400000000pmSat, 25 Feb 2012 20:25:27 +040012 2012, 20:25:27
2

Следуйте приведенным ниже инструкциям, чтобы создать пользовательскую область в своей теме:

  1. Перейдите в файл theme.info и добавьте эту строку.

    regions[machine_name_of_your_region] = Name of your region
    
  2. Хотя вы также можете вызывать региональные блоки в шаблоне узла как ну, вы, как правило, добавите регион на страницу темы шаблон. Обычно это файл 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; ?>
    
  3. Конфигурация - Производительность - очистка всех кешей

ответил Astha chauhan 28 Maypm14 2014, 17:26:39
0

Создать новый регион в теме

Вам просто нужно определить его в двух файлах.

  • Theme.info
  • page.tpl.php

Theme.info

;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;

regions[navigation]      = 'Navigation'
regions[header]          = 'Top Bar'
regions[highlighted]     = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region

page.tpl.php

Теперь отрисуйте эту область

  <?php if ($page['new_region']): ?>
      <div class="new_region_class">
        <?php print render($page['new_region']); ?>
     </div>
  <?php endif; ?>

Теперь очистите весь кеш. Здесь вы идете, у вас новый регион в вашей теме. Вы можете увидеть его на странице конфигурации блока.

Подробнее см. http://drupal.org/node/171205

ответил gsjha 28 Maypm14 2014, 13:07:52

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132