Используем опции (xen:array)

Тема в разделе "Инструкции и основная информация", создана пользователем Next, 27.02.16.

  1. Next

    Next Администратор

    Сообщения:
    5.734
    Репутация:
    76
    Рейтинг:
    +577 / -0
    Сегодня я вам расскажу как можно сделать настройку отображения в нужных вам темам или узлах форумах, используя настройки форума (опции).

    Как это будет выглядеть примерно.

    1.png


    И так , начнём.
    Важно: должен быть включен режим debug.
    library -> config.php ( $config['debug'] = true; )

    Инструкция:
    1) Создаем дополнение /admin.php?add-ons/
    Заполняем как угодно.

    2) Переходим в настройки /admin.php?options/
    Создаем настройку. Так же заполняем как угодно, и указываем дополнение которое мы создали в 1 пункте.

    3) И так , теперь добавляем настройку
    Буду показывать на своём примере.
    • ID настройки: wb_list
    • Дополнение: из 1 пункта
    • Заголовок: Номера форумов
    • Редактирование формата: Именованный шаблон
    • Параметры формата: template_Admin_list_WB
    • Тип данных: Массив
    • Значение по умолчанию: a:0:{}
    • Опции массива: *
    • Отображать в группах: номер сортировки
    Жмем сохранить. И после сохранения у вас должно быть пусто.
    Так как мы указали брать настройки из шаблона панели управления (template_Admin_list_WB)

    4) Переходим теперь по ссылке /admin.php?admin-templates/
    И жмем создать шаблон панели управления.
    И в него вставляем такой код.
    Код:
    <xen:controlunit label="{$preparedOption.title}">
    <xen:html>
    <ul>
    <xen:foreach loop="{$preparedOption.option_value}" value="$admin">
    <xen:if is="{$admin} !== ''">
    <li class="fbAdmin"><xen:textbox name="{$fieldPrefix}[{$preparedOption.option_id}][]" value="{$admin}" placeholder="ID" /></li>
    </xen:if>
    </xen:foreach>
    <li class="fbAdmin"><xen:textbox name="{$fieldPrefix}[{$preparedOption.option_id}][]" value="" placeholder="ID" /></li>
    </ul>
    <div style="margin-bottom: 5px"><input type="button" value="Добавить еще" class="button smallButton FieldAdder" data-source="li.fbAdmin" /></div>
    <input type="hidden" name="{$listedFieldName}" value="{$preparedOption.option_id}" />
    {xen:raw $editLink}
    </xen:html>
    
    <xen:hint>Введите ID ($forum)</xen:hint>
    <xen:explain>{xen:raw $preparedOption.explain}</xen:explain>
    </xen:controlunit>

    Теперь заполняем к примеру 2 и 3.
    Жмем сохранить.

    5) Идем по ссылке /admin.php?styles/master-stil.0/templates
    Создаем шаблон к примеру wb_list.
    И пишем такой код

    Код:
    <xen:set var="$arr_forum" value="{xen:array 'list={$xenOptions.gx_list}'}"/>
    <xen:if is="{$forum.node_id}">
    <xen:foreach loop="{$arr_forum}" value="{$list_gx}">
    <xen:if is="in_array({$forum.node_id}, ({$list_gx}))">
    Номер раздела - {$forum.node_id}
    </xen:if>
    </xen:foreach>
    </xen:if>
    Указываем наше дополнение - из 1 пункта.
    Кнопка добавить еще - <input type="button" value="Добавить еще" class="button smallButton FieldAdder" data-source="li.fbAdmin" />
    Подсказка - <xen:hint>Введите ID ($forum)</xen:hint>

    Сохраняем. И теперь возвращаемся в настройки наши.
    И видим уже такое.
    3.png

    Теперь заполняем к примеру 2 и 3.
    Жмем сохранить.

    5) Идем по ссылке /admin.php?styles/master-stil.0/templates
    Создаем шаблон к примеру wb_list.
    И пишем такой код

    Код:
    <xen:set var="$arr_forum" value="{xen:array 'list={$xenOptions.gx_list}'}"/>
    <xen:if is="{$forum.node_id}">
    <xen:foreach loop="{$arr_forum}" value="{$list_gx}">
    <xen:if is="in_array({$forum.node_id}, ({$list_gx}))">
    Номер раздела - {$forum.node_id}
    </xen:if>
    </xen:foreach>
    </xen:if>
    Указываем наше дополнение из 1 пункта, не забываем.
    Сохраняем и переходим к модификациям.
    /admin.php?template-modifications/


    6) Создаем модификацию к примеру я выведу в разделах.

    • Шаблон: node_forum_level_2
    • Ключ модификации: node_wb_2
    • Тип поиска: Простая замена
    • Найти: <div class="nodeText">
    • Заменить:
    Код:
    <div class="nodeText">
    <xen:include template="wb_list" />
    • Дополнение: из 1 пункта.
    Сохраняем модификацию, и теперь все что вы указываете в настройках. Выводит рядом с названием раздела.
    То что мы указали в 5 пункте. В моём примере.
    Выводит в нужных разделах (номер раздела).

    К примеру ставлю в опции в 3 разделе.
    4.png

    И смотрю на форуме.
    5.png
    Вот и всё. С темами делать по аналогии.
     

Похожие темы
  1. egorea1999
    Ответов:
    1
    Просмотров:
    209
  2. Next
    Ответов:
    2
    Просмотров:
    146
  3. Next
    Ответов:
    0
    Просмотров:
    112
  4. Next
    Ответов:
    3
    Просмотров:
    194
  5. Next
    Ответов:
    3
    Просмотров:
    131
Загрузка...