Иконка ресурса

Условия переменных в шаблонах XenForo 2

Есть такой код
Код:
<xf:foreach loop="$articles" value="$article"><xf:trim>
            <xf:macro name="article_block"
                arg-article="{$article}"
                arg-catlinks="{$catlinks.{$article.thread_id}}"
                arg-attachments="{$attachments}" />
        </xf:trim></xf:foreach>
Можно ли используя синтаксис шаблонов XF вставить кастомный блок хтмл (или виджет) после первого срабатывания цикла? Под спойлером схематично то, что мне нужно
  • Результат работы цикла
  • Кастомный блок (или виджет)
  • Результат работы цикла
  • Результат работы цикла
  • Результат работы цикла
  • Результат работы цикла
  • итд
 
Используя итератор. Начинается с "1"
PHP:
<xf:foreach loop="$loop" value="$value" i="$i">
</xf:foreach>
 
Используя итератор. Начинается с "1"
PHP:
<xf:foreach loop="$loop" value="$value" i="$i">
</xf:foreach>
Спасибо, но я не самый сообразительный молодой человек, можно для меня дать конкретный код?

Пытался использовать код ниже (подставляя разные числа в i), но он предсказуемо не работал
Код:
<xf:foreach loop="$articles" value="$article">
        <xf:foreach loop="$loop" value="$value" i="$2">
            <div>
                123
            </div>
        </xf:foreach>
        <xf:trim>
            <xf:macro name="article_block"
                arg-article="{$article}"
                arg-catlinks="{$catlinks.{$article.thread_id}}"
                arg-attachments="{$attachments}" />
        </xf:trim>
    </xf:foreach>
 
Спасибо, но я не самый сообразительный молодой человек, можно для меня дать конкретный код?

Пытался использовать код ниже (подставляя разные числа в i), но он предсказуемо не работал
Код:
<xf:foreach loop="$articles" value="$article">
        <xf:foreach loop="$loop" value="$value" i="$2">
            <div>
                123
            </div>
        </xf:foreach>
        <xf:trim>
            <xf:macro name="article_block"
                arg-article="{$article}"
                arg-catlinks="{$catlinks.{$article.thread_id}}"
                arg-attachments="{$attachments}" />
        </xf:trim>
    </xf:foreach>
$i это переменная итератор, внутри цикла делаете условие если $i равно 2 то выводите то, что нужно, а иначе другое.
 
Последнее редактирование:
HAIM, а может сразу, что надо. Что бы не быть как оратор выше перебрал все различные варианты с кучей не нужных условий написанных.
 
$i это переменная итератор, внутри цикла делаете условие если $i равно 2 то выводите то, что нужно, а иначе другое.
Спасибо, так стало понятнее :)

Итоговый код у меня получился такой, если кому-нибудь пригодится

Код:
<xf:foreach loop="$articles" value="$article" i="$i"><xf:trim>
        <xf:if is="$i == 2">
            <div style="background: red;">
                123
            </div>
        </xf:if>
            <xf:macro name="article_block"
                arg-article="{$article}"
                arg-catlinks="{$catlinks.{$article.thread_id}}"
                arg-attachments="{$attachments}" />
        </xf:trim></xf:foreach>

HAIM, а может сразу, что надо. Что бы не быть как оратор выше перебрал все различные варианты с кучей не нужных условий написанных.
Очень сложный для восприятия массив слов, сорямба. Это что-то орное или наоборот сурьезное?
 
  • Мне нравится
Реакции: Hope
Hope обновил(а) ресурс Условия переменных в шаблонах XenForo 2 новой записью:

Обновление мануала

  • Немного наведен порядок в условиях, где разбросаны были по разным частям.
  • Добавлена совместимость с XenForo (XF) 2.1
  • Добавлены новые условия:
    • Как я могу отобразить содержимое после x сообщений на каждой странице темы форума?
    • Как я могу показать контент на страницах с боковой панелью?
    • Как я могу скрыть содержимое только при создании темы?
    • Как я могу показать содержимое только при создании ресурса?
    • Как я могу скрыть содержимое только при создании ресурса...

Узнать больше об этом обновлении...
 
Делаю модификацию шаблона node_list_category такого вида:
HTML:
<xen:if is="{$category.node_id} == 14">
<div class="exemple"><img src="/images.gif" alt=""/></div>
</xen:if>
картинка отображается во всех нодах. Движка 2.1 beta 5. Задача вывести банер между нужными категориями на главной странице, что делаю не так?
 
А вы версии движка не перепутали? Во второй ветке <xf:>
 
А вы версии движка не перепутали? Во второй ветке <xf:>
да, изменил на
HTML:
<xf:if is="{$category.node_id} == 14">
<div class="exemple"><img src="/images.gif" alt=""/></div>
</xf:if>
но тогда пропадает вообще, не отображается элемент
 
Код:
<xf:if is="{$category.node_id} == x">
    Этот текст будет показан в категории  x
</xf:if>
А теперь начнём сначала, где вы делаете модификацию. Предоставьте её описание
 
А теперь покажите вашу модификацию или куда вы там код вставляете
 
Код:
<xf:if is="{$category.node_id} == x">
    Этот текст будет показан в категории  x
