7 июля 2015 г., 12:52

Вывод списка каталогов

Добрый день! Есть небольшой опыт работы с сайтами на MODX и поднятия их на серверах, знаю PHP. Но пока не до конца понял структуру MODX и как всё работает. Сейчас поверх пустого MODX на данный момент установлен бесплатный пакет ShopModxBox (за что огромное вам спасибо!)
Есть «Каталог товаров». В этом каталоге есть группы товаров «Группа 1», «Группа 2»… «Группа N»
Но сейчас выводится перечень товаров из самих групп, но не наименования групп. Насколько понял, за вывод товаров отвечает: shopmodx/shop/catalog/list.tpl
Внутри файла содержится код:
{* Получаем товары*} {extends «common/list/list.tpl»} {block name=params append} {$params = array_merge((array)$params, [ «limit» => 6, «cache» => 1, «sort» => «modResource.id» ])} {$processor = «web/catalog/products/getdata»} {$no_records_error = «Товары не были получены»} {$outer_tpl = «shop/catalog/list/fetch.tpl»} {/block}
Вопрос 1. Чтобы получить и вывести не перечень самих товаров, а перечень категорий товаров — какой параметр нужно использовать? . И ещё вопрос №2 После установки на голый modx сборки ShopModxBox в разделе «Контакты» на капчу всё время отображаются ошибки прям в тексте WEB-страницы.
[2015-07-07 16:47:37] (ERROR @ /home/...sitename.ru/docs/core/model/modx/modx.class.php: 1836) PHP warning: Missing argument 2 for modX::parseChunk(), called in /home/...sitename.ru/docs/core/components/modxsmarty/compiled/shopmodx/web/c4f67f496bd0e191c1968a23cbd74a8ce1e0a5ac_0.file.feedback.tpl.php on line 161 and defined
Подскажите, что не так и где копать?
Вопрос 1. Чтобы получить и вывести не перечень самих товаров, а перечень категорий товаров — какой параметр нужно использовать?
Проще всего конечно использовать сниппет [[Wayfinder?level=`1`]] или getdata-процессор {processor action=«web/resources/getdata» ns=«modxsite» params=[«parent» => $modx->resource->id]}… Но так вы получите категории без учета есть в них товары для вывода или нет. Хотя это и не страшно, если каталог не большой и вручную легко рулится (нет товаров — поставили категории галочку «Не показывать в меню» и все). Но если нужна автоматизация (то есть чтобы точно не выводились категории, для которых товары отсутствуют), то надо уже более серьезно к этому подходить. В идеале — расширять web/catalog/products/getdata процессор (но тут есть сложности, так как там он товары будет пытаться получить, а надо родителей выводить, то есть хитро запросы переопределить), или хотя бы расширить web/resources/getdata и в запросе добавить дочерние товары, типа так:
public function prepareQueryBeforeCount(xPDOQuery $c) { $c = parent::prepareQueryBeforeCount($c); $alias = $c->getAlias(); $c->innerJoin('modResource', 'Children'); $c->innerJoin('ShopmodxProduct', 'Product', "Product.resource_id = Children.id"); $c->where(array( "Children.published" => 1, "Children.deleted" => 0, // hidemenu and etc optionaly )); return $c; }
Но это будет выводить только категории ближайшего уровня и только при условии наличия товаров непосредственно в них, без товаров на вложенных уровнях. Если надо учитывать вложенные уровни, можете этот процессор переопределить и дописать.
Спасибо за квалифицированный ответ!!! Продажа товаров сейчас сопровождается через 1С Управление торговлей 8.1. Там же хранятся номера деталей, по которым планируется искать товар на сайте. Т.е. в будущем, хотим выгружать из 1С-ки перечень имеющихся товаров и их свойства (описание, количество на складе, стоимость). Вложенные уровни не планируются. Т.е.: | Главная | Каталог товаров | Группа товара | Товар Подскажите, по какому из вышеописанных Вами путей нам лучше идти с взглядом на будущее?
Если проект серьезный, лучше закажите у меня написать вам этот процессор. Он будет тогда учитывать и все добавляемые вам параметры поисков. То есть, к примеру, если вы в процессе допилите в web/catalog/products/getdata поиск по каким-то товарам, то новый расширяющий процессор сможет учитывать эти параметры поиска и выводить только те категории, для которых товары будут найдены. Цена вопроса 3000 рублей. Если такой функционал не требуется, то есть просто требуется выводить категории без учет есть в них товары или нет, то любой из перечисленных вариантов, какой вам больше нравится.
Я правильно понимаю, что это стоимость процессора вместе с автоматической загрузкой перечня товара из 1С Управление торговлей 8.1?
Нет, это только процессор для вывода категорий. То есть примерно полтора часа работы (я с запасом беру). Импорт из 1С у нас от 30 000 руб.
Понятно. Мы бы с радостью воспользовались таким предложением, т.к. это весьма разумная цена, но пока такой возможности у нас нет… Мы лучше потом когда Интернет-продажи заработают вам безвозмездно на развитие проекта денег переведём. Это у нас есть в планах такое.
Возвращаясь к моему первоначальному вопросу, с учётом имеющейся у нас 1С-ки 8.1 — по какому пути озвученному Вами в первом посте посоветуете идти?
Сначала попробуйте выгрузку из 1С выполнить через ShopModx1C. Что у вас вообще на сайт выгрузится и выгрузится ли вообще. И еще там надо будет прописать импорт дополнительных полей и обновление потом имеющихся товаров. И вот если уж у вас каталог будет, тогда уже и категории выводить будете.
Да, вы правы, надо начинать с импорта из 1С.
Насчёт вывода — вариант с [[Wayfinder?level=`1`]] пока вполне устроил. Спасибо!
Пока разбираюсь с устройством модуля ShopModxBox. Для себя делаю наброски в виде понятных взаимосвязей в каталоге. Кстати, думаю, они будут полезны для других, хотелось бы опубликовать эти картинки.
А что насчёт ошибки во вкладке КОНТАКТЫ в районе капчи? Куда копать, из-за чего возникает эта ошибка?
А что насчёт ошибки во вкладке КОНТАКТЫ в районе капчи? Куда копать, из-за чего возникает эта ошибка?
Вот это должно помочь.
Спасибо! Помогло.

Добавить комментарий