Вывести теги товара на странице товара zoomx (smarty)
Здравствуйте!
upd 29.05.2024:
Это простое решение как вывести теги товара на странице товара используя сниппет msOptions.
Просто выводит список тегов теги, которые можно оформить как нужно.
Вызов в шаблоне товара через сниппет (zoomx, smarty):
Код чанка:
Загрузить в /core/elements/chunks (создать папки «elements» и «chunks» если нет. Если изменяли путь до ядра — заменить на свой).
{ $tag } Можно оформить как нужно:
т.е:
upd 29.05.2024:
Это простое решение как вывести теги товара на странице товара используя сниппет msOptions.
Просто выводит список тегов теги, которые можно оформить как нужно.
Вызов в шаблоне товара через сниппет (zoomx, smarty):
{'msOptions'|snippet:[
'options' => 'tags',
'tplRow' => '',
'tplOuter' => '',
'tplEmpty' => '',
'tpl' => '@FILE chunks/tpl.msProductOptionsTags.tpl'
]}
Код чанка:
{foreach $options as $tagsname => $tags}
{foreach $tags as $tag}
{$tag}
{/foreach}
{/foreach}
Загрузить в /core/elements/chunks (создать папки «elements» и «chunks» если нет. Если изменяли путь до ядра — заменить на свой).
{ $tag } Можно оформить как нужно:
<a href="/search?tag={$tag}" class="some-class">{$tag}</a>
т.е:
{foreach $options as $tagsname => $tags}
<p>
{foreach $tags as $tag}
<a href="/search?tag={$tag}" class="some-class">{$tag}</a>
{/foreach}
</p>
{/foreach}
Комментарии: 8
Сделайте сниппет getTags:
Вызывайте:
Если не на странице товара, указывайте &id:
Чанк tag_tpl:
<?php
$id = $modx->getOption('id', $scriptProperties, $modx->resource->get('id'));
$table = $modx->getOption('table_prefix').'ms2_products';
if($query = $modx->query("SELECT * FROM {$table} WHERE id = {$id}")){
$prod = $query->fetch(PDO::FETCH_ASSOC);
$tags = json_decode($prod['tags'], 1);
foreach($tags as $tag){
$out .= $modx->getChunk($tpl, array('tag' => $tag));
}
}
return $out;
Вызывайте:
[[getTags? &tpl=`tag_tpl`]]
Если не на странице товара, указывайте &id:
[[getTags? &id=`[[+id]]` &tpl=`tag_tpl`]]
Чанк tag_tpl:
<a href="/search/?[[+tag]]" class="some-class">[[+tag]]</a>
Спасибо больше! На fenom, наверное, будет работать. На zoomx не работает. Пути проверил, файлы все загрузил. Это трудная дорога…
Добрый день.
Делал вот на этом сайте АнтикМагаз. Там называются метки товаров. Там это отдельное поле «Теги» (список автодополнение). Если надо, напишу как.
Вот здесь описывал Облако тегов для miniShop2
Делал вот на этом сайте АнтикМагаз. Там называются метки товаров. Там это отдельное поле «Теги» (список автодополнение). Если надо, напишу как.
Вот здесь описывал Облако тегов для miniShop2
Там это отдельное поле «Теги» (список автодополнение).В том то и дело, что все используют какие-то свистелки и… к тегам, а обычный, классический способ для zoomx нигде не написан. Я написал автору дополнения, вряд ли он ответит, конечно, но вдруг.
На счет коммерческого предложения, спасибо, откажусь. Потому что во-первых, нищеброд, а во-вторых, делаю не коммерческий сайт для себя, типа как хобби о рыбалке. Спасибо за ваш ответ!
Это не коммерческое предложение :) Я внизу этой страницы Облако тегов для miniShop2 написал как все сделать.
{foreach $options as $option}
{if $option is array}
{$option | join : ', '}
{else}
{$option}
{/if}
{/foreach}
Да, я пробовал… На zoomx (smarty) получаю ошибку:
Syntax error in template "string:{foreach $options as $option} {if $optio..." on line 2 "{if $option is array}"
too many shorthand attributes
…Синтаксическая ошибка в шаблоне "строка: {foreach $options as $option} {if $option..." в строке 2 "{if $optio is array}"
слишком много сокращенных атрибутов
Вот так заработал вывод тегов на zoomx (smarty). Всем спасибо!
{foreach $options as $tagsname => $tags}
{foreach $tags as $tag}
{$tag}
{/foreach}
{/foreach}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.