21 января 2019, 23:09 +1 Спасибо, Павел, что обратили внимание и исправили ;) И большое спасибо за то, что уделяете время бесплатному и полезному компоненту. Принял плюс в карму =) Новые дополнения и их версии / [tvSuperSelect] 1.3.0 Привет, MIGX! 19
12 января 2019, 16:08 0 При чистой установке на modhost.pro: Could not create table `v4enCXzTSLqE_tvss_options` SQL: CREATE TABLE `v4enCXzTSLqE_tvss_options` (`resource_id` INT(10) unsigned NOT NULL, `tv_id` VARCHAR(255) NOT NULL, `value` TEXT NULL, INDEX `resource` (`resource_id`,`tv_id`)) ENGINE=MyISAM ERROR: Array ( [0] => 42000 [1] => 1071 [2] => Specified key was too long; max key length is 1000 bytes )Думаю, так как на Модхосте таблицы со сравнением по умолчанию utf8mb4 а не utf8, не хватает длины индекса для поля Varchar(255). Вроде, по умолчанию, во всяком случае для utf8mb4, считается 4 байта на символ, MyISAM ограничивает до 1000 байт, а InnoDB итого меньше (765 кажется). Получаем 255*4 = 1020, плюс resource_id… В общем, может, tv_id => INT, или, хотя бы VARCHAR(240)? Новые дополнения и их версии / [tvSuperSelect] 1.3.0 Привет, MIGX! 19
30 марта 2018, 22:11 +1 Наверное — это при том условии, что я не ресурс расширяю и своего кэш-менеджера, как у ресурсов не делал, не много полей и немного данных, но все таки без него как-то будет не так, думаю. Почему я так думаю — cache_db создает не только файл кэша с массивом элементов таблицы, но и создает кэш-файлы для каждого значения, почти так же, как сам MODx создает свой кэш для ресурсов. Это из наблюдений и поверхностного анализа XPDO кэша, модкэшменеджера и работы кэширования процессорами ресурсов. Но я не претендую на знатока вопроса. Готовые решения / Обновление кэша записей (cache_db) при расширении собственного класса 3
30 марта 2018, 21:35 0 Да все зависит и от хостинга и от задачи, думаю. Я не проводил тестов на эту тему, но в моем случае — доска объявлений, база для хранения админ. единиц страны, в базе будет около 22 000 населённых пунктов и прочих единиц, много запросов разнобойных по разным админ единицам, может помочь. Наверное :) Готовые решения / Обновление кэша записей (cache_db) при расширении собственного класса 3
30 марта 2018, 19:32 0 Что-то мне показалось, что по доходности фильтрует… Вопросы / Фильтр не сортирует по цене 2
17 февраля 2018, 23:27 0 Спасибо за вариант! Вопросы / Вывод объявлений на расстоянии от населенного пункта 4
16 февраля 2018, 19:04 0 Сейчас как раз разбираюсь, как будет что-то — поделюсь :) Вопросы / Вывод объявлений на расстоянии от населенного пункта 4
18 января 2018, 22:53 0 Решение проблемы оказалось элементарным, зачем использовать процессоры minishop`a, если продукт — расширенный ресурс и можно сохранять стандартным процессором?.. ... $response = $this->modx->runProcessor('resource/update', $fields); ... Вопросы / использование процессоров minishop2 во внешнем файле 15
18 января 2018, 21:22 0 А вот и нет, нет ошибки. При чём, такая ситуация возникает только после вызова getObject. Если его не вызывать никаких ошибок нет (просто руками данные ввести). Если ввести все руками и запустить getObject — все, все плохо, все перепробовал уже… Кстати, вот на modX forum похожая ситуация, но вроде у парня завелось (там про штатный процессор создания): forums.modx.com/thread/99959/runprocessor-frustration. Пример Не работает: if (!empty($data['pid'])) { $fields['id'] = (int)$data['pid']; if ($ad = $this->modx->getObject('msProduct', array('class_key' => 'msProduct', 'id' => $fields['id']))) { $fields['context_key'] = $data['context_key']; $fields['alias'] = $data['alias']; $response = $this->modx->runProcessor('mgr/product/update', $fields, array('processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/')); } else { return $this->error($this->modx->lexicon('ticket_err_id', array('id' => $fields['id']))); } } else { $response = $this->modx->runProcessor('mgr/product/create', $fields, array('processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/')); }Работает: if (!empty($data['pid'])) { $fields['id'] = (int)$data['pid']; $fields['context_key'] = $data['context_key']; $fields['alias'] = $data['alias']; $response = $this->modx->runProcessor('mgr/product/update', $fields, array('processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/')); } else { $response = $this->modx->runProcessor('mgr/product/create', $fields, array('processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/')); } Вопросы / использование процессоров minishop2 во внешнем файле 15
10 января 2018, 19:37 0 Тут дело в загрузчике curl.js (который в ms2form используется для загрузки других библиотек). Желательно его грузить последним, иначе может вылететь ошибка из-за загрузки других AMD-модулей раньше него. Чаще всего AdminPanel грузится после, тем самым выбивает curl. Попробуйте деактивировать плагин AdminPanel. Новые дополнения и их версии / [ms2form] Новые возможности для редактирования 58
24 августа 2017, 19:54 0 Из-за особенностей процессора, нулевая опция (из-за скрытого инпута) ломает логику. Можно легко полечить, например, этим: unset($options['0']); $modx->event->returnedValues['options'] = $options;, в плагине, на событие msopOnBeforeGetModification. Пошаговые инструкции / msOptionsPrice2 и составной товар 43
22 августа 2017, 16:31 0 А если не указывать в форме скрытый инпут options (с любыми вариациями определения, масивом и нет), то и с id=«msProduct» все работает. Пошаговые инструкции / msOptionsPrice2 и составной товар 43
22 августа 2017, 16:07 0 При выборе картинки, к которой не привязана ни одна модификация, также выставляется первая в списке опция. Пошаговые инструкции / msOptionsPrice2 и составной товар 43
22 августа 2017, 14:31 0 А вы с галереей подружили опции? Пошаговые инструкции / msOptionsPrice2 и составной товар 43
22 августа 2017, 14:31 0 Володя, еще вопрос, думаю, не только для меня актуален. На странице товара (не в списке), при штатном использовании компонента (без составного товара), если у контейнера выставлен id=«msProduct», то взаимосвязь чекбоксов и картинок теряется, а если айди убрать, то связь восстанавливается, но всегда выставляется чекнутым первый чекбокс. Пробовал и по-разному, с выставлением массивов опций, может, подскажете, как восстановить взимосвязь галереи и опций, чтобы первый чекбокс не проставлялся. Думаю, вам, как разработчику будет проще дать ответ, нежели мне снова перебирать компонент. Или, такой глюк только у меня? Пошаговые инструкции / msOptionsPrice2 и составной товар 43
20 августа 2017, 16:37 +1 Еще, если кому-то нужно, чтобы все это работало еще и в списке товаров и выставлялись чекбоксы с mSearch2, нужно поправить default.js у msOptionsPrice2 (/assets/components/msoptionsprice/js/web/default.js), строки 722-731: с if (rid) { inputs = $(msOptionsPrice.Product.cost + msOptionsPrice.Product.prefix + rid) .closest(msOptionsPrice.Product.form) .find('[name="' + name + '"]'); } else { inputs = $(msOptionsPrice.Product.cost) .closest(msOptionsPrice.Product.form) .find('[name="' + name + '"]'); }на if (rid) { inputs = $(msOptionsPrice.Product.cost + msOptionsPrice.Product.prefix + rid) .closest(msOptionsPrice.Product.form) .find('[name*="' + name + '"]'); } else { inputs = $(msOptionsPrice.Product.cost) .closest(msOptionsPrice.Product.form) .find('[name*="' + name + '"]'); }, то есть, добавить к селектору name звездочку — *. Пошаговые инструкции / msOptionsPrice2 и составной товар 43
20 августа 2017, 14:16 0 Со свежей головой разобрался. Если кто-то еще будет ломать голову, то: 1. Чекбоксы указываются таки с параметром name="options[{$name}][]", тогда в массиве опций передается массив зачений. 2. У формы нужно указать (определить) скрытый <input type="hidden" name="options[]" value="[]"> или <input type="hidden" name="options[]" value="">, из-за этого, по сути, ничего и не выходило, проморгал. Пошаговые инструкции / msOptionsPrice2 и составной товар 43
19 августа 2017, 22:52 0 А в личку, для личного анализа? Если нет — пойму. Пошаговые инструкции / msOptionsPrice2 и составной товар 43
19 августа 2017, 22:42 0 А пример работающего сайта есть? Пошаговые инструкции / msOptionsPrice2 и составной товар 43
19 августа 2017, 22:35 0 Ок, еще поковыряюсь, коль начал, если не разберусь — отпишу. Пошаговые инструкции / msOptionsPrice2 и составной товар 43
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска соб...
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены ...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
FileMan - прикрепление файлов к ресурсам для MODX 3 Добрый день! Может что-то с правами доступа к файлам? Посмотрите логи в modx, в php. С ходу сложно ответить, ранее не было таких случаев.
Думаю, так как на Модхосте таблицы со сравнением по умолчанию utf8mb4 а не utf8, не хватает длины индекса для поля Varchar(255). Вроде, по умолчанию, во всяком случае для utf8mb4, считается 4 байта на символ, MyISAM ограничивает до 1000 байт, а InnoDB итого меньше (765 кажется). Получаем 255*4 = 1020, плюс resource_id… В общем, может, tv_id => INT, или, хотя бы VARCHAR(240)?
Пример
Не работает:
Работает:
, в плагине, на событие msopOnBeforeGetModification.
с
на
, то есть, добавить к селектору name звездочку — *.
1. Чекбоксы указываются таки с параметром , тогда в массиве опций передается массив зачений.
2. У формы нужно указать (определить) скрытый , из-за этого, по сути, ничего и не выходило, проморгал.