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

Создание новых позиций для модулей, 5.0 из 5 основанный на 6 голосах.

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

  • templateDetails.xml (Joomla)
  • template.xml (WordPress)
  • config.xml
  • /layouts/template.php
  • /layouts/module.php
  • /js/template.js

Добавим новую позицию в файле 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", вставьте его ниже и переименуйте:

<field 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" и нашей новой позиции.


Обновим ваш стиль (Joomla)

Чтобы дать возможность выбора вашей новой позиции модуля из списка стилей, вы должны нажать кнопку «сохранить» вашего шаблона. Это создаст для вас новый конфигурационный файл "config.xml".



Если эта статья показалась вам полезной, пожалуйста, проголосуйте за нее. Это поможет другим быстрее найти эту статью из множества других менее полезных.
( 6 Голосов ) 

Добавить комментарий

Уважаемые посетители!
Комментарии модерируются, активные ссылки на сайты не публикуются. Пожалуйста, не тратьте понапрасну свое и мое время на попытку размещения спамерских ссылок.
Спасибо.


Защитный код
Обновить