Other 2x Tabbed Options - Tùy chọn Tabbed

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,728
Được Like
12,680
Tabbed Options - Tùy chọn Tabbed cho XenForo 2.x

Hướng dẫn này sẽ cho phép bạn có một nhóm tùy chọn duy nhất cho tất cả các lựa chọn của bạn, tách chúng thành các phần có tab thay vì buộc người dùng phải thay đổi các nhóm tùy chọn.

Ví dụ:

seCavTn.png


rkOGe23.png

Code Event Listener
Event: templater_macro_pre_render
Event Hint: admin:eek:ption_macros:eek:ption_form_block
Execute Callback: Your\Namespace\XenForo2\EventListener\MacroRender :: preRender
PHP Code:
Mã:
<?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';
        }
    }
}

Admin Template
Template Name: your_namespace_option_macros
Template Contents:
Mã:
<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>

  • Thay thế tất cả các trường của your_group với ID nhóm tuỳ chọn bạn đã sử dụng.
  • Thay thế tất cả các trường trong Your\Namespace hoặc your_namespace bằng namespace có liên quan mà bạn sử dụng.
  • Tôi đã chọn để tách các tùy chọn cho mỗi 100 thứ tự hiển thị, nhưng bạn có thể chỉnh sửa HTML và thực hiện nó nếu bạn thích
Chúc các bạn thành công.


Nguồn: xenforo.com​
 
  • Like
Reactions: THB

Hướng dẫn sử dụng

XenForo 1 XenForo 2
Translate by PVS

Dịch vụ XenForo của VNXF

Mr. Tuấn

Mobile/Zalo: 0988 488 096

Telegram: bluekpro

Email: [email protected]

Nhà Tài Trợ

Mút Xốp Không Gian
pallet Thịnh Phát
Top Bottom