Всего 125 004 комментария

Дмитрий
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, а потом работает, до перезагрузки компа
Александр
09 апреля 2025, 15:30
0
Спасибо. Будем пробовать.
Александр Туниеков
09 апреля 2025, 15:02
0
Для перезаписи делаю так
if(!$obj = $modx->getObject($class,$search)){
    $obj = $modx->newObject($class);
}
if($obj){
    $obj->fromArray([
        'key1'=>'param1',
         'key2'=>'param2',
    ]);
    $obj->save();
}
Александр
09 апреля 2025, 14:29
0
Я делаю так:

$countidsection = $modx->getCount('DeQuestions', array('tabl_param' => $param));
        
    if ($countidsection == 0) {
    	$dequestions = $modx->newObject('DeQuestions');
    	...
    	...
    	...
    };
И бывают дубли (

Попробую предложенный вами вариант.

Или вообще думаю сделать так:
if ($countidsection == 0) {
	// если объекта нет - создать
	...
	...
	...
} else {
	// если есть совпадение - перезаписать значения
	...
	...
	...
};
Александр
09 апреля 2025, 14:28
0
Проверка на наличие аналогичного объекта организована с помощью метода getCount:

$countidsection = $modx->getCount('DeQuestions', array('tabl_param' => $param));
Александр Туниеков
09 апреля 2025, 13:19
0
Я обычно делаю
if(!$obj = $modx->getObject($class,$search)){
    $obj = $modx->newObject( ...
}
И дублирование у меня нет. Но может потому, что у меня $search по индексированным полям ^-^.
Нейросеть советует транзакции или
Также, желательно добавить уникальный индекс в базе данных на поле tabl_param, что обеспечит дополнительную защиту от дублирования на уровне СУБД.
Артур Шевченко
09 апреля 2025, 10:58
0
Наверное надо добавить проверку на наличие аналогичного объекта перед созданием.
Артур Шевченко
09 апреля 2025, 10:53
0
Посмотри в файлах выгрузки. Если там они есть, значит компонент, если нет — 1С