Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Следить
Главная
14:20
07 окт
#
?
написал:

Здравствуйте.

В Карточке товара в блоке Поисковое продвижение есть строка Теги. Где выводятся эти теги? Как сделать вывод тегов в заданном месте на Карточке товара?

19:55
19 окт
#
?
написал:

Ув. разработчик, этот баг будет исправлен в новой версии? Если нет, я готов оплатить его исправление в первую очередь, контактный e-mail: andrey.gritsay@gmail.com

12:51
04 ноя
#
?
написал:

Добрый день.

Был ли исправлен баг с отсутствием тэгов? В демо версии их не видно, может быть они как-то включаются?

19:08
24 ноя
#
?
написал:

Добрый день.

Был ли исправлен баг?

20:50
24 ноя
#
написал:

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>'}


Параметры вызова модуля:

  • item = из какой переменной вывести теги
  • and_keywords = true если подмешивать в теги meta keywords товара, false если вывести только теги
  • opentag = html-тег, открывающий список тегов (или пустая строка)
  • title = html-фрагмент, который нужно показать перед списком тегов (или пустая строка)
  • a_params = дополнительные опции тега ссылки <a> (например target="_blank" или пустая строка)
  • separator = html-фрагмент, что нужно вставить между ссылками (например запятая или пустая строка)
  • closetag = html-тег, закрывающий список тегов (или пустая строка)


Аналогично этот модуль вызывается из мини карточки товара, только переменную $product заменить на вашу, если в цикле перебора товаров именуете переменную по-другому.

Также в css-файл сайта нужно добавить стили для контейнера тегов:

    .tags-box {
        /* стили контейнера тегов */
    }

    .tags-box .tags-title {
        /* стили надписи "теги:" перед списком тегов */
    }

    .tags-box a {
        /* стили ссылок тегов */
    }
19:14
25 ноя
#
?
написал:

Спасибо!!!

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.