Сразу поясню, что сам не владею PHP, Javascript, AJAX и прочим, в работе с MODx занимаюсь только вёрсткой дизайна, прикручиванием и настройкой готовых дополнений к определенной задаче. Поэтому тут рассуждаю скорее как заказчик.
У меня есть некоторое количество клиентских сайтов на Evolution, на которых реализованы каталоги товаров в виде документов MODx, разбитых по категориям в дереве. У товаров есть отдельные TV типа цены, фотографии итд, иногда привязан ShopKeeper, в общем вполне стандартная ситуация. Ну и многие из тех, кто использует подобную структуру, наверняка сталкивался с надобностью поменять цены, а по одному документу делать это не совсем удобно и довольно долго. Готовых решений по ускорению этого процесса я не нашел, поэтому решил свои мысли и предложения изложить здесь для обсуждения. Итак, способы решения этой задачи:
1) Написание модуля, выводящего товары (дочерние документы заданного родителя) в виде таблицы а-ля Excel с заранее выбранными столбцами в конфиге (поля документа, TV-параметры). Тут необходимо редактирование полей прямо в таблице. Если сделать удобный интерфейс, добавление/удаление строк, отмену последних действий, возможность выбора родителя путём нажатия на него в дереве документов и прочие мелочи, то получится модуль, который сможет без проблем использовать не искушенный в компьютерных делах человек.
Минусы: по-моему, это очень сложная штуковина, долгая в разработке, багов будет тьма.
2) Модуль импорта/экспорта в CSV вроде
User Friendly csv import, только с возможностью обновления контента. Т.е. нужен экспорт с ID документов, после правки CSV заливается обратно. Задача наверняка попроще, чем разработка первого модуля, но наверняка появятся и свои подводные камни. Да и для контент-менеджеров надо тоже всё максимально упростить. Мало ли, они сохранят в неправильной кодировке, с неправильным разделителем, а еще и столбец лишний добавят. Ну или сам файл не туда загрузят, кто их знает… Везде надо продумывать защиту «от дурака».
3) Неоднократно слышал мнение, что делать подобные каталоги на Evo, когда товары являются документами MODx, очень плохо для быстродействия. Тогда другой вариант — переходить на Revo, там создавать пользовательские таблицы, а уже для их редактирования использовать компонент вроде
этого, немного его
допилив. Тут останавливает то, что придётся изучать Revo, в то время, как Evo уже полностью изучен, понятен, под него есть и собственные удобные дополнения, которые хотелось использовать в будущих проектах. Ну и уже работающие сайты на Revo переносить тоже замучаешься, каталоги переделывать.
Какой вариант кому кажется более адекватным? Или может есть другие предложения?