sit 07 июля 2015 0 11
Добрый день!
Есть небольшой опыт работы с сайтами на 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


Подскажите, что не так и где копать?
11 комментариев
Fi1osof1
Fi1osof 07 июля 2015г в 16:14 #
Вопрос 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;
    }


Но это будет выводить только категории ближайшего уровня и только при условии наличия товаров непосредственно в них, без товаров на вложенных уровнях. Если надо учитывать вложенные уровни, можете этот процессор переопределить и дописать.
s
sit 07 июля 2015г в 18:55 #
Спасибо за квалифицированный ответ!!!
Продажа товаров сейчас сопровождается через 1С Управление торговлей 8.1.
Там же хранятся номера деталей, по которым планируется искать товар на сайте.
Т.е. в будущем, хотим выгружать из 1С-ки перечень имеющихся товаров и их свойства (описание, количество на складе, стоимость).
Вложенные уровни не планируются.
Т.е.: | Главная | Каталог товаров | Группа товара | Товар
Подскажите, по какому из вышеописанных Вами путей нам лучше идти с взглядом на будущее?
Fi1osof1
Fi1osof 07 июля 2015г в 19:16 #
Если проект серьезный, лучше закажите у меня написать вам этот процессор. Он будет тогда учитывать и все добавляемые вам параметры поисков. То есть, к примеру, если вы в процессе допилите в web/catalog/products/getdata поиск по каким-то товарам, то новый расширяющий процессор сможет учитывать эти параметры поиска и выводить только те категории, для которых товары будут найдены. Цена вопроса 3000 рублей.
Если такой функционал не требуется, то есть просто требуется выводить категории без учет есть в них товары или нет, то любой из перечисленных вариантов, какой вам больше нравится.
s
sit 07 июля 2015г в 20:09 #
Я правильно понимаю, что это стоимость процессора вместе с автоматической загрузкой перечня товара из 1С Управление торговлей 8.1?
Fi1osof1
Fi1osof 07 июля 2015г в 20:44 #
Нет, это только процессор для вывода категорий. То есть примерно полтора часа работы (я с запасом беру). Импорт из 1С у нас от 30 000 руб.
s
sit 08 июля 2015г в 06:56 #
Понятно. Мы бы с радостью воспользовались таким предложением, т.к. это весьма разумная цена, но пока такой возможности у нас нет… Мы лучше потом когда Интернет-продажи заработают вам безвозмездно на развитие проекта денег переведём. Это у нас есть в планах такое.

Возвращаясь к моему первоначальному вопросу, с учётом имеющейся у нас 1С-ки 8.1 — по какому пути озвученному Вами в первом посте посоветуете идти?
Fi1osof1
Fi1osof 08 июля 2015г в 09:31 #
Сначала попробуйте выгрузку из 1С выполнить через ShopModx1C. Что у вас вообще на сайт выгрузится и выгрузится ли вообще. И еще там надо будет прописать импорт дополнительных полей и обновление потом имеющихся товаров. И вот если уж у вас каталог будет, тогда уже и категории выводить будете.
s
sit 08 июля 2015г в 11:10 #
Да, вы правы, надо начинать с импорта из 1С.

Насчёт вывода — вариант с [[Wayfinder?level=`1`]] пока вполне устроил. Спасибо!

Пока разбираюсь с устройством модуля ShopModxBox. Для себя делаю наброски в виде понятных взаимосвязей в каталоге. Кстати, думаю, они будут полезны для других, хотелось бы опубликовать эти картинки.

А что насчёт ошибки во вкладке КОНТАКТЫ в районе капчи? Куда копать, из-за чего возникает эта ошибка?
Fi1osof1
Fi1osof 08 июля 2015г в 11:43 #
А что насчёт ошибки во вкладке КОНТАКТЫ в районе капчи? Куда копать, из-за чего возникает эта ошибка?
Вот это должно помочь.
s
sit 30 августа 2015г в 21:51 #
Спасибо! Помогло.
Fi1osof1
Fi1osof 30 августа 2015г в 21:56 #
Не за что!
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.