XF 2.1 Переменные в macro

Версия XenForo
2.1

john_j

Проверенные
Сообщения
422
Решения
8
Реакции
134
Баллы
745
В шаблоне есть макро конструкции типа этого:

Код:
<xf:macro name="n1">
... $a1
</xf:macro>

...

<xf:macro name="n2" />
...
<xf:macro name="n3"  />
... $x1
</xf:macro>

Возможно ли как-то использовать переменную $a1 там, где $x1 ?
 
Завтра попробую подробно код вспомнить и выложить.
Сегодня уже просто нет времени.
К тому-же я пробовал несколько разных вариантов - с новым и существующим macro

{{ dump($thread) }} - перед вызовом макроса. (да-да, топовый способ дебага)
Да я все переменные вывожу, на локальном сервере.
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: Berg
В общем, попробую еще раз подробно обьяснить

Мне нужно получить переменную {$thread.title} в шаблоне lightbox_macros из шаблона thread_view
То есть, получить здесь:

Код:
<xf:macro name="single_image" arg-canViewAttachments="!" arg-id="!" arg-src="!" arg-dataUrl="" arg-containerZoom="1"
    arg-alt=""
    arg-styleAttr=""
    arg-alignClass=""
    arg-mytitle="">

    <xf:macro name="setup" arg-canViewAttachments="{$canViewAttachments}" />

    <div class="lbContainer lbContainer--inline {$alignClass}" title="{$alt|for_attr}"
        data-xf-init="lightbox"
        data-lb-single-image="1"
        data-lb-container-zoom="{$containerZoom}"
        data-lb-trigger=".js-lbImage-{$id}"
        data-lb-id="{$id}">
        <xf:if is="{$containerZoom}">
            <div class="lbContainer-zoomer js-lbImage-{$id}" data-src="{$src}" aria-label="{{ phrase('zoom')|for_attr }}"></div>
        </xf:if>
      
 {$thread.title}
      
      
        <img src="{$src}" data-url="{$dataUrl}" class="bbImage" data-zoom-target="1" {{ $alt ? 'alt="' . $alt|for_attr . '"' : '' }} style="{$styleAttr}" />
    </div>
</xf:macro>

Пробовал кучу вариантов, не получилось.
Напишу самую первую попытку

В шаблоне thread_view добавил macro
Код:
<xf:macro template="bb_code_tag_attach" name="single_image" arg-mytitle="{$thread.title}" />

В шаблоне lightbox_macros добавил аргумент arg-mytitle

Код:
<xf:macro name="single_image" arg-canViewAttachments="!" arg-id="!" arg-src="!" arg-dataUrl="" arg-containerZoom="1"
    arg-alt=""
    arg-styleAttr=""
    arg-mytitle=""
    arg-alignClass="">

После этого, переменная mytitle в шаблоне появилась, но значение не получает. Получает null.
 
Если аттач вставлен в текст, то не прокатит. Там же оно уходит в шаблонизатор, в рендерер бб-кодов. Нужно писать небольшое дополнение, которое дополнит поведение рендерера.
 
Где результат дампа переменной $thread до вызова макроса и внутри макроса?
из lightbox_macros или thread_view ?

Если аттач вставлен в текст, то не прокатит. Там же оно уходит в шаблонизатор, в рендерер бб-кодов. Нужно писать небольшое дополнение, которое дополнит поведение рендерера.
Да, другие аргументы этот macro получает из bb_code_tag_attach
Я пробовал сперва в bb_code_tag_attach передать эту переменную, но тоже не прокатило.
 
Последнее редактирование модератором:
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу