Jump to content

[Решено] Вывод тэгов принадлежащих конкретному товару


Recommended Posts

Для 1.4 в /modules/blocktags/blocktags.php поменять

        
$tags = Tag::getMainTags((int)($params['cookie']->id_lang), (int)(Configuration::get('BLOCKTAGS_NBR')));
       if (!sizeof($tags))
           return false;
       foreach ($tags AS &$tag)
           $tag['class'] = 'tag_level'.($tag['times'] > BLOCKTAGS_MAX_LEVEL ? BLOCKTAGS_MAX_LEVEL : $tag['times']);



на

       if (!isset($_GET['id_product']) OR !is_numeric($_GET['id_product']))
       {
           $tags = Tag::getMainTags((int)($params['cookie']->id_lang), (int)(Configuration::get('BLOCKTAGS_NBR')));
           if (!sizeof($tags))
               return false;
           foreach ($tags AS &$tag)
               $tag['class'] = 'tag_level'.($tag['times'] > BLOCKTAGS_MAX_LEVEL ? BLOCKTAGS_MAX_LEVEL : $tag['times']);
       }
       else {
           $tags = Tag::getProductTags($_GET['id_product']);        
           if (!sizeof($tags))
               return false;
           $tag = $tags[(int)($params['cookie']->id_lang)];
           $tags = array();
           foreach ($tag as $key=>$val)
               $tags[] = array('name'=>$val, 'times'=>1);
       }



это если с минимальными переделками только в модуле
один минус - не выводит вес тэга (точнее подставляет туда 1), так как чтобы это сделать надо переписывать функцию или писать свою для класса в Tag.php
Ну а так - вроде работает

Link to comment
Share on other sites


это если с минимальными переделками только в модуле
один минус - не выводит вес тэга (точнее подставляет туда 1), так как чтобы это сделать надо переписывать функцию или писать свою для класса в Tag.php
Ну а так - вроде работает


отлично, то что нужно, вес как раз не нужен.
Я так понимаю если я уберу блок else и/или ограничу через админку вывод модуля тегов только на странице товара - получу желаемое)

П.С. оффтопик: совместное использование тегов и категорий в престе, как ПС относятся к такому... за дубли не ругают?
Link to comment
Share on other sites

if ... else ...
это чтобы сохранить универсальность - чтобы и там и там работало, поэтому лучше оставить, мало ли пригодится взад вернуть :)

П.С. про ПС не в курсе, хотя не вижу ничего в этом криминального. Тэги - это поиск по базе, категории - это упорядочный вывод товара

Link to comment
Share on other sites

ага, елс лучше оставить согласен.

а во оффтопику - тем кто будет это читать - с тегами не все однозначно, в коде страницы видим <title>Search - Prestashop Demo</title> - т.е. одинаковый тайтл для всех страниц тегов, надо рыть в сторону уникальности, или закрывать индексацию.

Link to comment
Share on other sites

  • 2 years later...

В 1.2 я сделал так, не думаю, что другие версии сильно отличаются:

 

В product.tpl после строки

 {if $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}

Вставил вызов списка тегов товара

<!-- теги -->
{if $product->tags}
<div class="tags">
{foreach from=$product->tags[3] item=tags}
<a class="tag" href="{$base_dir}search.php?tag={$tags|urlencode}">{$tags}<span class="arrow"></span></a>
{/foreach}
</div>
{/if}

Вам вместо [3] нужно будет вставить id языка своего магазина, мне лень было вызывать хук.

Все это хозяйство работает так:

 

ygvi.jpeg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...