Всего 123 797 комментариев

Артур Шевченко
14 января 2023, 23:23
0
Надо каждой кнопке задать уникальный идентификатор. В тест вставлять [[buttonId]]. Потом написать плагин на OnWebPagePrerender, который из общего места получит список всех кнопок и заменит [[buttonId]] на значение соответствующей кнопки.
Антон
14 января 2023, 22:26
0
Артур, изучил MIGX более-менее, но у меня, допустим 150 страниц, на каждой странице по тексту разбросаны уникальные кнопки (штук по 10), получается, что мне надо к каждой странице свой шаблон?

Напомню, что управление всеми кнопками должно быть в одном месте (как на картинке выше, которую крепил к вопросу)
Николай Савин
14 января 2023, 20:30
+1
Корректнее было бы перевести как сущности, но штуковины как то по-русски больше звучит ))
Константин Ильин
14 января 2023, 20:13
0
Получается в документации не дописали про msOrder?
docs.modx.pro/komponentyi/minishop2/razrabotka/sluzhbyi/zakaz

Это к слову про эти msOnBeforeValidateOrderValue и msOnValidateOrderValue, как с ними работать, там тоже ничего не написано
Николай Савин
14 января 2023, 19:49
0
Вот вызов плагина
$response = $this->ms2->invokeEvent('msOnCreateOrder', array(
                'msOrder' => $msOrder,
                'order' => $this,
            ));
Как можно заметить в плагине есть обе переменные. msOrder это объект заказа, order — это сам класс обработчик заказа
Vladimir
14 января 2023, 18:21
0
когда я ставлю $order, то я не могу получить те данные которые нужны, а когда $msOrder то получаю что нужно, и плюс я веlь мои поля повесил на msOrder
Константин Ильин
14 января 2023, 16:35
0
$msOrder откуда у вас взялся?
причем в самом начале использовали $order
disk.yandex.ru/i/bPyW8AaKaag5mA

Можно сказать вот вам и опечатка.
Vladimir
14 января 2023, 16:17
0
А какой такой тип опечатки может такое сделать? в консоли всё работает да же если добавлять текст, ошибки не возникают. Всё что я хотел добавить в свои поля они есть и работает в плагине, я всё проверял.

<?php
switch ($modx->event->name) {

    case 'msOnCreateOrder':
        
        $userId = $order->get('user_id');
        $user = $modx->getObject('modUser', array('id' => $userId));
        if (is_object($msOrder) && is_object($user)) {
            $profile = $user->getOne('Profile');
            
            try {
                $qtOfFinishedOrders = $profile->get('finishedorders');
                if($qtOfFinishedOrders){
                    $qtOfFinishedOrders = (int) $qtOfFinishedOrders;
                    
                    
                    if($qtOfFinishedOrders >= 5){
                        
                        $isRegularCustomer = $msOrder->get('regular_customer');
                        
                        if(!$isRegularCustomer){
                            $msOrder->set('regular_customer', 1);
                        }
                    }                    
                }
                    
            }
            catch(Exception $e) {
                $modx->log(1, $e->getMessage());
            }
            
            $dfaultData = 'random';
            $dfaultData1 = 'random1';
            
            $msOrder->set('def_data', $dfaultData);
            $msOrder->set('def_data1', $dfaultData1);
            $msOrder->save();            
            
        }
        break;
}
Диман
14 января 2023, 11:01
0
Благодарю за ответ, так действительно работает
if (typeof jQuery == undefined) {
    var script = document.createElement(script);
    script.src = "' . $cityFields->config['jsUrl'] . 'web/jquery.min.js";
    document.body.appendChild(script);
}
Алексей Смирнов
14 января 2023, 10:16
0
Ну при создании статей и коментариев файлы можно загружать для этих статей и коментов соответственно.
weranda
14 января 2023, 10:05
0
Не понял, что скрывается под фразой «тикетсы про файлы». Поясните?
Алексей Смирнов
14 января 2023, 09:57
0
Тикетсы про файлы, и можно офис взять для авторизации или логин…
weranda
14 января 2023, 09:14
0
Много разных файлов подгружается и нужна авторизация.
Артур Шевченко
13 января 2023, 22:03
+2
scr = document.createElement('script');     
scr.src = 'path/to/scripts/';
document.body.appendChild(scr);
Петропавловский Артем
13 января 2023, 18:45
0
Лучшее решение — это написанное собой под конкретную задачу)
Prihod
13 января 2023, 17:56
0
$polylang = $modx->getService('polylang', 'Polylang');
$action = 'mgr/polylangcontent/create';
//$action = 'mgr/polylangcontent/update';

 /** @var modProcessorResponse $response */
$response = $polylang->runProcessor($action,$data);
 if ($response->isError()) {
    $modx->log(modX::LOG_LEVEL_ERROR, $response->getMessage());
}
ключи/значения для массива в $data посмотри в консоли браузера на вкладке сеть при создании/редактировании локализации
Prihod
13 января 2023, 17:51
0
Ну так ты сам ответил на свой вопрос. Делай перевод не на прямую в БД, а с использованием процессора который использует дополнение для создания или обновления локализации