30 июня 2020, 10:39 А не проще ли переопределить гриды и возможно потребуется переопределить процессор getlist, что бы сразу получать нужные заказы и не мешать работе фильтров? А фильтрацию по контексту в таком случае просто скрыть. Вопросы / minishop2 заказы из разных контекстов 4 0
29 июня 2020, 15:10 Хорошая идея и статья. Я как-то начинал писать подобное с Eloquent, но без Slim и Phinx. Но что-то забросил… Поддержу Алексея по поводу JWT и тестов. А с чем связан вынос роутов в index.php? Ведь их может быть много и тогда точка входа разрастется… Может их стоит вынести, например, в отдельный сервис? Я не знаю Slim и возможно там это уже реализовано… Ну или в отдельный файлик? Пошаговые инструкции / Знакомимся с Vesp Core 31 +1
29 июня 2020, 14:06 Судя по вашему ответу выше и минишоп копать не нужно. Просто создаете модификацию, указываете нужный вес, а в свойствах указывайте размер упаковки. Единственное условие при создании модификации, с которым могут возникнуть проблемы, так это то, что размер упаковки должен быть разным под каждый вес. Вопросы / msOptionsPrice2 - вес, влияющий на цену и на размер 4 0
29 июня 2020, 13:48 Ну что бы было без перезагрузки — это AJAX. Можно сделать по примеру minishop2. Определяете в форме действие, например через Отправку формы можно повесить на клик по месяцу или изменении года. Создаете /assets/components/arhiv/action.php в котором проверяете является ли это AJAX запросом, присутствует ли action и если эти условия верны, то подключаете точку входа (/index.php). Далее создаете плагин и вешаете его на событие onHandleRequest. В нем на основании экшена вызывать нужный процессор или метод класса. Или можно в action.php вместо точки входа подкючать свой класс и дергать нужный метод или дергать свой самописный процессор. Только не забываем в action.php написать подключение по API. Метод класса или процессор должен получать данные формы и на основании этого составлять условие выборки и получать данные. Я бы для этого использовал pdoFetch. В любом случае придется нормально так разобраться с принципами работы modX. Вопросы / Вывод ресурсов по выбранному месяцу публикации 2 0
29 июня 2020, 10:18 Не совсем понятно, что у вас не получается. Если вывести вес товара, который указывается в настройке модификации, то в чем проблема? Открываем код дефолтного чанка и смотрим как вывести вес ($weight). Если у вас товар может быть доступен с разным весом, то нужно видоизменить поле вес (в доках минишопа, есть пример) ну и потом создавать соответствующие мдификации. Вопросы / msOptionsPrice2 - вес, влияющий на цену и на размер 4 0
28 июня 2020, 18:56 Для mFilter можно написать кастомные фильтры. Если не ошибаюсь, то даже в доках есть пример кастомного фильтра. Сложного особо ничего в нем нет. Вот дока Вопросы / mFilter2 фильтр по полям пользователя 1 +1
27 июня 2020, 17:59 Должно отработать так: $values = & $modx->event->returnedValues; $values['price'] = ($price * $modif / 100) + $price;Вот описание Вопросы / Minishop2 и CityFields - коэффициент переоценки для всего города 7 +1
27 июня 2020, 14:02 Вообще, насколько я понимаю, то $modx->event->returnedValues используется только для вывода, а для того, а цена будет в переменной $price на основании данного кода: $params = array( 'product' => $this, 'data' => $data, 'price' => $price, ); $response = $miniShop2->invokeEvent('msOnGetProductPrice', $params);Поэтому вот эту строчку $values['price'] += $values['price']*$modif / 100; нужно переписать на $values['price'] = $price * $modif / 100; Вопросы / Minishop2 и CityFields - коэффициент переоценки для всего города 7 +1
27 июня 2020, 12:50 Вопрос первый: Вы само событие включили (поставить галочку в поле Включен на вкладке Системные события) Вопрос второй: Удалось получить результат работы этой строки: echo $values['price'];. Для отладки нужно использовать: $modx->log(modX::LOG_LEVEL_ERROR, print_r($value['price'], 1)). Результат будет в журнале ошибок. И теперь, если событие включено и уже зная как дебажить, то можем приступать к дебагу. В коде есть 3 условия из-за которых результат может быть не удовлетворительным, соответственно и проверяем эти условия. Вопросы / Minishop2 и CityFields - коэффициент переоценки для всего города 7 +1
27 июня 2020, 12:40 Нужно понимать, что сами компоненты ClientConfig и VersionX не имеют никакого отношения к импорту товаров. Поэтому предполагаю, что в самом csv файле присутствует символ [. Попробуйте взять из файла несколько корректных товаров, с ними создать новый csv и подгрузить. Если все пройдет успешно, то ищите проблему в самом файле импорта. Вопросы / Проблемы с импортом товаров 1 0
27 июня 2020, 12:35 Может слеши воспринимаются как спецсимволы? Попробуйте заменить их на дефисы или поставить пробелы перед и после слешей. Вопросы / Вывод даты публикации через pdoResources 6 0
27 июня 2020, 12:20 У меня в профиле есть скайп. Напишите, созвонимся и протестируем. Вопросы / miniShop2. Покупка без авторизации (anonymous) 11 0
26 июня 2020, 18:36 Если вы пытаетесь установить атрибут value тегу input с типом файл, то это не допустимо по соображениям безопасности. А при логике описанной в комментариях выше, вам просто нужно сформировать корректные данные и отправить их на сервер и уже там их ловить и отправлять ручками с атачами либо формитом (только я хз как для формита сформировать данные с файлом или файломи). Вопросы / Drag and Drop для FormIt и AjaxForm 17 0
26 июня 2020, 17:57 Сделал 2 заказа с одного браузера указав разные почты. Письма пришли корректно. Посмотрите в админке должны быть 2 новых пользователя. Так же протестил на других сайтах и тоже подобного нет. Вопросы / miniShop2. Покупка без авторизации (anonymous) 11 0
25 июня 2020, 23:03 Насколько я понимаю вам нужен сниппет с таким вызовом: [[!mySnyppet?&tvname=`pole`&tvvalue=`[[*pole]]`Сам же сниппет должен делать следующее: 1) Получать TV по полю name из таблицы modx_site_tmplvars 2) Получать у данной TV и парсить данные из поля elements. Хранятся они там так: Красный==1||Синий==2 3) Находим нужное и возвращаем. А теперь кодом (просто наброски для наглядности. Не является готовым решением): // Получаем TV $tv = $modx->getObject('modTemplateVar', array('name' => $tvname)); if (empty($tv)) {return;} // Получаем данные $el = $tv->get('elements'); if (empty($el)) {return;} $elements = explode('||', $el); $output = ''; foreach ($elements as $elenemt) { // Перед использованием list ознакомьтесь с документацией list($label, $value) = explode('==', $element); if ($value == $tvvalue) { $output = $label; break; } } return $output; Вопросы / Вывод значения из tv поля переключатели (radio) 6 +1
25 июня 2020, 22:32 Ну тогда так: 1) Удаляем ручками все из /core/cache/ (саму папку cache оставляем) и проверяем 2) Проверяем корректность записей в лексиконах. 3) Если первые два пункта не дали результатов, то смотрим может где-то в плагинах подгружают буржуйские словарики, например на событии msOnBeforeChangeOrderStatus 4) Если и в плагинах нет ничего такого, то смотрим исходники минишопа, может там переписали (всякое бывает). Вопросы / miniShop2 письма на английском 8 0
25 июня 2020, 21:49 Ну тогда глупый вопрос, а в чанках на каком языке написано? Вопросы / miniShop2 письма на английском 8 0
25 июня 2020, 21:47 Не знаю есть ли готовое что-то или нет, но в таких случаях я предпочитаю реализовывать самостоятельно и закладывать только нужный функционал. Есть 2 варианта самостоятельного решения: Воспользоваться modExtra Написать ручками без использования заготовки. Примеры можно подсматривать в различных компонентах и исходниках MODx.Раньше я бы выбрал второй вариант, только потому, что он заставляет вникать в каждый этап и дает более глубокое понимание принципов работы. Вопросы / Подскажите плагин чтобы юзер мог к себе в профиль писать данные каждый день 3 +1
25 июня 2020, 21:37 А как офис решит проблему с сохранением каждодневных данных? Их же не обновлять нужно а добавлять новые, насколько я понял. Вопросы / Подскажите плагин чтобы юзер мог к себе в профиль писать данные каждый день 3 0
25 июня 2020, 21:33 Проверьте настройки: cultureKey locale Вопросы / miniShop2 письма на английском 8 0
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
Поддержу Алексея по поводу JWT и тестов.
А с чем связан вынос роутов в index.php? Ведь их может быть много и тогда точка входа разрастется… Может их стоит вынести, например, в отдельный сервис? Я не знаю Slim и возможно там это уже реализовано… Ну или в отдельный файлик?
Создаете /assets/components/arhiv/action.php в котором проверяете является ли это AJAX запросом, присутствует ли action и если эти условия верны, то подключаете точку входа (/index.php). Далее создаете плагин и вешаете его на событие onHandleRequest. В нем на основании экшена вызывать нужный процессор или метод класса.
Или можно в action.php вместо точки входа подкючать свой класс и дергать нужный метод или дергать свой самописный процессор. Только не забываем в action.php написать подключение по API.
Метод класса или процессор должен получать данные формы и на основании этого составлять условие выборки и получать данные. Я бы для этого использовал pdoFetch.
В любом случае придется нормально так разобраться с принципами работы modX.
Если у вас товар может быть доступен с разным весом, то нужно видоизменить поле вес (в доках минишопа, есть пример) ну и потом создавать соответствующие мдификации.
Вот описание
Поэтому вот эту строчку нужно переписать на
Вопрос второй: Удалось получить результат работы этой строки: . Для отладки нужно использовать: . Результат будет в журнале ошибок.
И теперь, если событие включено и уже зная как дебажить, то можем приступать к дебагу.
В коде есть 3 условия из-за которых результат может быть не удовлетворительным, соответственно и проверяем эти условия.
Сам же сниппет должен делать следующее:
1) Получать TV по полю name из таблицы modx_site_tmplvars
2) Получать у данной TV и парсить данные из поля elements. Хранятся они там так: Красный==1||Синий==2
3) Находим нужное и возвращаем.
А теперь кодом (просто наброски для наглядности. Не является готовым решением):
1) Удаляем ручками все из /core/cache/ (саму папку cache оставляем) и проверяем
2) Проверяем корректность записей в лексиконах.
3) Если первые два пункта не дали результатов, то смотрим может где-то в плагинах подгружают буржуйские словарики, например на событии msOnBeforeChangeOrderStatus
4) Если и в плагинах нет ничего такого, то смотрим исходники минишопа, может там переписали (всякое бывает).
Есть 2 варианта самостоятельного решения:
- Воспользоваться modExtra
- Написать ручками без использования заготовки. Примеры можно подсматривать в различных компонентах и исходниках MODx.
Раньше я бы выбрал второй вариант, только потому, что он заставляет вникать в каждый этап и дает более глубокое понимание принципов работы.cultureKey
locale