Теги не делят товар на категории

#
Re: Теги не делят товар на категории
Да, согласен. а не подскажете тогда, как сделать, чтобы на главной теги работали как и раньше: то есть искали по всему сайту,а в группах уже теги сортировали только по группам товар.
Не могу разобраться, как условие прописать в ХостCMS.
Я понимаю, надо прописать так:
Если адрес "/" - ищем во всех разделах, а если "/группа1/группа345"- то в текущей группе.
Ссылки у меня на сайте сейчас прописываются правильно:
<li>
         <a href="./tag/{tag_path_name}/" style="font-size: {$size}pt">
            <xsl:value-of select="tag_name"/>
         </a>
         
      </li>
,
а вот поиск идет по условию "ищем по всему сайту при выводе тэгов":
/ При выводе тэгов вывод элементов ведется из всех групп
            $param['current_group_id'] = false;
.
#
Re: Теги не делят товар на категории
Хм...
А что вы имеете в виду под главной?
Главную страницу _магазина_, или главную страницу _сайта_?
Заказов не беру. Консультирую редко.
#
Re: Теги не делят товар на категории
теги ищут по товарам в _магазине_. ссылка вида :
http://домен.ru/shop/tag/Hipp/

они находятся у меня на главной в облаке тегов.
а в разделах у меня появляются теги не всего сайта, а только тех товаров, которые находятся в определенном разделе. но вот при нажатии на эти теги, поиск все равно идет не по разделу, а по всему сайту.
#
Re: Теги не делят товар на категории
Если имеется в виду главная страница магазина, то условие в ТДС будет примерно такое:
if ($param['current_group_id'] < 1)
{
$param['current_group_id'] = false;
}

поскольку в данном случае при выполнении метода значения 0 и false имеют разный смысл.
Заказов не беру. Консультирую редко.
#
Re: Теги не делят товар на категории
Kotoff,
Точно!
Спасибо Вам огромное. теперь все работает как надо!!!
единственная загвоздка еще:
надо видимо немного функцию генерации ссылки поменять.
"./tag/{tag_path_name}/"

При нажатии на тег в разделе, создается ссылка вида
http://домен.ru/shop/group_594/group_595/tag/Semper/
. А при повторном нажатии в этом же разделе на любой тег, генерируется ссылка
http://домен.ru/shop/group_594/group_595/tag/Semper/tag/Nestle/
.
Это логично, я все понимаю. но какой символ может заменить слово ГРУППА? :
"{shop/ГРУППА}/tag/{tag_path_name}/"
раньше было написано {shop/path}, и генерировалась главная страница _магазина_ .
Заранее спасибо,Kotoff!
#
Re: Теги не делят товар на категории
это потму что вы при формировании ссылки для тега используете относительный путь от текущей папки (значение параметра href начинается с точки) а надо использовать относительный путь от корня.
запись
{shop/path}
действительно означает корень магазина, и ее нужно оставить.

А вот с группой есть нюанс.
В xml каталога товаров магазина есть информация о группах, и есть идентификатор текущей группы.
Поэтому в XSL-шаблоне, в темплейте, отвечающем за построение меток, перед тегом <a> нужно добавить примерно такой код:
<xsl:variable name="group_url" select="/shop//group[@id = /shop/@current_group_id]/fullpath" />

а внутри тега, после пути к корню магазина вывести значение этой переменной:
href="{/shop/path}{$group_url}tag/{tag_path_name}/"

(Этот код, правда не совсем рационален, с точки зрения производительности xslt-шаблона - переменная будет вычисляться столько раз, сколько у вас тегов на этой странице, а значение у нее будет всегда одно и то же. То есть лучше, конечно, вынести вычисление этой переменной в вышестоящий темплейт, где она будет вычисляться только 1 раз, и передавать это значение в теплейт для построения тегов в виде параметра. Но это уж если вы сами осилите )
Заказов не беру. Консультирую редко.
#
Re: Теги не делят товар на категории
поставил Ваш код. не работает)
опять в группах отбор по всем меткам отбирается.
то есть не генерирует ссылку группы.
#
Re: Теги не делят товар на категории
redvov, ну так я же написал "примерно такой код". Я вам идею изложил. Но например, в стандартном шаблоне от демо-сайта этот способ работать не будет, потому что там сами метки строятся _вне_ ТДС "интернет-магазин", путем отдельного вызова метода в шаблоне сайта.
А вы цитировали выше именно ТДС, поэтому я и предположил что метки строятся именно через нее.
Постучитесь уже наконец ко мне в аську с доступами, я посмотрю и сделаю как надо, сколько уже можно угадывать?
Заказов не беру. Консультирую редко.
#
Re: Теги не делят товар на категории
Ну к слову сказать, если у вас вывод меток осуществялется, как в демо-макете, путем вызова метода ShowTagsCloud() в коде шаблона страницы, то вам поможет другой способ.
Дело в том, что в xml генерируемом этим методом, не содержится информация о группах. Поэтому надо передать ее туда как внешнее свойство при вызове метода. Но для этого, нам надо определить путь к текущей группе.
Сделаем это так: в шаблоне страницы добавим несколько строчек в блок, вызывающие отображение меток:
if (class_exists('shop'))
{
    $shop = &singleton('shop');
    $cloud_external_propertys = array();
    $cloud_property = array();
    if (isset($GLOBALS['shop_item_path']['group'] && $GLOBALS['shop_item_path']['group'] > 0))
    {
        $cloud_external_propertys['current_group_path'] = $shop->GetPathGroup($GLOBALS['shop_item_path']['group']);
    }

    $shop->ShowTagsCloud(to_int($GLOBALS['LA']['shop_id']), 'ОблакоТэговМагазин', $cloud_property, $cloud_external_propertys);
}

а в xsl-шаблоне уберем строку с формированием переменной group_url, поскольку она нам в таком случае не нужна, и в атрибуте href напишем следующее:
href="{/shop/path}{/shop/current_group_path}tag/{tag_path_name}/"
Заказов не беру. Консультирую редко.
#
Re: Теги не делят товар на категории
В предыдущем коде опечатка - нехватает закрывающей скобки перед И в условии, а в конце условия скобка лишняя:
if (isset($GLOBALS['shop_item_path']['group']) && $GLOBALS['shop_item_path']['group'] > 0))
Заказов не беру. Консультирую редко.
Авторизация