Метки на странице товара
Выводим все метки товара на странице с подробным описание товара.
Красиво, удобно, полезно для сео.
Через админ-часть заходим в раздел Дизайн редактируем текущую тему, выбираем закладку Продукт
И в том месте, где хотим отображать наши метки вставляем {tags}
В папке /kernel/includes/smarty/plugins создаем файл function.tags.php со следующим кодом:
<?php
function smarty_function_tags( $params, &$smarty )
{
$disp='Метки:';
$sql='select tag_id from SC_tagged_objects where object_type="product" and object_id='.$_GET['productID'];
if($r=mysql_query($sql))
while($res=mysql_fetch_assoc($r)){
$sql2='select name from SC_tags where id='.$res['tag_id'];
if($r2=mysql_query($sql2))
$tags=mysql_fetch_assoc($r2);
$disp.=' <a href="/search/?searchstring='.$tags['name'].'">'.$tags['name'].'</a>';
}
return $disp;
}
?>Этот пример выводит все теги, если вам нужны на разных языках разные теги, нужно добавить еще одно условие.
И этот пример для нормальных урлов (вида: /products/product_name/) — настраивается в инсталлере.
Нужны модификации — обращайтесь.


Добрый вечер. Все сделал как описано в статье, только вот не пойму как вставить {tags} — т.е. это нужно через вкладку «Редактировать HTML-код», а там куда конкретно вставлять. Когда вставил фразу {tags} появилось пять знаков вопроса после двоеточие а потом мои теги. я так понимаю что вместо знаков вопроса должно быть слово метки. и еще как уменьшить шрифт данных тегов. За ранее спасибо =)
да. сделать через редактор html
знаки вопроса из-за неверной кодировки. файл плагина нужно сохранить в кодировки utf-8
а шрифт уменьшить: заключити {tags} в какой-нибудь div и назнаачьте ему класс. например:
и в css пишите:
.mytags {стиль слова «метки»}
.mytags а {стиль меток}
Всё сделал как написано но у меня не отображаеться, помогите пожалуйста!
помогаю)
если сами не можете установить — обратитесь к тем, кто в этом разбирается
Нет, серьезно. У меня та же проблема. Создал файл function.tags.php в папке /kernel/includes/smarty/plugins. Скопировал в него ваш скриптик.
Через редактор дизайна «изменяя html» вставил {tags}. Сохранил — ничего не отображается. Вообще ничего….
Да, и метки у меня есть в товарах. Это не из-за их отсутствия…
это очень простой скрипт. по идее должно работать
если нет даже слова «метки», то плагин вообще не вызывается
покажите сайт, пожалуйста
Да, что-то тут не так…у меня тоже не хочет работать
Привет! Все работает отлично! Но есть один ньюанс . Как скрыть слово «метки» если на товаре нет ни одного тега. Как правильно задать условие? Спасибо.
Перенесите
$disp=’Метки:’;
под
if($r=mysql_query($sql))
и добавьте перед ним првоерку:
if(mysql_num_rows($r)>0)
Артем спасибо! Все получилось!
Можете доработать скрипт чтоб теги показывались в соответсвтие с выбраным языком, а не все подряд
Спасибо!
сейчас могу только платно
если появится время, то выложу тут
сделаете раньше — делитесь с народом. вам спасибо скажут
Хотя там всего лишь нужно в запросе (из таблицы SC_tagged_objects) добавить
and language_id ="'.$_GET['lang_iso2'].'"если я ничего не перепутал
$sql=’select tag_id from SC_tagged_objects where object_type=»product» and object_id=’.$_GET['productID'].’ and language_id =’.$_GET['lang_iso2'];
Если задать этот параметр вообще ни какое теги не показывает
да. это я вам неправильно подсказал
нужно примерно так
if($_GET['lang_iso2']=='ru'){
$sql='select tag_id from SC_tagged_objects where object_type="product" and object_id='.$_GET['productID'].' and language_id="1"';
} else if($_GET['lang_iso2']=='en'){
$sql='select tag_id from SC_tagged_objects where object_type="product" and object_id='.$_GET['productID'].' and language_id="2"';
}
1 и 2 — id языков. посмотреть их можно в админке
но по умолчанию вроде так
Тоже самое теги не показываются хзч
if($_GET['lang_iso2']=='en'){
$sql='select tag_id from SC_tagged_objects where object_type="product" and object_id='.$_GET['productID'].' and language_id="2"';
} else {
$sql='select tag_id from SC_tagged_objects where object_type="product" and object_id='.$_GET['productID'].' and language_id="1"';
}
при языке по умолчанию переменная пустая. забыл
Зачет! Тёма спасибо огромное
Ты просто пипец какой молодец!
Артем, а как вывести эти метки {tags} в категории товаров, в списке?
вместо
$_GET['productID']передайте id продукта параметром и используйте его в запросеи и сам вывод естественно в файле карточки продукта внутри категории
Артем, я сильно извиняюсь, а не подбросите кусочек кода для категории, если не трудно?
Спасибо
пока нет
не знаю в каком файле инициализировать эти метки, чтобы можно было вывести их в категориях товаров (в списке), может подскажете, очень нужно.
спасибо
если прочитаете руководство, то будете знать в каком файле что находится
файл — product_brief.html
сорри, не верно выразился, хотел сказать что когда вставляю product_brief.html {tags}, то на странице категорий он не выводится, в отличии от страницы подробно.
вот я и хотел узнать, в каком php-файле эту переменную нужно иниуиализировать, чтобы потом вывести в шаблон категорий…
{tags} в данном случае не переменная, а плагин
но сейчас плагин работает только на странице продукта, потому что использует GET переменную, которая доступна только на странице продукта
чтобы использовать плагин на странице категории, нужно плагину передавать параметром id каждого товара и в самом плагине проверять GET переменную и параметр