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

Aleksandr Huz
15 апреля 2025, 13:09
+1
Во-первых, MIGX не умеет создавать вкладки, панели и, тем более, кастомные поля у ресурсов или пользователей.
Во-вторых, настройка таблиц в PageBlocks куда мощнее: данные сохраняются не в JSON, а в нормальной структуре БД, что даёт гибкость для фильтрации, поиска и реализации сложной логики.
А ещё в PageBlocks есть блоки, синхронизация блоков между ресурсами, встроенный роутинг и многое другое.

Поэтому PageBlocks на порядок мощнее MIGX — это уже полноценный фреймворк внутри MODX.
Henk Everts
15 апреля 2025, 08:56
+2
Хорошо, что ты об этом заговорил. Мы написали короткий блог на английском языке на сайте Sterc: sterc.com/en/knowledge/blog/modx-ai-hackathon-2

Если у тебя появятся вопросы — не стесняйся, задавай!

Спасибо ChatGPT за перевод. ;-)
Дима Касаткин
15 апреля 2025, 02:05
+1
Вау! Это уже в некотором смысле закрывает часть функционала MIGX, который порядком поднадоел, и к тому же не располагает к написанию красивого и качественного кода (к сожалению). С этим обновленным PageBlock будет ещё один повод вместо MIGX выбрать для создания CMP (custom manager page) в админке именно его.

Автору — спасибо! Будем пробовать при случае!
Дима Касаткин
15 апреля 2025, 01:58
0
Как прошло мероприятие? Получилось ли прикрыть какие-то issue или подготовить PR в рамках прошедшего хакатона?
@Henk Everts поделитесь, пожалуйста!
Артур Шевченко
14 апреля 2025, 22:34
0
Modx тут не причём, дело в строке, вероятно там есть символы, которые ты не видишь.
Артур Шевченко
14 апреля 2025, 10:14
+1
Требуется вывести перечень товаров, которые содержаться в заказе.
В админке он и так выводится, а чтобы с фронта запустить процессор нужно дать права пользователю.

Второй момент ты хочешь присоединить к одной строке много строк, для этого нужно завернуть много строк в json. Примерно так
$q = $this->modx->newQuery('modResource');
$q->leftJoin('msCategoryMember', 'Member', 'Product.id=Member.product_id');
$q->leftJoin(
            'modResource',
            'Category',
            'Member.category_id=Category.id AND Category.class_key="msCategory" AND Category.id != Product.parent AND Category.published = 1'
        );
        $q->select(':categoriesSelect AS categories');
        $this->replacements[':categoriesSelect'] = <<<EOD
        CONCAT(
                '[', GROUP_CONCAT(
                    DISTINCT CONCAT(
                        '{"alias":"', Category.alias, '", "rid":"', Category.id, '", "menuindex":"', Category.menuindex, '", "template":"', Category.template, '"}'
                    )
                    SEPARATOR ','
                ), ']'
            )
EOD;
Если MySQL повыше можно использовать спец функции для создания json
Владислав
14 апреля 2025, 09:50
0
Добрый день! Добавьте, пожалуйста поле «Дата публикации» с возможность ручной правки. По-умолчанию можно его заполнять текущей датой.
Alexey
14 апреля 2025, 08:05
+1
msOrdermsOrderProduct — опечатка?

Если минишоп выдает пустую таблицу, то — возможно — в логах админки есть что-нибудь?
Дмитрий
13 апреля 2025, 20:14
0
Спасибо, опять сумел разобраться с вашей подачи!=)
Наумов Алексей
11 апреля 2025, 16:48
0
Вроде не в preHooks, а просто в hooks (для Formit точно).
500 ошибка — надо смотреть логи сервера…
Dima
11 апреля 2025, 14:26
0
Была моя же проблема в неправильном расчете.
Я получал моментальный/текущий расчет, но не учитывал дальнейшую обработку уже, скорее, в момент заказа.

Немного подправил класс доставки и использовал не текущую стоимость $cart, а именно передаваемую $cost
<?php

if(!class_exists('msDeliveryInterface')) {
    require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}
class msDeliveryHandler_cdekwidget extends msDeliveryHandler implements msDeliveryInterface {
    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0.0) {
        session_start();
        $delivery_cost = $_SESSION['cdek_delivery_price'] ?? 0; 
        return $cost + $delivery_cost;
    }
}
Максим
11 апреля 2025, 10:38
0
А какие манипуляции с css ты делаешь для решения этой проблемы? У меня в шаблоне инлайн-стиль height:100 стоит, но скрипт перебивает его в 0.
Максим
11 апреля 2025, 10:36
0
Подтверждаю, такая же проблема. Именно с модалками через AjaxForm. Если капча НЕ в модалке, то 2 сразу отображаются корректно
Максим
11 апреля 2025, 10:35
0
У меня не работает с Login. Когда сниппет возвращает false, страница сыпется в 500-ю ошибку (в консоле на вкладе Сеть). Login 1.9.12. К логам сервера нет доступа, в логах MODX ничего нет.
Я же правильно понимаю, что название сниппета нужно добавлять в preHooks? Больше ведь ничего не надо делать? (ну кроме вызова сниппет в html-форме)
Дмитрий
10 апреля 2025, 17:19
0
Ух, спасибо за ваш перст указующий, уже второй раз помогаете! Пойду изучать мат часть!
Евгений Webinmd
10 апреля 2025, 11:45
1
+1
Рендер находится тут github.com/modx-pro/miniShop2/blob/master/assets/components/minishop2/js/mgr/misc/ms2.utils.js#L15

Но это вам придется менять исходники. Если делать правильно, то надо расширять эту таблицу и выводить свои поля. Это чуть сложнее. Пример подобного расширения таблиц описан тут modx.pro/howto/24899
TITAN-UZ
10 апреля 2025, 10:40
0
Хостинг где находится!
Андрей
10 апреля 2025, 09:05
0
Поправка, не только в админку, но и на сайт, просто раньше я сначала в админку заходил, потом на сайт. Сегодня попробовал на сайт — то же самое, первый раз только с VPN, а потом работает, до перезагрузки компа