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

Роман
19 июля 2023, 11:30
0
не получается, структура такая, нужно вывести вложенного родителя и потомков с id 7

РОДИТЕЛЬ НЕ НУЖЕН — 2
— ребенок не нужен
— ребенок не нужен
— РОДИТЕЛЬ НУЖЕН — 7
— ребенок нужен
— ребенок нужен
Артур Шевченко
19 июля 2023, 11:24
0
Когда ты указываешь
&resources=`7`
&parents=`7`
В запросе будет что-то типа «parent IN (7) AND id IN (7)». Соответственно если тебе нужно вывести 7 ресурс и его потомков указывай в parents родителя ресурса 7, а в resources тех соседей ресурса 7, которых не нужно выводить со знаком минус.
Роман
19 июля 2023, 11:05
0
это понятно, а как вывести потомков тоже?
Дмитрий Кондаков
19 июля 2023, 11:04
0
Если указывается &resources=`7` то выведется в любом случае только ресурс с id 7
Роман
19 июля 2023, 09:52
0
Так не сработает, так выведет только ресурс с id 7, а мне нужны еще и его потомки.
Дмитрий Кондаков
19 июля 2023, 09:38
0
parents — это родитель, у ресурса 7 родитель не может быть 7. Уберите &parents=`7` и все заработает
Александр Мельник
18 июля 2023, 22:40
+1
Не знаю почему у вас работает. Я отрыл в документации (и даже по той ссылке что вы дали на mdn это тоже написано), что включение mode no-cors позволяет использовать только простые запросы.
Кстати до сегоднешнего дня не знал, что запросы делятся на простые и сложные. Но как оказалось, если запрос содержит content-type — aplication/json он уже считается сложным.
Простой запрос – это запрос, удовлетворяющий следующим условиям:

Простой метод: GET, POST или HEAD
Простые заголовки – разрешены только:
Accept,
Accept-Language,
Content-Language,
Content-Type со значением application/x-www-form-urlencoded, multipart/form-data или text/plain.

Любой другой запрос считается «непростым». Например, запрос с методом PUT или с HTTP-заголовком API-Key не соответствует условиям.
If mimeType’s essence is not «application/x-www-form-urlencoded», «multipart/form-data», or «text/plain», then return false.

Поэтому насколько я понял, fetch принудительно меняет заголовок на text, если я указал mode no-cors.
Хотя у вас работает.
Я тоже грешил на сервер, потому что это мной построенные на docker целый кластер из контейнеров, с двойным проксирование запросов и напартачить там можно было во многих местах. Но запросы с postamn, curl — проходили правильно, с корректным content-type.
Пришлось более глубоко вникнуть в работу cors. Убрал из fetch no-cors и реализовал у себя в приложении обработку предзапроса по методу options. Полнейшее для меня открытие, но оказалось что как только мы хотим сделать «сложный» запрос на «не свой домен», перед основным запросом браузер отсылает предварительный запрос на тот же url но только методом options и просит разрешения на основной запрос.
Как только я организовал у себя обработку этих предзапросов и возврат корректных (по документации заголовков), у меня все заработало.

Прекрасно, что удалось открыть что то новое для себя и спасибо за подсказки.
Баха Волков
18 июля 2023, 22:01
+1
Возможно у тебя какой-то прикол в настройках сервера.

// index.js

const btn = document.querySelector('#send')

btn.addEventListener('click', async () => {
  const user = {
    phone: '+0000000000',
    password: '76c4a096d14',
  }

  const response = await fetch('/test.php', {
    method: 'POST',
    mode: 'no-cors',
    headers: {
      'Content-Type': 'application/json;charset=utf-8',
    },
    body: JSON.stringify(user),
  })

  const result = await response.json()
  console.log(result)
})

// test.php

<?php

echo json_encode([
  'CONTENT_TYPE' => $_SERVER['CONTENT_TYPE'],
  'Content-Type' => getallheaders()['Content-Type']
]);

// Ответ сервера

{"CONTENT_TYPE":"application/json","Content-Type":"application/json"}
Артур Шевченко
18 июля 2023, 18:24
+1
Можешь вообще эту оцию не использовать, она, по-моему, бесполезная. CORS запрос сделать не поможет, а для чего ещё её можно использовать непонятно.
Александр Мельник
18 июля 2023, 17:46
0
я понял, это наверное изза
mode: 'no-cors',
Александр Мельник
18 июля 2023, 17:17
0
Если делаю этот же запрос, но через postman, выбрав body->row-json
то запрос на сервер приходит с корретным Content-Type.

Так же проверил, что fetch автодектит тип данных и если совсем удалить заголовок и передать в запросе FormData, то он подставит заголовок корректный.
И я даже согласен с тем, что json по своей сути это текст, а значит можно сказать что fetch передал по умолчанию заголовок Content-Type:text/html, но почему он игнорирует заданный в парметрах заголовок, пока для меня загадка.
ruslan
18 июля 2023, 15:44
0
загрузить получилось на 2.8.4-pl
но как только пытаюсь в него войти — 504 Gateway Time-out
Сергей Карпович
18 июля 2023, 11:15
0
Сам разобрался.
В чанке выода карты, перед последними скобками можно добавить дополнительную логику, например отключение скрола:
[[+mapId]].behaviors
        // Отключаем часть включенных по умолчанию поведений:
        //  - drag - перемещение карты при нажатой левой кнопки мыши;
        //  - magnifier.rightButton - увеличение области, выделенной правой кнопкой мыши.
        .disable(['scrollZoom', 'drag', 'rightMouseButtonMagnifier'])
steve.kon
17 июля 2023, 14:52
0
То, что нужно! Большое спасибо!
Daniel
17 июля 2023, 13:57
+1
Вопрос был задан давно, но вдруг кому-то будет полезно.

Дело в том, что modx по умолчанию не запускает парсер fenom, пока не обнаружит соответствующий токен.
Вероятно
{rand(1,10)}
не является таким токеном.

Подобное поведение можно так же заметить и с комментариями.

Если отсутствуют другие теги fenom, то комментарий вида:
{* Комментарий *}
будет выведен как текст.
Как только добавим другие теги феном — комментарий вырезается из финального вывода.
Сергей Карпович
17 июля 2023, 12:26
0
Привет, подскажите, есть параметр в сниппете на отключение скрола мышкой, или это нужно добавлять в чанк вывода карты уже?
дмитрий
16 июля 2023, 20:16
0
приветствую, нашлось решение?
Александр Туниеков
16 июля 2023, 17:24
0
Вообще идея новой CMS меня стала преследовать с появлением MODX3. Например мой getTables в нем сейчас работает, но используемые функции объявлены деприкейтед. То есть в любой момент getTables может перестать работать. И на модели MODX3 не перейдешь. Нет там нужного функционала. То есть фактически MODX3 убивает 2 года моей работы :-(.