Добрый день!
Есть небольшой опыт работы с сайтами на 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. Для себя делаю наброски в виде понятных взаимосвязей в каталоге. Кстати, думаю, они будут полезны для других, хотелось бы опубликовать эти картинки. А что насчёт ошибки во вкладке КОНТАКТЫ в районе капчи? Куда копать, из-за чего возникает эта ошибка?
А что насчёт ошибки во вкладке КОНТАКТЫ в районе капчи? Куда копать, из-за чего возникает эта ошибка? Вот это должно помочь.
Не за что!