Как работать с отображением виджетов на Xenforo

Neyronic

Создатель
Команда форума
BOSS
♛ Premium ♛
Продавец
Регистрация
19 Ноя 2023
Сообщения
143
Реакции
24
Эта мини-статья будет полезна тем, кто сталкивается с проблемами отображения виджетов.
Отдельная благодарность - Skaiman

У виджетов есть поле Условия отображения:
Код:
$xf.reply.forum.node_id == 63
Код:
$__globals.forum.node_id == 63
Второй вараинт чаще применяется к объявлениям.

В xenforo, есть еще парамеры для условия отображения, это data-container-key и data-content-key. Они устанавливаются для вновь созданных узлов, категорий, разделов или страниц.

Так для
- вновь созданной категории определяется:
Код:
data-container-key="node-х" data-content-key="category-х"
- для вновь созданного раздела:
Код:
data-container-key="node-х" data-content-key="forum-х"
- для вновь созданной темы:
Код:
data-container-key="node-х" data-content-key="thread-х"
у темы data-container-key будет такой же, как у форума
для вновь созданной страницы:
Код:
data-container-key="node-х" data-content-key="page-х"

Как это можно использовать, к примеру в LESS:
Less:
[data-container-key="node-x"] {
.p-title {
display: none;
}
}

[data-container-key="node-x"], [data-container-key="node-y"] {
.p-title {
display: none;
}
}
так же с data-content-key, свойства стиля будут применятся только там где надо.
Можно использовать условия этих переменных:
PHP:
<xf:if is="$xf.reply.containerKey == 'node-x'">
    .............................
</xf:if>
<xf:if is="in_array($xf.reply.containerKey, ['node-x', 'node-y'])">
    .............................
</xf:if>

<xf:if is="$xf.reply.contentKey == 'category-х'">
    .............................
</xf:if>
<xf:if is="in_array($xf.reply.contentKey, ['category-x', 'category-y'])">
    .............................
</xf:if>

<xf:if is="$xf.reply.contentKey == 'forum-х'">
    .............................
</xf:if>
<xf:if is="in_array($xf.reply.contentKey, ['forum-x', 'forum-y'])">
    .............................
</xf:if>

<xf:if is="$xf.reply.contentKey == 'thread-х'">
    .............................
</xf:if>
<xf:if is="in_array($xf.reply.contentKey, ['thread-x', 'thread-y'])">
    .............................
</xf:if>

<xf:if is="$xf.reply.contentKey == 'page-х'">
    .............................
</xf:if>
<xf:if is="in_array($xf.reply.contentKey, ['page-x', 'page-y'])">
    .............................
</xf:if>

Пример использования:

Виджеты Xenforo
 
Последнее редактирование:

Пользователи онлайн

Сейчас на форуме нет ни одного пользователя.
Назад
Сверху