Всего 95 743 комментария

Володя
23 августа 2019, 16:23
0
fields: ['pagetitle', 'id'],
value: { value: 3374 }
Максим
23 августа 2019, 15:54
0
Самое интересное, что данные из базы приходят. Пробовал руками подставлять данные разного формата — число, массив чисел, объект ( {id:33174} ), но все без толку(((

Что не так?
Николай Савин
23 августа 2019, 15:42
0
Насколько я знаю он еще и никаких методов кроме GET и POST не поддерживает. Все остальные эмулируются, переводясь в POST. По крайней мере так было, когда я последний раз с этим компонентом фреймворка работал. Все на POST c экшенами выстраивалось.
С другой стороны — может это и к лучшему? Глаголы изначально не рассматриваются, работаем с базовой частью.
Ганин Роман
23 августа 2019, 15:42
0
Субъективно. Мне тоже привычнее старый-добрый REST, но на четвёртую ночь «красноглазия» с зависимыми выборками понимаешь, что «лучше день потерять, потом за пять минут долететь». Оба решения имеют большое количество недостатков (докладов на эту тему за последние два года — на три сезона), так что тут нельзя оперировать понятием «лучше». если сделаем оба, утрём нос тем, кто «ниасилил».
Сергей Шлоков
23 августа 2019, 15:38
+1
Я бы всё-таки не стал рассматривать REST в реализации MODX. Мало того, что сам стандарт уже старый и ограниченный, так ещё и в MODX он хрен знает как поддерживается. Многие серверы по умолчанию отключают опасные методы. Как в этом случае реализовывать глаголы? Костылями как в Laravel? Есть смысл обратить внимание на JSON-API или OpenAPI, в которых решены многие проблемы REST.
Сергей Шлоков
23 августа 2019, 15:34
0
По сравнению с другими у GraphQL сложнее порог входа. Нужно учить язык. JSON-API в этом плане проще. И масштабируемее. Можно начать с простого REST, а закончить сложными запросами. Есть ещё OpenAPI. В общем только выбирай.
Алексей
23 августа 2019, 15:31
0
Как можно использовать msinportexport с localizator, я понимаю что нужен плагин. Есть pagetilte на двух языках. Подскажите в какую сторону искать. Спасибо.
iWatchYouFromAfar
23 августа 2019, 15:07
+1
Тоже закинул с ЯД все что было. Спасибо Толяныч, что держишь тикетс на плаву и даже улучшаешь его!
Сергей Сергеевич
23 августа 2019, 15:02
0
Здравствуйте.
Сниппет работал долгое время, и сегодня перестал. При этой конструкции — [[caseChanger? &w=`[[*pagetitle]]` &m=`1` &p=`2`]] белая страница. Без параметра падежа страница загружается — [[caseChanger? &w=`[[*pagetitle]]` &m=`1`]] но результата вывода нет.
Николай Савин
23 августа 2019, 14:44
0
Именно так. Я тебе больше скажу. Переодически в комментариях ребята дают ссылки на свои уже сформированные библиотеки контроллеров. Из последнего вот недавно выкладывали
Максим
23 августа 2019, 14:35
0
Спасибо! Это упрощает задачу! Если я все правильно понял, то остается написать контроллер, который будет дергать соответствующие классы и их методы?
Ганин Роман
23 августа 2019, 14:34
0
Я бы склонялся к JSON-API (т. к. это надмножество REST) и GraphQL, потому что есть кейсы, когда его выбор оправдан. Для PHP есть готовые решения: thecodingmachine.io/graphqlite-graphql-in-php-easy, например, выглядят очень воодушевляюще. Спрос к GraphQL будет неизменно расти (маркетинг — такой маркетинг), так что решив эту задачу, мы закроем большой пласт потребностей охипстеревших фронтендеров (да кого я обманываю — я сам такой…).
Я в своих проектах для решения подобной задачи просто использую DSL (Loopback 4), который нивелирует разницу между выбираемой технологией под абстаркцию описания типов (по аналогии, как это делается в MODX, когда описывается схема таблицы в XML). В этом случае мы сможем решить ещё и проблему поддержки нескольких типов БД — MySQL, PostgreSQL, NoSQL.
Наумов Алексей
23 августа 2019, 14:17
+1
Задонатил остаток с ЯД
mngatoff
23 августа 2019, 14:14
+1
о, эт приятно :)
Николай Савин
23 августа 2019, 14:13
0
Вот помониторь лучше документацию по MODX Rest
Событие onPageNotFound тут не при чем.
krkaa
23 августа 2019, 11:40
0
Откройте указанный файл и закройте все "<?php"
Максим
23 августа 2019, 11:11
0
Вы покупали оба компонента! Правильнее будет обозначить задачу разработчикам компонентов через поддержку. Я бы сначала по этому поводу поговорил с поддержкой mSearch2 а потом с поддержкой msDiscount. Так как данные компоненты должны уметь работать друг с другом. Для этого написаны специальные события. А раз они не умеют работать дружно — значит кто-то накосячил и нужно это исправить!) Ведь речь идет не о бесплатных решениях.
eflit
23 августа 2019, 11:00
0
Понял в общем решить возможно. Спасибо.
Максим
23 августа 2019, 10:58
0
Вы можете передать ее через и потом в плагине в реквесте ловить $_REQUEST['wtf']
Пример моего плагина для калькулятора:
<?php
if ($modx->event->name == 'msOnBeforeAddToCart') {
    
    $options = $product->loadData()->get('options');
    $arrProduct = $product->toArray();
    
    $op = array();
    /*foreach ($options as $key => $value) {
        $op[$key] = $arrProduct[$key.'.value'];
    }*/
    
    $op['width'] = $_REQUEST['custom_width_window_slider'];
    $op['height'] = $_REQUEST['custom_height_window_slider'];
    $op['w_profile'] = $_REQUEST['profile_name'];
    
    if (!empty($_REQUEST['options'])) {
        foreach ($modx->fromJSON($_REQUEST['options']) as $key => $value) {
            if (is_array($value)) {
                foreach ($value as $name => $prop) {
                    $op[$name] = $prop;
                }
            } else {
                $op[$key] = $value;
            }
        }
    }
    
    $values = & $modx->event->returnedValues;
    $values['options'] = $op;
    
    $product->set('price', $_REQUEST['price']);


    //$modx->log(modX::LOG_LEVEL_ERROR, $modx->event->name . '. Message: ' . print_r($op, true));
}

Вродь как все просто!