- Автор темы
- Заблокирован
- #1
Обратите внимание, если вы планируете совершить сделку с этим пользователем, он заблокирован.
Совместимость с XenForo 2.0.x
Добавляем вкладки в настройки плагина
Для начала включаем режим отладки, добавив в файл /src/config.php следующую строку:
Далее идём по пути: Панель управления - Разработка - Обработчики событий - И нажимаем сверху кнопку "Добавить новый обработчик события" - Заполняем поля так:
Обрабатывать событие: templater_macro_pre_render
Подсказка события:
Выполнить обработчик: Your\Namespace\XenForo2\EventListener\MacroRender :: preRender
PHP-код:
Далее идём по пути: Панель управления - Внешний вид - Стили - Шаблоны - Напротив Мастер-стиля нажимаем на "Шаблоны" - Переключаемся на вкладку "Панель управления" - Нажимаем кнопку "Добавить шаблон" - Далее заполняем так:
Название шаблона: your_namespace_option_macros
Содержимое шаблона:
Не забудьте заменить все значения your_group на ID Вашей группы
Не забудьте заменить все значения Your\Namespace или your_namespace на свои
Ну и на выходе мы увидим что-то подобное:
Добавляем вкладки в настройки плагина
Для начала включаем режим отладки, добавив в файл /src/config.php следующую строку:
Код:
$config['debug'] = true;
Далее идём по пути: Панель управления - Разработка - Обработчики событий - И нажимаем сверху кнопку "Добавить новый обработчик события" - Заполняем поля так:
Обрабатывать событие: templater_macro_pre_render
Подсказка события:
Код:
admin:option_macros:option_form_block
PHP-код:
Код:
<?php
namespace Your\Namespace\XenForo2\EventListener;
class MacroRender
{
public static function preRender(\XF\Template\Templater $templater, &$type, &$template, &$name, array &$arguments, array &$globalVars)
{
if ($arguments['group']->group_id == 'your_group')
{
// Override template name
$template = 'your_namespace_option_macros';
}
}
}
Название шаблона: your_namespace_option_macros
Содержимое шаблона:
Код:
<xf:macro name="option_form_block" arg-group="" arg-options="!" arg-containerBeforeHtml="">
<xf:if is="$options is not empty">
<xf:form action="{{ link('options/update') }}" ajax="true" class="block">
{$containerBeforeHtml|raw}
<div class="block-container">
<h2 class="block-tabHeader tabs" data-xf-init="tabs" role="tablist">
<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="generalOptions">{{ phrase('general_options') }}</a>
<a class="tabs-tab" role="tab" tabindex="0" aria-controls="moreOptions">{{ phrase('your_namespace_more_options') }}</a>
<a class="tabs-tab" role="tab" tabindex="0" aria-controls="evenMoreOptions">{{ phrase('your_namespace_even_more_options') }}</a>
</h2>
<ul class="tabPanes">
<li class="is-active" role="tabpanel" id="generalOptions">
<div class="block-body">
<xf:foreach loop="$options" value="$option">
<xf:if is="$option.Relations.your_group.display_order < 200">
<xf:macro template="option_macros" name="option_row" arg-group="{$group}" arg-option="{$option}" />
</xf:if>
</xf:foreach>
</div>
</li>
<li role="tabpanel" id="moreOptions">
<div class="block-body">
<xf:foreach loop="$options" value="$option">
<xf:if is="$option.Relations.your_group.display_order >= 200 AND $option.Relations.your_group.display_order < 300">
<xf:macro template="option_macros" name="option_row" arg-group="{$group}" arg-option="{$option}" />
</xf:if>
</xf:foreach>
</div>
</li>
<li role="tabpanel" id="evenMoreOptions">
<div class="block-body">
<xf:foreach loop="$options" value="$option">
<xf:if is="$option.Relations.your_group.display_order >= 300 AND $option.Relations.your_group.display_order < 400">
<xf:macro template="option_macros" name="option_row" arg-group="{$group}" arg-option="{$option}" />
</xf:if>
</xf:foreach>
</div>
</li>
</ul>
<xf:submitrow sticky="true" icon="save" />
</div>
</xf:form>
</xf:if>
</xf:macro>
Не забудьте заменить все значения Your\Namespace или your_namespace на свои
Ну и на выходе мы увидим что-то подобное: