Всего 125 000 комментариев

Дмитрий
2 часа назад
0
ух! даже звучит сложно… =)
А можно ссылкой в меня кинуть на то как вообще загружать изображения?
Дмитрий
2 часа назад
0
посмотрел более внимательно, не совсем мне подходит сие дополнение… а жаль… прям теплилась надежда.
maxgmm
3 часа назад
0
Максим ты решил данную проблему?
Артур Шевченко
8 часов назад
0
Если ты просто скачал компонент из репозитория и не запускал composer install — запусти.
Дмитрий
Вчера в 13:58
0
Добрый день! Не отображается вкладка Опции товара, ошибка:
[2025-09-03 13:36:35] (ERROR @ /home/core/components/minishop3/src/Controllers/Config/Product/DataTab.php : 96) PHP warning: Undefined array key "allowBlank"
[2025-09-03 13:36:35] (ERROR @ /home/core/components/minishop3/src/Controllers/Config/Product/DataTab.php : 93) PHP warning: Undefined array key "value"
Может кто-то сталкивался с такой проблемой?
Артур Шевченко
02 сентября 2025, 16:53
0
Раз к каждому заказу новая фотка, то плагин со своей отправкой. Ну и нужно как-то связать заказ и фото. Тут или сохранять в БД или имя файла задавать равным id заказа
vrm13
02 сентября 2025, 10:56
0
В какой таблице, в заказах? нет, в коробке такого нет
Дмитрий
02 сентября 2025, 10:37
0
о! звучит как план!
Подскажите, из описания не понял, а как то в самой таблице отображается, загружен файл в этот заказ или нет? Ну, может появляется новая колонка или какая-то иконка?
vrm13
02 сентября 2025, 10:20
0
Делал через msOrderFiles к заказу добавляю фото во вкладке дополнения, на смену статуса заказа уходит письмо где прикреплено фото
Дмитрий
02 сентября 2025, 10:01
0
Вопрос не понятен. Что значит прикрутить к заказу? Для чего?
Когда покупатель выбирает товар на сайте, он видит фотку товара, в моем случае, это букет цветов, но каждый раз, после сборки букета, менеджер отправляет фотку уже реального букета в ватсап покупателю, что бы ожидание и реальность совпадали.
Я хочу сделать так, что бы это было централизованно, непосредственно через интерфейс минишопа. Что бы была возможность подгрузить реальную фотографию букета к заказу, и так же через интерфейс минишопа отправить ее покупателю.

Уместно всё если это решает задачу, но как раз задачу я не совсем понимаю. Сейчас вот ещё раз перечитал заметку и появился вопрос: а зачем вообще тебе к письму прикреплять отдельный файл, почему нельзя передать изображение товара в теле письма, как это происходит из коробки?.
По большому счету мне без разницы, как это будет технически, отдельный файл или в теле письма, цель, что бы заказчик увидел фотку.

Там же передаётся список товаров с картинками, запихни нужную картинку в галерею, передай в чанк письма да хотя бы через опции товара и заказчик увидит товар
Боюсь такое решение мне не совсем подходит, т.к. у меня каждый новый заказ, должен иметь новую фотографию.
Артур Шевченко
01 сентября 2025, 10:18
0
Где живут события минишопа?
В БД они живут, но для реализации задачи это не имеет значения. Вот здесь полный список с доступными параметрами.

файлик который отвечает за msOnChangeOrderStatus?
Не существует такого файлика. Ты должен создать его сам, если хочешь статический плагин, или не создавать. В любом случае плагин в modx хранятся в БД. Создаются через левый сайдбар вкладку Элементы->Плагины.

Как прикрутить к заказу изображение?
Вопрос не понятен. Что значит прикрутить к заказу? Для чего?

Уместно ли будет писать в базу путь до изображения, загружать его стандартными средствами модИКС
Уместно всё если это решает задачу, но как раз задачу я не совсем понимаю. Сейчас вот ещё раз перечитал заметку и появился вопрос: а зачем вообще тебе к письму прикреплять отдельный файл, почему нельзя передать изображение товара в теле письма, как это происходит из коробки? Там же передаётся список товаров с картинками, запихни нужную картинку в галерею, передай в чанк письма да хотя бы через опции товара и заказчик увидит товар.
Impulse
31 августа 2025, 21:09
0
Экранировать, то есть так: $c->sortby($this->modx->escape('rank'), 'ASC');
Во всех файлах?

/core/components/pageblocks/processors/mgr/column/sort.class.php
/core/components/pageblocks/processors/mgr/grid/sort.class.php
/core/components/pageblocks/processors/mgr/group/sort.class.php
/core/components/pageblocks/processors/mgr/collection/sort.class.php
/core/components/pageblocks/processors/mgr/table/sort.class.php
/core/components/pageblocks/processors/mgr/video/gallery/sort.class.php
/core/components/pageblocks/processors/mgr/gallery/sort.class.php
/core/components/pageblocks/processors/mgr/field/sort.class.php
/core/components/pageblocks/processors/mgr/constructor/sort.class.php
Aleksandr Huz
31 августа 2025, 21:02
0
экранируйте поле rank или установите новую версию.
Версия 1 не поддерживается с 29.11.2024
Aleksandr Huz
31 августа 2025, 20:52
0
вроде писали что PageBlocks работает с MySQL 8
Это для новых версий, а у вас, наверное, 1 версия установлена, или я ошибаюсь?
Дмитрий
31 августа 2025, 20:34
0
Артур, ты один из не многих, кто реально помогает советом, с твоих подсказок я уже не раз сумел разобраться в непонятных для меня вещах, спасибо тебе!
Как не править исходники я уже научился!
Вопрос в том, что я не знаю с какой стороны подойти к этой задаче!
Где живут события минишопа? Т.е. где мне искать файлик который отвечает за msOnChangeOrderStatus?
Как прикрутить к заказу изображение?
Уместно ли будет писать в базу путь до изображения, загружать его стандартными средствами модИКС… и желательно поподробнее как это все реализовать :)))
Хоть какой-то вектор дай!
Заранее, благодарен!
Артур Шевченко
31 августа 2025, 19:05
0
Чтобы сохранить возможность обновления минишопа, т.е. не менять исходники, отключи стандартную отправку и напиши свою в плагине на событие msOnChangeOrderStatus
Impulse
31 августа 2025, 16:44
0
Всем привет, столкнулся с такой проблемой, вроде писали что PageBlocks работает с MySQL 8, но при редактировании блоков у меня поля не показываются, только чекбокс: «Активно», в логах такая ошибка:

