Создание новой позиции модулей

В данном уроке будет показано, как создать новую позицию для модулей в шаблоне Warp Framework.

Добавление новой позиции для модулей и виджетов в ваш шаблон не представляет особой трудности. Давайте для примера создадим позицию "top-c", которая будет расположена ниже двух предустановленных позиций "top-a" и "top-b". Следующие файлы внутри папки вашего шаблона должны быть изменены для решения поставленной задачи:

  • templateDetails.xml (для Joomla)
  • template.xml (для Wordpress)
  • config.xml
  • /layouts/template.php
  • /layouts/module.php
  • /js/template.php

добавление новой позиции в XML файл шаблона

Откройте файл templateDetails.xml для Joomla или template.xml для Wordpress. Здесь вы должны добавить новую позицию (top-c), чтобы "дать знать" CMS о том, что она существует. Просто скопируйте нужный код уже существующей позиции и переименуйте его, как показано на примере:

<positions>
...
<position>top-a</position>
<position>top-b</position>
<position>top-c</position>
<position>bottom-a</position>
...
</positions>

Определение параметра макета модулей для новой позиции

Откройте config.xml и найдите запись об уже существующей позиции, например, о позиции "top-b". Скопируйте код, определенный для этой позиции, вставьте его ниже скопированного и переименуйте в соответстввии с целью.

name="top-c" type="layout" default="equal" label="Top C Layout" description="Select a grid layout for this module position." />

Это позволяет вам определять макет для новой позиции в настройках шаблона в вашей административной панели.

Добавление новой позиции в главный файл шаблона

Откройте файл /layouts/template.php и вы увидите основную разметку шаблона. Это файл, который определяет то, где модули, опубликованные в новой позиции, должны быть вынесены. Как и прежде, вы должны скопировать код из существующей позиции и поместить его туда, где вам это нужно и переименуйте его в соответствии с поставленной задачей. В данном примере был взят код позиции "top-b", скопирован ниже и настроен.

<?php if ($this['modules']->count('top-c')) : ?> 
<section id="top-c">
<div class="grid-block">
<?php echo $this['modules']->render('top-c', array('layout'=>$this['config']->get('top-c'))); ?>
</div>
</section>
<?php endif; ?>
Совет: Вы можете переопределять template.php в собственном стиле. Просто скопируйте /layouts/template.php в /styles/YOUR_STYLE/layouts/template.php.

Определение основного стиля модуля для новой позиции

Откройте /layouts/module.php и установите здесь стиль по умолчанию для модуля, добавьте код для вашей новой позиции. В данном примере устанавливается стиль "line" как основной для позиции top-c:
// set default module types 
if ($style == '')
{
if ($module->position == 'top-a') $style = 'line';
if ($module->position == 'top-b') $style = 'line';
if ($module->position == 'top-c') $style = 'line';
...
}
Заметка: Если вы создаете стиль шаблона и желаете добавить некоторые стили модулей, вы можете переопределить основной файл module.php. Просто скопируйте /layouts/module.php в /styles/YOUR_Style/layouts/module.php.

Расчет высоты модулей

Чтобы высота модулей соответствовала одной линии, откройте js/template.js. Найдите существующую функцию matchHeight(). В данном случае, была скопирована запись для #top-b и изменена для #top-c.
$('#top-c .grid-h').matchHeight('.deepest');

Обновление вашего CSS

Если вы хотите стилизовать новую добавленную позицию или модуль, опубликованный на этой позиции, вам нужно обновить файл /css/layouts.css. В данном случае имело бы смысл, добавить все CSS, которые применимы к позициям top-a, bottom-a, непосредственно к нашей позиции.

Примечание пользователя: После изменения всех этих файлов обязательно нужно зайти в админку и в Менеджере шаблонов принудительно заново поставить требуемый макет для позиции, даже если он уже там стоит. Иначе макеты не применятся к новым позициям!

  • Четверг, 31 мая 2012

Оставить комментарий

Вы комментируете как Гость.

beget