Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #4
Отправить деньги
Артур Шевченко
23 апреля 2025, 21:49
0
Задача ты описал максимально непонятно, но наверное тебе стоит рассмотреть Migxdb
Артур Шевченко
22 апреля 2025, 11:14
0
Я пользуюсь modx 2.8.8 и php 7.4, для modx 3 я бы использовал php 8, но там многие компоненты не работают, так как не кому их адаптировать под php 8.
Артур Шевченко
22 апреля 2025, 10:57
0
Вполне вероятно, что с PHP 8.3 AdminTools не работает
Артур Шевченко
22 апреля 2025, 10:29
0
Ошибки HTTP начинающиеся на 5 это ошибки сервера. Чтобы разобраться в причинах надо смотреть логи сервера. Но поскольку обычно проблем с AdminTools не наблюдается, предположу, что причина ошибки в окружении: не подходящая версия php, modx, БД.
Артур Шевченко
21 апреля 2025, 21:16
0
Если ты прописал в шаблоне [[*context_key]], то он обязан был вывестись. Тут есть два варианта: ты его не видишь из-за стилей, ты прописал не в шаблоне. Есть и третий, ты не копировал, а набирал буквы сам и опечатался.
Артур Шевченко
21 апреля 2025, 19:50
0
Настроил контексты
Как именно настроил? Указал site_url, site_start, http_host? Плагин для переключения контекстов написал?
Артур Шевченко
21 апреля 2025, 14:20
0
Я же готовый пример скинул — пользуйся. Могу лишь добавить, что $c->select() и все другие методы можно вызывать сколько угодно раз.
Артур Шевченко
20 апреля 2025, 20:59
0
Ага. Собственно в одном из первых ответов я точно так же сделал.
Артур Шевченко
20 апреля 2025, 20:50
0
я думал, это уже на мое усмотрение, ан нет
Как говориться: учи матчасть))) Ты можешь сам задать алиас, но в этом случае тебе так же самостоятельно нужно задать условия для соединения таблиц
$q = $modx->newQuery('msOrder');
$q->leftJoin('msOrderProduct', 'Product', 'msOrder.id=Product.order_id AND Product.product_id = 190');
$q->select('Product.options as options');
$q->where(['msOrder.id' => 604]);
$q->prepare();
echo $q->toSQL();
$q->stmt->execute();
$r= $q->stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($r);
Артур Шевченко
20 апреля 2025, 16:54
0
смогу найти как создан класс
Не очень понимаю, что ты хочешь найти, но могу с уверенностью заявить класс создан руками человека))) А в схеме можно посмотреть соответствие таблиц и классов, чтобы можно было писать запросы через XPDO.
Артур Шевченко
20 апреля 2025, 16:52
0
Наверное такой поход имеет место быть, правда я бы с удовольствием узнал подробности, как это работает.
Артур Шевченко
20 апреля 2025, 15:20
0
leftJoin это как раз таки присоединение таблицы, но вот какой? у минишопа нет такой таблицы msOrderAddress…
Конечно нет, msOrderAddress это название класса. Работать напрямую с БД не очень удобно, поэтому Modx использует XPDO для формирования запросов в БД, а чтобы это было возможно нужно описать какие поля есть в таблице, какой тип данных в них надо записывать и т.д. Для описания используют классы модели, и каждому классу соответствует xml схема. Посмотреть xml схему можно в папке компонента core/components/minishop2/model/schema
Артур Шевченко
20 апреля 2025, 15:11
0
А я думал, я уже погружаюсь
Не, ты не погружаешься в ExtJs, кажется ты его ещё не видел))) Это js фреймворк на котором работает админка modx, т.е. тебе мало получить данные из БД, тебе нужно прокинуть эти данные в js, который отрисовывает админку. Есть вероятность, что прокинуть данные можно плагином, а вот модифицировать процессор через плагин вряд ли возможно. Если же ты будешь править исходники, то автоматически останешься без обновлений компонента, даже случайная переустановка снесёт все изменения. В общем, я бы так не делал. К тому же, за 6 лет работы с Modx, я сам в ExtJs не погружался, слава богу Modx позволяет делать страницы в админке со своими скриптами, для простой логики можно сделать страницы с помощью migx.
Артур Шевченко
20 апреля 2025, 11:07
0
Если ты не готов погружаться в в недра ExtJs будет сложно. К тому же вывести в списке заказов список товаров для каждого заказа можно только в виде строки с разделителем или в виде json. Я бы сделал свой интерфейс вместо стандартного если нужна сложная кастомная логика.
Артур Шевченко
19 апреля 2025, 11:56
0
Если речь про админку, то мне вообще непонятно, что ты пытаешься сделать и зачем? В админке есть интерфейс работы с заказами и в этом интерфейсе можно посмотреть перечень товаров в конкретном заказе.