alt у картинок без "" msgallery - minishop2
Уже давно писал данный вопрос, но он так и остался открытым, уже все ИИ закидал вопросами, но все бестолку, может есть тут кто решал подобную задачу.
Проблема в том, что в alt могу вывести название товара — pagetitle, НО если у товара стоят кавычки, то разметка ломается, не могу найти ни одного решения, что только не перепробовал.
Детально.
Вывожу на странице похожие товары (часть вывода скрыл):
Если делать настройку у текущего товара, то работает так
{'[[*pagetitle:stripTags:htmlent=`ENT_QUOTES`]]'|parse}
Но у похожих не работает ни чего
По логике (моей) должно работать так {$pagetitle | escape} — но вывод пустой
Одно решение я знаю, это у картинок прописать title и брать средствами галереи (но это не вариант, там более 50 000 картинок)
Очень нужна помощь, всем заранее спасибо, надеюсь вопрос получился понятным и конструктивным.
Проблема в том, что в alt могу вывести название товара — pagetitle, НО если у товара стоят кавычки, то разметка ломается, не могу найти ни одного решения, что только не перепробовал.
Детально.
Вывожу на странице похожие товары (часть вывода скрыл):
[[!msProducts?
....
&tpl=`ralated_products`
.....
]]Сам шаблон ralated_products{$_modx->runSnippet('msGallery', [
'tpl' => 'v2.tpl.ms2Galleryrcat',
'product' => $id,
'limit' => 1,
])}И шаблон галереи ....
{foreach $files as $idx => $file}
{if $idx == 0}
<div class="item">
<a href="[[+uri]]">
<picture>
<source type="image/webp" srcset="{$file['webp200x200']}">
<img class="lazy"
data-src="{$file['200x200']}"
src="{$file['200x200']}"
data-srcset="{$file['200x200']}"
alt='[[+pagetitle]]'
width="200"
height="200">
</picture>
</a>
</div>
{/if}
{/foreach}
.....Если делать настройку у текущего товара, то работает так
{'[[*pagetitle:stripTags:htmlent=`ENT_QUOTES`]]'|parse}
Но у похожих не работает ни чего
{'[[+pagetitle:stripTags:htmlent=`ENT_QUOTES`]]'|parse}Даже не работает {$pagetitle} и если я как-то меняю [[+pagetitle]] то он просто перестает выводится. (пусто)По логике (моей) должно работать так {$pagetitle | escape} — но вывод пустой
Одно решение я знаю, это у картинок прописать title и брать средствами галереи (но это не вариант, там более 50 000 картинок)
Очень нужна помощь, всем заранее спасибо, надеюсь вопрос получился понятным и конструктивным.
P/S Нашел только такое решение на данный момент [[#[[+id]].pagetitle:stripTags:htmlent=`ENT_QUOTES`]] - не знаю на сколько это корректно, но работает. Комментарии: 22
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Да, я прочитал в тексте что не работает, но это должно работать. Готовый пример с десятка сайтов.
Или можно сделать сниппет filter (он еще и кавычки-елочки ставит вместо обычных):
Ну и
Свой сниппет хотел сделать, но мне кажется галерея перестанет работать, проверю уже завтра.
Другое дело если, вам надо вывести pagetitle текущего ресурса, к которому файл не относится, то надо так:
Ну и скорее всего вы обманываете всех, вы используете ms2Gallery, а не msGallery.
там уже другой код
{$pagetitle | htmlent} — fenom
Оба варианта рабочие, масса проектов с ними.
Для начала прекращайте смешивать синтаксис — у вас проблемы из-за этого, в том числе. Напишите все нормально либо в fenom, либо в MODX синтаксисе. Это разные технологии, они по разному устроены и работают.
============
============
disk.yandex.ru/d/3vSHGF1Y-7D7mw
Чанк: disk.yandex.ru/d/knTGCbKR-0S7-Q
и вот такой вывод скрин
поле просто пустое, это как у msgallery, так и у ms2gallery