Александр Мельник

Александр Мельник

Был в сети 15 февраля 2026, 18:37
Заказы не принимаю
При чем здесь компонент?
Автор этого вопроса говорил просто о возможности работать с чанками, шаблонами и сниппетами как с статичными файлами и эта возможность заложена в сам modx без всяких компонентов.
Ресурсы, чанки, шаблоны, сниппеты мв MODX можно сделать статичными, и использовать для контроля версий git.
могу быть не прав, но в вашем случае это не поможет. Статичный ресурс все равно делает запись в базе данных, и даже если ваш напарник каким-то образом получит файл, то без синхронизации базы данных ничего не будет работать.
Посмотрите на компонент… ну это и не совсем компонент, в общем на gitmodx хотя и он не решает всех вопросов.
Может я чего-то не знаю о MODX, но мне лично очень не хватает в нем миграций для базы данных, как это сделано в yii2
Иван, огромная просьба, если это возможно.
Сделайте пожалуйста выделение активного пункта меню слева — более очевидным.
На старом сайте это была одна из самых для меня ужасных вещей, там активный пункт выделялся легким курсивом и я совершенно терялся, где я нахожусь. Сейчас сделали выделение цветом и это уже более приятно, но все равно глаз должен долго проходиться по всем пунктам, пока не увидит не черный а синий цвет.
Может задать background-color ибо для меня легкая ориентация на проекте, а особенно если это документация, намного даже важнее чем язык, на котором написана документация.
Я даже помню, что пытался на старом сайте применить свои стили, но к сожалению обнаружил, что современные браузеры не дают такой возможности.
Спасибо.
К сожалению, раздел Вопрос не гарантирует что будет получен ответ.
Да и вынужден признать, что активность ответов сильно упала за последние два года.
Сложно судить о причинах этого.

Конкретно по вашему случаю — не понятно. Раз вы видите сообщение,(только это не от ajaxForm) это от minishop овского JS то значит обращение к коннектору произошло успешно и данные изменены. По идее только после этого выдается уведомление. Почему после обновления страницы все слетает, не ясно.
Вы используете стандартные чанки в корзине?
Мой совет — пробуйте пошагово дебажить и смотреть что вообще происходит. Смотрите ошибки в консоле браузера.
Иногда довольно не тривиально отловить ошибку.
Я например постоянно попадаюсь на вот такой фишке. Я проживаю в Украине и у нас заблокирован доступ к яндекс. Большинство проектов так или иначе использует сервисы яндекса и у меня получается беда. Открытие любой страницы сайта происходит минимум 30 секунд, пока сервер пытается связаться с серверами яндекса, у него не получается, он 30 секунд пытается… и только после этого полноценно загружается страница. Чтобы избежать этого включаю VPN и проблема уходит. Но тут настает неожиданность — при работе через VPN просто не срабатывает все функции minishop. Товар не добавляется в корзину, ничего не меняется. Ты в панике ищешь в чем же дело, потом отключаешь VPN и все сразу заработало… Так что нюансов море. Или еще пример, недавно на одном проекте резко упали продажи. Пришлось просматривать вебвизор и видеть, что у многих покупателей просто происходит сбой при оформлении в корзине, перестают работать кнопки. Делаем кучу тестовых заказов, все ок, а у покупателей все крашится. Пока не вычислили, что всех этих покупателей объединяло одно — они не заполняли вручную каждое поле в корзине, а их браузеры типа предоставляют возможность хранить данные о себе и одним махом заполнять. И оказалось что именно в этот момент js скрипты minishop сходят с ума, выдают ошибку и дальнейшая работа js прерывается. Я такими «приблудами» как автозаполнение не пользуюсь, поэтому вычислить этот глюк было очень сложно.
Не совсем понимаю.
Что в вашем понимании — словарь. В моем — это скажем толковый словарь. Где есть слова и есть описание его значения.
Вы хотите сделать словарь медицинских терминов?
Чтобы рускоговорящий человек зашел на русскую версию сайта, ввел слово — проктолог и нашел его значение?
А казах зашел на казахскую версию, ввел это слово на казахском и нашел значение на казахском?
Не понимаю.
Вы создаете на JS запрос к скрипту на php
Передаете в php какие-то параметры, которые будут доступны либо в $_GET либо в $_POST в зависимости от выбранного метода ajax запроса.
в нём пачка запросов к другому сайту
В чем — в нем? в php скрипте? Что значит запросов к другому сайту? Через curl?
браузер обрезает по таймауту (1 минута).
браузер не может ничего обрезать. Сервер имеет время на выполнение скрипта и если за это время не получен ответ, то выдается ошибка 50*
Если ваш php скрипт не успевает на сервере обработать информацию за 60 секунд, настраивайте файл php.ini и в нем задавайте большее время для работы скрипта.
Что в вашем понимании — рацион и почему он выводится через сниппет migx?
Если под рационом понимать его прямое значение — набор блюд, то наверное это должны быть разные товары? Но никак не Migx записи.
Но что бы это не значило.
Создаете php файл. В нем подключаете index.php из корня modx. В дальнейшем через объект приложения $modx делаете выборку нужных вам… хм… не знаю чего — рационов. Производите над ними изменения, через сеттеры и геттеры и сохраняете.
Файл запускаете по крону.
Установил глобально для всего сайта источником файлов по умолчанию MS2 Images
Тоесть у меня default_media_source = 2 (MS2 Images)
ms2_product_source_default = 2 (MS2 Images)
а при создании нового товара у него в галерее источник файлов — Filesystem
ерунда какая-то.
Даже принудительно в своем плагине назначаю источник файлов, который нужен и все равно вкладка галерея открывается с источником файлов Filesystem
на OnDocFormSave
if ($modx->event->name == 'OnDocFormSave' && $mode == modSystemEvent::MODE_NEW) {
    if ($resource->get('template') == 8) {
        $resource->set('source', 2);
    }
}
Честно скажу, я еще совершенно трезвый, но читаю Ваш вопрос и не могу понять НИЧЕГО. Как будто не на русском.
Что за присвоение порядкового номера? Где вы вообще выводите этот код?
Почему ваш шаблон его дублирует? Значит у вас там какой-то цикл, который перебирает массив доставок. Воспользуйтесь итерациями цикла или заведите переменную равную 0 и увеличиваете ее на каждой итерации.
Или воспользуйтесь javascript и после прогрузки DOM выберите все нужные вам инпуты по какому-то классу, создайте цикл js и заполните все атрибуты data-page=" "