Фильтр для интернет-магазина

Модератор
#
Re: Фильтр для интернет-магазина
hell0men, ответ на вопрос дан в теме http://hostcms.ru/forums/17/3111/
#
Re: Фильтр для интернет-магазина
добавил
$param['current_group_id'] = false;

Стали выводиться подгруппы, все хорошо, но перестала работать постраничная навигация, т.е. странички выводятся в правильном количестве а вот в ссылке отсутсвует группа товаров.
Как ее вернуть для постраничной навигации?
#
Re: Фильтр для интернет-магазина
Задам вопрос в этой теме, теперь, думаю тема правильная.
Приведенные примеры кода в этой теме и в других похожих пытаюсь применить для того, чтобы при выводе групп в каталоге магазина, выводилось количество товаров (которое в скобках) не для данной группы, а для всей ветки  данной группы. И так же, когда заходим в подгруппу данной группы, выводилось количество товара выше по дереву, включая данную подгруппу, вплоть до листьев  (а если подгрупп несколько, то нужно, чтобы выводилось количество товаров по каждой ветке дерева).

Другими словами, как нужно изменить код в ТДС магазина для передачи нужных параметров в метод вывода ShowShop, чтобы элемент <xsl:value-of select="count_all_items"/> в XSL-шаблоне МагазинКаталогТоваров выводил бы количество товаров вверх по дереву, начиная с группы или подгруппы, которая выводится в каталог.

Пробовал методом тыка, а также,  обложившись учебниками по PHP, XML/XSLT приспособить примеры, которые отыскал в разных ветках. В том числе и этот фрагмент:
// В корне выводим из всех поддиректорий
if ($param['current_group_id'] == 0)
{
$param['current_group_id'] = false;
}
Но в результате либо чистая страница, либо выводится под группой весь товар не данной ветки, а всего магазина, а при переходе в подгруппу выводится товар подгруппы.
Но мне не нужно выводить товар, мне нужно выводить каталог с указанием количества товаров в группах, а при переходе в подгруппу, так же и в подгруппах. Иначе, если группа имеет подгруппы и не имеет товара в самой группе, выводится ноль. И покупатель, понятное дело, не будет заходить в такую группу, думая, что там нет товара. Вот зачем это нужно.

Хотел было уже бросить все, даже поковырял PHPshopCMS. Но теперь-то уже поздно, засосало, когда разобрался как все устроено. Да и с функциональностью ни в какое сравнение не идет с PHPshopCMC. Да и языки уже учу, сразу оба PHP  и XML/XSL.

Я уж сегодня вторую ночь сидеть не выдержу, если кто снизойдет до моей просьбы, то это не срочно, можно завтра.
#
Re: Фильтр для интернет-магазина
Как временное решение вырезал часть кода, чтобы количество товара в группах и подгруппах вообще не выводилось и не смущало бы посетителей магазина.
#
Re: Фильтр для интернет-магазина
Да! Вот задал я задачу создателям HostCms.
Вот и ответ на дискуссию в ветке "Я совершенно не понимаю логику работы HostCMS". Вместо наличия маааленькой кнопочки в панели управления, нужно репу морщить самим разработчикам системы.
#
Re: Фильтр для интернет-магазина
novoeo, вы всерьез думаете что кто-то "морщил репу"? (Интересное, кстати, словосочетание, с ужасом представляю себе его физический смысл - обычно морщат лицо, а репу чешут.) Просто все заняты делом и им некогда писать на форум.

