07 мая 2024, 12:32 Я тоже пересмотрел, не до конца понял профит (сокращение кол-ва подписей к объектам?). Зато увидел усложнение, в виде накрутки над классом фасада, который еще сильнее усложнит жизнь). А может у меня проекты такие, где это не нужно, не знаю) Для разработчиков / Facade Laravel в Modx 2/3 23 +2
06 мая 2024, 09:00 За поддержку php 7.4 все ж спасибо! Как я писал в комментарии к прошлой заметке, я запустил mmxDatabase в связке с сайтом на modx 2.8.5, что оказалось очень удобно для одной из текущих задач (а именно выгрузка всего контента сайта в формате json для переноса данных на другую платформу). с mmxDatabase это решается очень быстро! Новые дополнения и их версии / mmxDatabase 1.2.0 4 +1
03 мая 2024, 13:57 Кстати, если кому интересно, mmxDatabase вроде как можно запустить и на MODX 2.x. Сначала в консоли делаем так: composer require mmx/databaseвыполнять команду install не стоит, всё равно ж не получится. а затем уже в php вот так: require_once dirname(__FILE__) . '/vendor/autoload.php'; class_alias(\modX::class, 'MODX\\Revolution\\modX'); $mmxDatabase = new MMX\Database\App($modx);и можно работать: $resource = \MMX\Database\Models\Resource::find(1); print_r($resource->toArray()); Новые дополнения и их версии / Новый тип дополнений: mmxDatabase и mmxForms 41 +2
03 мая 2024, 12:23 Слишком общий вопрос, нет волшебных решений. Что значит у нас много опций, 20 штук? Как вы по ним хотите похожие товары искать? Вот я к примеру делал так: мне в разделе «Стабилизатор напряжения» в карточке товара нужно вывести 12 похожих товаров, критерии такие: 1. Соответствуют количеству фаз 2. Близкая мощность, плюс минус 20% 3. Близкая цена, плюс минус 30% Когда я определился с критериями — я написал соответствующий запрос и получил выборку. Для другой категории будет другая выборка, правда же? Ведь спортивные кроссовки по этим критериям уже не подобрать? Там Похожесть это, например, цвет, наличие или отсутствие шнурков. Вопросы / Как вывести похожие товары по списку опций? 13 0
19 апреля 2024, 11:49 Самое лучшее решение в данной ситуации — это сделать отдельный файл для работы с этим API, например: /assets/components/mycomponent/api.phpну или просто попроще /api.phpвнутри этого файла инициализируем MODX в API режиме, читаем, например: modx.pro/development/3163 А далее просто получаем данные, как нам нужно и выводим в json: $query = $modx->newQuery('modResource'); $query->where([ 'parent' => 2, ]); $resources = $modx->getIterator('modResource', $query); $data = []; foreach($resources as $resource) { $data[] = [ 'pagetitle' => $resource->get('pagetitle'); ]; } header("Content-Type: application/json"); echo json_encode($data); exit();да, если нужны TV поля, то запрос будет сложнее. Но эта информация тоже есть на форуме. Если уж совсем лень писать запрос — то можно внутри скрипта вызвать сниппет pdoresources: $data = $modx->runSnippet('pdoResources', [ПАРАМЕТРЫ]); Вопросы / [JSON] Как вывести страницу в формате JSON? 2 0 1
18 апреля 2024, 11:28 $_modx->resource['tv-name']Или в чанках где-то внутри pdoResources $_pls['tv-name']но лучше избегать дефис в названиях TV. Дефис нельзя использовать в названиях переменных в php, из-за этого возникают трудности в Fenom. Замените на подчеркивание. Вопросы / Получение tv поля ресурса 5 0
17 апреля 2024, 18:35 Я всегда делаю так: В корневой директории сайта /home/user/data/www/modx.test.ru/создаю папкуgo Extras/Scheduler/и уже в нее кидаю содержимое репозитория. Этот подход предлагает modExtra (см. readme) github.com/modx-pro/modExtra Конечно и другие подходы есть к разработке, но я предпочитаю этот) Готовые решения / Эксперимент с Modx Extra + Docker 13 +1
17 апреля 2024, 16:35 Когда идет разработка, то обычно исходники пакета лежат примерно по такому пути: /Extras/ModxExtraName/поэтому не совсем понимаю, зачем еще 1 уровень вложенности добавлять. Готовые решения / Эксперимент с Modx Extra + Docker 13 0
16 апреля 2024, 14:37 Перенесу и свой ответ тогда уж!: пару месяцев назад я переписал это всё… сейчас по другому, в github код доступен. Можно даже PR сделать!Интересная мысль насчет целесообразности создания сессий для ботов… в принципе может они и не нужны… как вариант можно добавить соответствующую настройку в компонент. В общем мысль сохранил. Новые дополнения и их версии / Еще немного про сессии MODX, компонент smartSessions 76 +1
16 апреля 2024, 10:00 так если про smartSessions вопрос — то я пару месяцев назад переписал это всё… сейчас по другому, в github код доступен. Можно даже PR сделать! и да, если еще вопросы будут — давай переедем в соседнюю тему, чтобы Володю не дергать) Новые дополнения и их версии / [ExtSession] - Расширение стандартных сессий для MODX3 16 0
15 апреля 2024, 16:20 Да, в свои js скрипты добавить данный код, внутри функции разместить код от яндекс.метрики. Ну а для отслеживания конкретной формы нужно выяснить, к примеру, её id, который должен присутствовать где-то в response. Я предпочитаю к форме добавлять data атрибут, наподобие: <form data-goal="feedback"> Новые дополнения и их версии / [FetchIt] - Полноценная замена AjaxForm без зависимостей 60 0
15 апреля 2024, 15:34 Пожалуй отвечу: добавить обработчик на событие «fetchit:success» docs.modx.pro/components/fetchit/frontend/events document.addEventListener('fetchit:success', (e) => { const { response } = e.detail; // Посмотреть данные response // console.log(response); }) Новые дополнения и их версии / [FetchIt] - Полноценная замена AjaxForm без зависимостей 60 +1
14 апреля 2024, 00:04 Как бы я поступил: создал компонент (на базе modExtra), чтобы быстро, где будет по сути 1 объект Услуга (header, alias, description, seo_title/seo_description, а также полем parent_id для вложенности). Свой интерфейс для управления ими будет поудобнее, чем MIGX. Чуть подумать, чтобы интерфейс выглядел симпатично и понятно (больше всего вопросов по отображению услуга/подуслуга). Да, можно конечно поставить fastRoute или VirtualPages, но т.к. уровень вложенности не большой, то в целом все решается не самым сложным плагином на OnPageNotFound. Чуть сложнее, если нужно ряд услуг скрыть для определенных моделей авто… Кстати, VirtualPages у меня трудится на одном проекте уже много лет стабильно:) Вопросы / Подскажите как лучше реализовать структуру сайта 2 +2
07 апреля 2024, 19:27 Ну… попробую описать) у меня в проекте очень длинный код и он делает не много не то, что вам нужно, поэтому всю портянку сюда не вставить. 0. на фронте добавляем поле для выбора ширины или ввода его вручную 1. Создадим плагин на событие msopOnAfterGetCost if ($modx->event->name == 'msopOnAfterGetCost') { $isGetModificationAction = (isset($_REQUEST['action']) && $_REQUEST['action'] == "modification/get"); $isCartAddAction = (isset($_REQUEST['ms2_action']) && $_REQUEST['ms2_action'] == "cart/add"); // Обрабатываем только ajax запросы, в которых компонент msOptionsPrice2 отдает цену // Есть альтарнативный способ: проверять $_REQUEST['ms2_action'] !== cart/add if($isGetModificationAction || $isCartAddAction) { // здесь наш основной код // доступна переменная $modification // если пользователь выбрал определенную модификацию и у нее есть цена, то берем данные из нее if($modification['id']) { } else { // нет модификации, соответствующей переданным параметрам... // нужно высчитать цену, исходя из ширины вашего товара // ... // а вот тут мы вернем цену $modx->event->returnedValues['cost'] = ???; } } }2. Вопросы / msoptionsprice2 - модификация в зависимости от диапазона значений опции 1 0
04 апреля 2024, 17:05 Временный фикс: Cниппет ms_CDEK2 1. Одну строку комментируем, новую добавляем: //$modx->regClientScript('https://www.cdek.ru/website/edostavka/template/js/widjet.js'); $modx->regClientScript('https://cdn.jsdelivr.net/gh/cdek-it/widget@2.5.5/widget/widjet.js');2. Еще одну строку ниже комментируем, а новую добавляем: //path: "https://www.cdek.ru/website/edostavka/template/scripts/", path: "https://cdn.jsdelivr.net/gh/cdek-it/widget@2.5.5/widget/scripts/", Вопросы / [ms_CDEK2] Вывод информации в виджете на других языках 25 +4 1
03 апреля 2024, 23:39 Нужно отлаживать… добавьте debugger перед этим if, и нужно посмотреть что приходит в responseData? Есть там row? Есть в этом row id? Может различия в версиях miniShop2… Готовые решения / ecommerce.js - Электронная коммерция (Яндекс.Метрика и Google Analytics) для сайтов на базе MODX + miniShop2 12 0
27 марта 2024, 17:51 например, не так давно я работал с каким-то сайтом на хостинге, и хоть сайт был под php 7.4, но если я просто в консоли (из под ssh, или через веб-интерфейс хостинга) вызывал этот самый php, то запускался php 5.3. Готовые решения / Транспортный пакет для Composer дополнений 30 0
27 марта 2024, 17:33 Есть ли какие-то ограничения со стороны хостинга для запуска composer из php? Я к тому, что пакет это делает… но не будет ли на некоторых хостингах это запрещено? Готовые решения / Транспортный пакет для Composer дополнений 30 +1
21 марта 2024, 11:07 Привет! Молодец, как всегда) mmxDatabase понравился! Прям чешутся руки применить и попробовать, осталось найти где. По нему небольшой вопрос, сторонние модели возможно добавлять в список поддерживаемых разработчику? Например для miniShop3 (когда-то в будущем)? И вопрос по mmxForms, верно понял, что использование компонента на фронте выливается примерно в 1,5 мб дополнительного css и js? Много, конечно, если речь про формы типа «Перезвоните мне» Новые дополнения и их версии / Новый тип дополнений: mmxDatabase и mmxForms 41 +2
21 марта 2024, 10:54 до сих пор придерживаются транспортных пакетов?Устоявшаяся экосистема, привычные механизмы, куча реализованных пакетов (а переписать все это нужно много времени)? Типа работает — не трогай)) Новые дополнения и их версии / Новый тип дополнений: mmxDatabase и mmxForms 41 0
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
Зато увидел усложнение, в виде накрутки над классом фасада, который еще сильнее усложнит жизнь).
А может у меня проекты такие, где это не нужно, не знаю)
Сначала в консоли делаем так:
выполнять команду install не стоит, всё равно ж не получится.
а затем уже в php вот так:
и можно работать:
Что значит у нас много опций, 20 штук? Как вы по ним хотите похожие товары искать?
Вот я к примеру делал так: мне в разделе «Стабилизатор напряжения» в карточке товара нужно вывести 12 похожих товаров, критерии такие:
1. Соответствуют количеству фаз
2. Близкая мощность, плюс минус 20%
3. Близкая цена, плюс минус 30%
Когда я определился с критериями — я написал соответствующий запрос и получил выборку. Для другой категории будет другая выборка, правда же? Ведь спортивные кроссовки по этим критериям уже не подобрать? Там Похожесть это, например, цвет, наличие или отсутствие шнурков.
ну или просто попроще
внутри этого файла инициализируем MODX в API режиме, читаем, например:
modx.pro/development/3163
А далее просто получаем данные, как нам нужно и выводим в json:
да, если нужны TV поля, то запрос будет сложнее. Но эта информация тоже есть на форуме.
Если уж совсем лень писать запрос — то можно внутри скрипта вызвать сниппет pdoresources:
но лучше избегать дефис в названиях TV. Дефис нельзя использовать в названиях переменных в php, из-за этого возникают трудности в Fenom. Замените на подчеркивание.
В корневой директории сайта
создаю папкуgo
и уже в нее кидаю содержимое репозитория.
Этот подход предлагает modExtra (см. readme) github.com/modx-pro/modExtra
Конечно и другие подходы есть к разработке, но я предпочитаю этот)
поэтому не совсем понимаю, зачем еще 1 уровень вложенности добавлять.
Интересная мысль насчет целесообразности создания сессий для ботов… в принципе может они и не нужны… как вариант можно добавить соответствующую настройку в компонент. В общем мысль сохранил.
добавить обработчик на событие «fetchit:success»
docs.modx.pro/components/fetchit/frontend/events
создал компонент (на базе modExtra), чтобы быстро, где будет по сути 1 объект Услуга (header, alias, description, seo_title/seo_description, а также полем parent_id для вложенности).
Свой интерфейс для управления ими будет поудобнее, чем MIGX. Чуть подумать, чтобы интерфейс выглядел симпатично и понятно (больше всего вопросов по отображению услуга/подуслуга).
Да, можно конечно поставить fastRoute или VirtualPages, но т.к. уровень вложенности не большой, то в целом все решается не самым сложным плагином на OnPageNotFound.
Чуть сложнее, если нужно ряд услуг скрыть для определенных моделей авто…
Кстати, VirtualPages у меня трудится на одном проекте уже много лет стабильно:)
0. на фронте добавляем поле для выбора ширины или ввода его вручную
1. Создадим плагин на событие msopOnAfterGetCost
2.
Cниппет ms_CDEK2
1. Одну строку комментируем, новую добавляем:
2. Еще одну строку ниже комментируем, а новую добавляем:
Я к тому, что пакет это делает… но не будет ли на некоторых хостингах это запрещено?
mmxDatabase понравился! Прям чешутся руки применить и попробовать, осталось найти где. По нему небольшой вопрос, сторонние модели возможно добавлять в список поддерживаемых разработчику? Например для miniShop3 (когда-то в будущем)?
И вопрос по mmxForms, верно понял, что использование компонента на фронте выливается примерно в 1,5 мб дополнительного css и js? Много, конечно, если речь про формы типа «Перезвоните мне»