Виджеты/Модули
Узнайте, как создавать новые позиции, макеты и стили для виджетов 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
ответ