[2025-08-31 16:42:09] (ERROR @ /home/d/dmitrtro/site.ru/public_html/core/xpdo/om/xpdoobject.class.php: 241) Error 42000 executing statement:
Array
(
[0] => 42000
[1] => 1064
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'asc' at line 1
)
SQLSELECT `blockField`.`id` AS `blockField_id`, `blockField`.`block_id` AS `blockField_block_id`, `blockField`.`table_id` AS `blockField_table_id`, `blockField`.`group_id` AS `blockField_group_id`, `blockField`.`field_table_id` AS `blockField_field_table_id`, `blockField`.`name` AS `blockField_name`, `blockField`.`width` AS `blockField_width`, `blockField`.`caption` AS `blockField_caption`, `blockField`.`help` AS `blockField_help`, `blockField`.`xtype` AS `blockField_xtype`, `blockField`.`values` AS `blockField_values`, `blockField`.`where` AS `blockField_where`, `blockField`.`number_allownegative` AS `blockField_number_allownegative`, `blockField`.`number_minvalue` AS `blockField_number_minvalue`, `blockField`.`number_maxvalue` AS `blockField_number_maxvalue`, `blockField`.`columns` AS `blockField_columns`, `blockField`.`default` AS `blockField_default`, `blockField`.`combo` AS `blockField_combo`, `blockField`.`source` AS `blockField_source`, `blockField`.`source_path` AS `blockField_source_path`, `blockField`.`required` AS `blockField_required`, `blockField`.`rank` AS `blockField_rank`, `blockField`.`active` AS `blockField_active` FROM `modx_pb_fields` AS `blockField` WHERE ( ( `blockField`.`active` = 1 AND `blockField`.`group_id` = 0 ) AND `blockField`.`block_id` = 1 ) ORDER BY rank asc
[2025-08-31 16:42:09] (ERROR @ /home/d/dmitrtro/site.ru/public_html/core/xpdo/om/xpdoobject.class.php: 241) Error 42000 executing statement:
Array
(
[0] => 42000
[1] => 1064
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'asc' at line 1
)
SQLSELECT `blockFieldGroup`.`id` AS `blockFieldGroup_id`, `blockFieldGroup`.`block_id` AS `blockFieldGroup_block_id`, `blockFieldGroup`.`table_id` AS `blockFieldGroup_table_id`, `blockFieldGroup`.`name` AS `blockFieldGroup_name`, `blockFieldGroup`.`rank` AS `blockFieldGroup_rank`, `blockFieldGroup`.`active` AS `blockFieldGroup_active` FROM `modx_pb_field_groups` AS `blockFieldGroup` WHERE ( `blockFieldGroup`.`active` = 1 AND `blockFieldGroup`.`block_id` = 1 ) ORDER BY rank asc
Mike
30 августа 2025, 17:44
0
Отлично! Спасибо!
Олег
29 августа 2025, 18:05
0
Василий, здравствуйте! Очень интересное (и правильное) направление для развития modx экосистемы как мне кажется. В последнее время для разработки больше работаю с Laravel, но в плане управления контентом конечно очень удобен modx3 — файловый менеджер, дерево ресурсов, таблицы коллекций с инлайн редактированием и тд, на сборку удобной админки в ларавел уйдет оч много времени…

Так вот на проекте веб-приложения, который начинал писать давно еще на MODx, стал постепенно внедрять по частям ларавле параллельно с modx — получается modx живет в public и core, а рядом части ларавел в app, config и тд, с кастомным бутстрап файлом. И в modx подключается автолоадер laravel и кастомный конфиг инициализации контейнера с нужными сервисами типа лога, елоквента, кеша, блейда и фасадами.

И получается можно использовать их прямо в сниппетах modx. Или вообще у modx ресурса делать пустой шаблон, и в контенте через небольшой сниппет типа runController — вызов определенного своего контроллера, который по сути стандарный контроллер ларавел с валидацией, возвращает blade view. а на событие не найденной страницы вешать файл роутинга со всеми плюхами ларавел. Вопросы остаются еще с авторизацией пользователей — было бы удобно в итоге иметь вообще laravel как сервис создания фронта сайта, а modx как админку ресурсов.

Очень полезно что вы написали про возможность подключения композер файла прямо через основной файл modx — у меня реализовано через отдельный композер файл, подключаемый при инициализации modx. В целом направление интеграции modx и современных инструментов кажется очень перспективным, рад что вы снова тут (хоть и статьи прошлого года))