По сути вопроса - все очень просто.
В ТДС, перед вызовом метода showShop() получаете родительскую группу верхнего уровня для текущей группы с помощью метода GetShopGroupsToRoot() (см. api - http://www.hostcms.ru/api/HostCMS_5/shop.html#methodGetShopGroupsToRoot), а для этой группы получаете нужные вам количества товаров с помощью метода GetCountItemsAndGroups() (см. api, там же). Метод вернет вам массив, элемент которого под индексом count_all_items и будет искомым значением.

Этот элемент массива следует передать в xml с помощью external_propertys, а в xsl шаблоне вывести значение этого узла вместо  <xsl:value-of select=«count_all_items»/> (не забывая при этом, что данные передаваемые через external_propertys окзываются в корневом элементе /shop xml-документа. То есть если в php вы передаете в xml магазина значение
$external_propertys['any_node_name'] = '...';
то в любом месте xsl это можно вывести как
<xsl:value-of select="/shop/any_node_name" />
где вместо "any_node_name" - любое название узла. Ну и разумеется не должно совпадать с названиями узлов, уже существующих в корневом узле /shop xml-документа)

Готовый код к вышеприведенному способу я намеренно не пишу - попробуйте сами.
Заказов не беру. Консультирую редко.
#
Re: Фильтр для интернет-магазина
Спасибо, буду делать. Сижу с учебником Елены Бенкер из СПбГПУ.
А про репу, видимо разница поколений.
#
Re: Фильтр для интернет-магазина
По php5 самая лучшая книга (имхо) это "PHP5 в подлиннике" Дмитрия Котерова и Алексея Костарева - http://yandex.ru/yandsearch?text=PHP+5+%D0%B2+%D0%BF%D0%BE%D0%B4%D0%BB%D0%B8%D0%BD%D0%BD%D0%B8%D0%BA%D0%B5+%D0%9A%D0%BE%D1%82%D0%B5%D1%80%D0%BE%D0%B2+%D0%9A%D0%BE%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%B2&lr=2

Ну и api от HostCMS вам будет реально полезно. Полистайте просто так, посмотрите какие есть классы, какие у них методы, чего они делают, - просто чтобы иметь общее представление о внутренем устройстве cms.
Заказов не беру. Консультирую редко.
#
Re: Фильтр для интернет-магазина
Спасибо. «PHP5 в подлиннике» я давно запасся, api изучал, когда пытался сам сделать ранее. А по XML, книгу указанного мной автора изучаю. Все книги в типографском исполнении с приложением CD. В формате djvu «PHP5 в подлиннике» тоже есть, но я привык по старинке.
Буду работать по указанному Вами алгоритму, только определюсь со временем немного. Работой в Арбитражном суде нагрузили наши клиенты.
#
Re: Фильтр для интернет-магазина
долго мучил поиск, но так и не нашел подходящего ответа на свой вопрос. Может плохо искал, а может и правда нет...

Суть проблемы: Есть каталог следущей структуры - Торговая марка->Сезон->Коллекция->Папка Товара(Например "Юбка"->(здесь сами товары уже) Юбка р. 122/Юбка р.128/ Юбка р.134 и т.д.

Т.е. Товары только на последнем уровне! Количество вложенности уровней - от 3 до 5.
По предлагаемым здесь способам выводится весь товар по всему нижележащему дереву каталога - что не очень правильно для меня. При заходе в "Коллекция" сейчас выводятся папки товаров и нужен дополнительный клик, чтобы перейти внутрь папки(группы) где уже можно будет положить товар в корзину. А мне надо, чтобы в "Коллекция" выводились подпапки "Товаров" - как и сейчас и сразу же под ними ссылки на сами товары. К сожалению стандартно в xml передается иерархично дерево групп и товары текущей группы - поэтому вывести товары подгрупп (Товаров) я не могу вообще. В приведенных примерах этой темы товары в xml выводятся все скопом по всему дереву независимо от уровня на котором находишься, да и подгруппы у меня почемуто не выводились нормально.

Весь моск свой "очень сильно начинающего пользователя Hostcms" сломал. Никак не соображу как решить проблему.
Модификации и прочее не предлагать - танцую от 1С с которой автоматическая связь и в которой мне нужны уникальные артикулы и штрихкоды для каждого товара.

Идеально - это как то добавить в xml каталога иерархично товары не только текущего каталога, но и 1 уровня подчинения.


Заранее спасибо всем откликнувшимся.
Авторизация