</xf:if>
А теперь начнём сначала, где вы делаете модификацию. Предоставьте её описание
/admin.php?template-modifications/add -> Указываю ключ, описание и шаблон "node_list_category"
метод "простая замена"
и меняю
Код:
<xf:macro name="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
    <div class="block block--category block--category{$node.node_id}">
        <span class="u-anchorTarget" id="{$node.Data.getCategoryAnchor()}"></span>
        <div class="block-container">
            <h2 class="block-header">
                <a href="{{ link('categories', $node) }}">{$node.title}</a>
                <xf:if is="{$node.description}"><span class="block-desc">{$node.description|raw}</span></xf:if>
            </h2>
            <div class="block-body">
                <xf:macro template="forum_list" name="node_list"
                    arg-children="{$children}"
                    arg-extras="{$childExtras}"
                    arg-depth="{{ $depth + 1 }}" />
            </div>
        </div>
    </div>
</xf:macro>
на
Код:
<xf:macro name="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
    <div class="block block--category block--category{$node.node_id}">
        <span class="u-anchorTarget" id="{$node.Data.getCategoryAnchor()}"></span>
        <div class="block-container">
            <h2 class="block-header">
                <a href="{{ link('categories', $node) }}">{$node.title}</a>
                <xf:if is="{$node.description}"><span class="block-desc">{$node.description|raw}</span></xf:if>
            </h2>
            <div class="block-body">
                <xf:macro template="forum_list" name="node_list"
                    arg-children="{$children}"
                    arg-extras="{$childExtras}"
                    arg-depth="{{ $depth + 1 }}" />
                <xf:if is="{$category.node_id} == 14">
<div class="***"><a href="***"><img src="patch/img.gif" alt="" /></a></div>
</xf:if>
        
            </div>   
        </div>
    </div>
</xf:macro>
 
Ну и естественно оно не будет работать =)
 
96836
Если я правильно понял, что нужно сделать
Шаблон: forum_list
Найти:
HTML:
<xf:macro name="node_list_entry" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
    <xf:css src="node_list.less" />
    <xf:set var="$nodeTemplate" value="{{ $node.getNodeTemplateRenderer($depth) }}" />
    <xf:if is="$nodeTemplate.macro">
        <xf:macro template="{$nodeTemplate.template}" name="{$nodeTemplate.macro}"
            arg-node="{$node}"
            arg-extras="{$extras}"
            arg-children="{$children}"
            arg-childExtras="{$childExtras}"
            arg-depth="{$depth}" />
    <xf:elseif is="{$nodeTemplate.template}" />
        <xf:include template="{$nodeTemplate.template}" />
    </xf:if>
</xf:macro>
Заменить:
Код:
<xf:macro name="node_list_entry" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
    <xf:css src="node_list.less" />
    <xf:set var="$nodeTemplate" value="{{ $node.getNodeTemplateRenderer($depth) }}" />
    <xf:if is="$nodeTemplate.macro">
        <xf:macro template="{$nodeTemplate.template}" name="{$nodeTemplate.macro}"
            arg-node="{$node}"
            arg-extras="{$extras}"
            arg-children="{$children}"
            arg-childExtras="{$childExtras}"
            arg-depth="{$depth}" />
    <xf:elseif is="{$nodeTemplate.template}" />
        <xf:include template="{$nodeTemplate.template}" />
    </xf:if>
    <xf:if is="{{ $node.node_id == 2 }}">
        Будешь смотреть бой? Какой бой? Мой [А по щам?] с твоей губой
    </xf:if>
</xf:macro>
 
Посмотреть вложение 96836
Если я правильно понял, что нужно сделать
Шаблон: forum_list
Найти:
HTML:
<xf:macro name="node_list_entry" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
    <xf:css src="node_list.less" />
    <xf:set var="$nodeTemplate" value="{{ $node.getNodeTemplateRenderer($depth) }}" />
    <xf:if is="$nodeTemplate.macro">
        <xf:macro template="{$nodeTemplate.template}" name="{$nodeTemplate.macro}"
            arg-node="{$node}"
            arg-extras="{$extras}"
            arg-children="{$children}"
            arg-childExtras="{$childExtras}"
            arg-depth="{$depth}" />
    <xf:elseif is="{$nodeTemplate.template}" />
        <xf:include template="{$nodeTemplate.template}" />
    </xf:if>
</xf:macro>
Заменить:
Код:
<xf:macro name="node_list_entry" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
    <xf:css src="node_list.less" />
    <xf:set var="$nodeTemplate" value="{{ $node.getNodeTemplateRenderer($depth) }}" />
    <xf:if is="$nodeTemplate.macro">
        <xf:macro template="{$nodeTemplate.template}" name="{$nodeTemplate.macro}"
            arg-node="{$node}"
            arg-extras="{$extras}"
            arg-children="{$children}"
            arg-childExtras="{$childExtras}"
            arg-depth="{$depth}" />
    <xf:elseif is="{$nodeTemplate.template}" />
        <xf:include template="{$nodeTemplate.template}" />
    </xf:if>
    <xf:if is="{{ $node.node_id == 2 }}">
        Будешь смотреть бой? Какой бой? Мой [А по щам?] с твоей губой
    </xf:if>
</xf:macro>
не, немного не то надо... надо так
96842
 
Внизу категории?
 
96843
?
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу