Всего 125 021 комментарий

Артур Шевченко
22 апреля 2025, 10:29
0
Ошибки HTTP начинающиеся на 5 это ошибки сервера. Чтобы разобраться в причинах надо смотреть логи сервера. Но поскольку обычно проблем с AdminTools не наблюдается, предположу, что причина ошибки в окружении: не подходящая версия php, modx, БД.
Columb
21 апреля 2025, 21:21
+1
1. Создавать копии страниц не надо — в страницы появится вкладка «Локализация», в ней будут отображаться переведенные копии данной страницы. «Перещелкать» все страницы придется, даже если все локализации страницы будут добавляться автоматически — вкладка «Добавить и перевести недостающие локализации»
2. Верно, для перевода доступны стандартные поля ресурса MODX + 2 SEO поля (заголовок, ключевые слова) + можно указать (додать) TV. Воспользоваться лексиконами также можно, но это уже немного о другом.
3. Можно, в документации это указано
4. Не будет.

Компонент не идеален, но лучшего пока не встречал))
Артур Шевченко
21 апреля 2025, 21:16
0
Если ты прописал в шаблоне [[*context_key]], то он обязан был вывестись. Тут есть два варианта: ты его не видишь из-за стилей, ты прописал не в шаблоне. Есть и третий, ты не копировал, а набирал буквы сам и опечатался.
Матвей
21 апреля 2025, 20:39
0
if ($modx->event->name != 'OnMODXInit' || $modx->context->key == 'mgr') {
return;
}
if ($host = str_replace('www.', '', $_SERVER['HTTP_HOST'] ?: $_SERVER['SERVER_NAME'])) {
// Выбираем контексты с настройкой http_host
$q = $modx->newQuery('modContextSetting', array('key' => 'http_host', 'value:!=' => ''));
$q->select('context_key as ctx, value as host');

$tstart = microtime(true);
if ($q->prepare() && $q->stmt->execute()) {
// Учитываем наш запрос в БД
$modx->queryTime += microtime(true) — $tstart;
$modx->executedQueries++;

while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
// Если нашли нужный контекст — переключаем на него
if ($row['host'] == $host) {
$modx->switchContext($row['ctx']);
break;
}
}
}
}
Матвей
21 апреля 2025, 20:25
0
Через *content…
Во 2м modx и на одном домене — спокойно настраивал мультиязычность и babel, а мультидоменность — почему-то не берет из разных контекстов для разных доменов
Артур Шевченко
21 апреля 2025, 19:50
0
Настроил контексты
Как именно настроил? Указал site_url, site_start, http_host? Плагин для переключения контекстов написал?
Артур Шевченко
21 апреля 2025, 14:20
0
Я же готовый пример скинул — пользуйся. Могу лишь добавить, что $c->select() и все другие методы можно вызывать сколько угодно раз.
Павел Романов
21 апреля 2025, 12:44
0
Здравствуйте.
Первой должна идти колонка «Категории»
Дмитрий
21 апреля 2025, 10:52
0
$q->leftJoin('msOrderProduct', 'Product', 'msOrder.id=Product.order_id AND Product.product_id = 190');
а как в этой конструкции сделать AS, как в запросе, к примеру, select name from table_name as name_product?

а если быть точнее, то в штатном процессоре есть вот такой вот запрос

$c->select(
            $this->modx->getSelectColumns('msOrder', 'msOrder', '', ['status', 'delivery', 'payment'], true) . ',
            msOrder.status as status_id, msOrder.delivery as delivery_id, msOrder.payment as payment_id,
            UserProfile.fullname as customer, User.username as customer_username,
            Address.region as region, Address.text_address as text_address, Address.city as city, Address.phone as phone,
            Status.name as status, Status.color, Delivery.name as delivery, Payment.name as payment'
        );
и если я дописываю, к примеру Product.name as name_product, а в системных настройках минишопа задаю дополнительное поле для таблицы заказов name_product, то все работает.
Но, естественно, выводится только 1 товар, а не все. И, увы, финт ушами, который я проворачивал со стороны фронденда, уже не выходит.
$sQuery="SELECT 
adr.id, adr.country, adr.region, adr.phone, adr.comment, ord.status, adr.text_address, ord.order_comment, ord.delivery, ord.num, ord.weight,
adr.receiver, ord.cost,
*********
(select GROUP_CONCAT(name, ' - ', count, 'шт ') as names from modx3_ms2_order_products where order_id = adr.id) as names
FROM modx3_ms2_order_addresses as adr
*********

LEFT JOIN 
modx3_ms2_orders as ord ON adr.id=ord.id ORDER BY adr.id DESC
";
я так понимаю, что select это какой-то метод в процессоре, и в итоге выходит ошибка…

как мне это:
(select GROUP_CONCAT(name, ' - ', count, 'шт ') as names from modx3_ms2_order_products where order_id = adr.id) as names
FROM modx3_ms2_order_addresses as adr
засунуть в это:
$c->select(
            $this->modx->getSelectColumns('msOrder', 'msOrder', '', ['status', 'delivery', 'payment'], true) . ',
            msOrder.status as status_id, msOrder.delivery as delivery_id, msOrder.payment as payment_id,
            UserProfile.fullname as customer, User.username as customer_username,
            Address.region as region, Address.text_address as text_address, Address.city as city, Address.phone as phone,
            Status.name as status, Status.color, Delivery.name as delivery, Payment.name as payment'
        );
Дмитрий
20 апреля 2025, 22:05
0
так, то да, только для мня то тут написана абракадабра =)