Здравствуйте.
В Карточке товара в блоке Поисковое продвижение есть строка Теги. Где выводятся эти теги? Как сделать вывод тегов в заданном месте на Карточке товара?
Здравствуйте.
В Карточке товара в блоке Поисковое продвижение есть строка Теги. Где выводятся эти теги? Как сделать вывод тегов в заданном месте на Карточке товара?
Ув. разработчик, этот баг будет исправлен в новой версии? Если нет, я готов оплатить его исправление в первую очередь, контактный e-mail: andrey.gritsay@gmail.com
Добрый день.
Был ли исправлен баг с отсутствием тэгов? В демо версии их не видно, может быть они как-то включаются?
demo.imperacms.com/tags/лазерная-указка - показать все товары с тегом лазерная указка.
На демо сайте, к сожалению, мало товаров, среди них еще меньше с заполненным полем тегов, чтобы хорошо продемонстрировать работу этой функции. Например указанная ссылка сейчас выведет всего два товара. Но можете вручную вбить нескольким товарам одинаковый тег и увидеть более обширное действие функции.
Функция похожа на функцию поиска, только ищет по тегам или полям Meta keywords всех товаров, и если обнаруживается всего один товар, помеченный таким тегом/keywords-ом, автоматически перебрасывает на страницу товара (подобно стандартному поиску).
Готовый модуль, который отрисовывает кликабельные теги товара на его странице или в мини карточке товара, можно взять из шаблона IdealGift, смотрите файл design/IdealGift/html/cards/tags.htm. На всякий случай содержимое этого файла показано ниже (здесь цветом обозначены глобальные и локальные переменные, входные параметры и их поля, а также модификаторы и теги шаблонизатора Smarty):
{* <!-- карточки: блок тегов --> *}{strip} {* <!-- готовим теги --> *} {$tags = $item->tags|default:''} {if $and_keywords|default:false} {$tags = $tags|cat:','|cat:($item->meta_keywords|default:'')} {/if} {$tags = ($tags|strip_tags)|regex_replace:'/[\s\t\r\n]+/':' '} {$tags = $tags|regex_replace:'/[^а-яёa-z0-9,\s\-]+/iu':','} {$tags = $tags|regex_replace:'/\s*,\s*/':','} {$tags = $tags|regex_replace:'/,+/':','} {$tags = $tags|regex_replace:'/^[\s,]+/':''} {$tags = $tags|regex_replace:'/[\s,]+$/':''} {* <!-- выводим --> *} {if $tags != ''} {$opentag|default:''} {$a = (($site|default:'')|cat:($item->url_path|default:'')|cat:($item->url|default:''))|escape} {$a = '<a href="'|cat:$a|cat:"\" "|cat:($a_params|default:"")} {$a = $a|cat:" onclick=\"var a = this.innerHTML.toLowerCase(); var b = ''; while (a != (b = a.replace(/\s+/, '-'))) a = b; location.replace('"|cat:(($site|default:"")|escape)|cat:'tags/\' + a); return false;">'} {$title|default:''} {$a} {($tags|escape)|replace:',':('</a>'|cat:($separator|default:' ')|cat:$a)} </a> {$closetag|default:''} {/if} {/strip}
Вызывается этот модуль со страницы товара, то есть из файла product.tpl, следующим образом (здесь предполагаем, что модуль поместили в папку cards внутри папки tpl-файлов шаблона, точно так, как это было сделано в шаблоне IdealGift):
{* <!-- теги --> *} {include file = 'cards/tags.htm' item = $product|default:false and_keywords = true opentag = '<div class="tags-box">' title = '<span class="tags-title">теги:</span> ' a_params = '' separator = ', ' closetag = '</div>'}
Параметры вызова модуля:
Аналогично этот модуль вызывается из мини карточки товара, только переменную $product заменить на вашу, если в цикле перебора товаров именуете переменную по-другому.
Также в css-файл сайта нужно добавить стили для контейнера тегов:
.tags-box { /* стили контейнера тегов */ } .tags-box .tags-title { /* стили надписи "теги:" перед списком тегов */ } .tags-box a { /* стили ссылок тегов */ }