Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: В настоящее время эта функция требует доступа к сайту с помощью встроенного браузера Safari.
Передайте его явно.Возможно ли как-то использовать переменную $a1 там, где $x1 ?
<xf:macro name="n1" arg-a1="!">
{$a1}
</xf:macro>
<xf:macro name="n2">
...
</xf:macro>
<xf:macro name="n3" arg-x1="!">
<xf:macro name="n1" arg-a1="{$x1}" />
</xf:macro>
Ну так покажите, что вы пробовали. Тут не форум гадалок
<xf:macro template="lightbox_macros" name="myname" arg-mytitle="{$thread.title}" />
<xf:macro name="myname" arg-mytitle="!">
</xf:macro>
<xf:macro name="single_image" arg-canViewAttachments="!" arg-id="!" arg-src="!" arg-dataUrl="" arg-containerZoom="1"
arg-alt=""
arg-styleAttr=""
arg-alignClass="">
<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>
Так вставляйте. Вы в макросе лайтбокса аргумент добавляли хотя бы в декларации?А мне ее нужно вставить сюда:
<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>
{$mytitle}
<img src="{$src}" data-url="{$dataUrl}" class="bbImage" data-zoom-target="1" {{ $alt ? 'alt="' . $alt|for_attr . '"' : '' }} style="{$styleAttr}" />
</div>
</xf:macro>
покажите полностью весь код, который Вы правили и то, к чему он пришёл.
Догадываюсь )Значит неправильно передаёте.
В самом макросе объявляете возможность получения такой переменной и её использование по аналогии, как я продемонстрировал выше.А как правильно ?
<xf:macro template="lightbox_macros" name="single_image" arg-canViewAttachments="..."
/** ... */
arg-mytitle="{$thread.title}" />
Я так делал.По итогу, Вы должны получить макрос из этого поста, и такой вызов:
$thread
или свойства title
у него нет. Вот почему Вы раньше не могли сказать, что выводится null?{{ dump($thread) }}
- перед вызовом макроса. (да-да, топовый способ дебага)Если делаю и передаю в новый отдельный macro, то переменная передается.Значит переменной$thread
или свойстваtitle
у него нет. Вот почему Вы раньше не могли сказать, что выводится null?
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения