Виджеты/Модули
Узнайте, как создавать новые позиции, макеты и стили для виджетов Wordpress и модулей Joomla.
Добавление новых позиций для модулей и виджетов в вашем шаблоне не сложно. Вы должны дать название позиции и определить, в каком месте макета шаблона она будет отображаться.
Добавление новой позиции
Добавьте новую позицию в файлtemplateDetails.xml
для Joomla или в файл theme.xml
для WordPress, чтобы дать вваш менеджер контента "узнал о ее существовании". Новая опция появится в настройках вашего шаблона.
<position>top-a</position>
<position>MY-POSITION</position>
<position>bottom-a</position>
Добавление настроек
С аттрибутомsettings
вы можете контролировать опции отображения виджета в вашей позиции. Вы найдете их в панели Modules/Widgets ваших настроек шаблона. Доступные значения - это class
, style
, icon
, badge
и display
. Дополнительно, опции title
и assignment
доступны в WordPress.
<!-- all option are available -->
<position>MY-POSITION</position>
<!-- no option are available -->
<positionsettings="">MY-POSITION</position>
<!-- only the style and badge options are available -->
<positionsettings="style badge">MY-POSITION</position>
Совет: Если аттрибут settings
не используется, ваша позиция автоматически покажет все доступные опции. Если вы используете settings
без добавления значений, они не будут отображены в панели Modules или Widgets.Настройки шаблона для позиций
Изменитеconfig.xml
, чтобы добавить опции позиции в настройки шаблона в панели Settings и Layouts.Установить основное отображение виджета для вашей позиции
Добавление нового элемента<row>
в таблицу поля panel_default
в разделе Settings вашей позиции откроет опцию по выбору основного стиля.
<fieldsname="Settings">
...
<fieldtype="table"name="panel_default">
<rowslabel="Position">
<row>MY-POSITION</row>
...
Установить основное отображение макета для вашей позиции
Добавление нового элемента<row>
в поле таблицы grid
в разделе Layouts вашей позиции откроет опци для выбора макета, разделителей и адаптивности макета.
<fieldsname="Layouts">
...
<fieldtype="table"name="grid">
<rowslabel="Position">
<row>MY-POSITION</row>
...
Отображение позиции
Файл/layouts/theme.php
обеспечивает основную разметку шаблона. Здесь Вы можете определять, где позиции виджета будут отображены и добавить новые.
<?php if($this['widgets']->count('MY-POSITION')):?>
<sectionclass="uk-grid"data-uk-grid-match="{target:'> div > .uk-panel'}">
<?php echo $this['widgets']->render('MY-POSITION', array('layout'=>$this['config']->get(
'grid.MY-POSITION.layout')));?>
</section>
<?php endif;?>
Совет: вы просто должны добавить синтаксис $this['config']->get('grid.MY-POSITION.layout')
, если вы определяли опцию в файле config.xml
.Расширенные возможности добавления CSS классов
Если ваша позиция определена как новый элемент<row>
в поле таблицы grid
файла config.xml
, есть легкий путь добавить CSS классы. Просто добавьте <?php echo $grid_classes['MY-POSITION']; ?>
в аттрибут class
. Это позволит Вам установить макет, адаптивность и разделители.
<?php if($this['widgets']->count('MY-POSITION')):?>
<section class="<?php echo $grid_classes['MY-POSITION'];?>"
data-uk-grid-match="{target:'> div > .uk-panel'}"
data-uk-grid-margin><?php echo $this['widgets']->render('MY-POSITION', array('layout'=>
$this['config']->get('grid.MY-POSITION.layout')));?></section>
<?php endif;?>
Комментарии (4)
Devakrob
ответ
RobertAgoto
ответ
Alonsozipse
ответ
Danielceare
ответ