Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
18 января 2024, 15:29
+1
Сначала выводишь ту разметку, что в nav при помощи pdoResources, хотя можно и через pdoMenu (что наверное даже логичнее).
Для data-show-partner используешь, к примеру, id ресурса через [[+id]], либо [[+idx]]

А потом для каждой страны делаешь свой вызов pdoResources, чтобы вывести дочерние элементы.
Хотя, может получится опять же все завернуть в один вызов pdoMenu (смотря, насколько там сложная верстка).
Наумов Алексей
18 января 2024, 12:12
0
Беглый вопрос тому же ChatGPT (да, я ленив сам это искать)))). Но вывод понятен, нужно обновляться! А то мы до сих пор пишем новые(!) дополнения с поддержкой php 5.6 (а то и 5.4), т.к. много сайтов на нем работает.

PHP 7.1 был выпущен 1 декабря 2016 года, а PHP 7.4 — 28 ноября 2019 года.

Для PHP 7.1 активная поддержка закончилась в декабре 2018 года, поддержка безопасности — в декабре 2019 года, и заключительная поддержка завершится в декабре 2020 года.

Для PHP 7.4 активная поддержка продолжается до ноября 2021 года, поддержка безопасности — до ноября 2022 года, а заключительная поддержка ожидается завершиться в ноябре 2023 года.
Наумов Алексей
17 января 2024, 20:27
0
Странно, ну по идее это то самое место… больше я не находил.

Нужно повнимательнее перепроверить, но это в свободное время.
Наумов Алексей
17 января 2024, 18:42
0
Привет! наверное мой косяк…
Я хотел сделать набор разрешений, но не доделал, а следы остались.

В общем в плагине FileMan найди строчку 14, закомментируй её:
// нужно закомментировать:
if (!$modx->hasPermission('fileman_doclist')) return;
Еще один пермишн проверяется при загрузке файлов «file_upload», но это стандартный MODx, который нужен для загрузки файлов.
Наумов Алексей
16 января 2024, 11:50
+1
Возможно и сделать. Но готового решения для данной задачи нет.
А Артур имел ввиду то, что описано в этом разделе документации.
Наумов Алексей
11 января 2024, 14:13
0
ну смотри…
AjaxForm лишь прокидывает данные на FormIt.
Для того, чтобы это все работало — при рендере формы в сессию записываются $scriptPtoperties с которыми вызывался AjaxForm, эти данные записаны в сессии с ключем, который передается в af_action.

Получается, что в сессии эти данные есть по крайней мере она не пуста)

Потом FormIt вызывает хуки по очереди:
spam он там как-то email проверяет, у тебя в форме я каких-либо email не вижу, думаю что в итоге этот хук вообще ничего не делает у тебя;
— далее правильно вызывать recaptchav3, судя по логам он с ошибкой работает. Если посмотрим в код, то сообщение в логе «Failed to load Recaptcha class» означает и то, что хук вернет false. Все, FormIt должен прекратить обработку, до хука email, который отправит письмо, дело не дойдет.
Наумов Алексей
11 января 2024, 13:18
0
хуки вызываются в порядке их указания:
&hooks=`spam,email,recaptchav3`
у вас значит проверка spam (не знаю, что там), далее отправляется письмо, далее проверка рекапчи… только смысл то её проверять, письмо уже отправлено.
Наумов Алексей
11 января 2024, 13:15
0
Ну вот тут было бы логично добавить проверку isset или array_key_exists. это скорее косяк компонента.

github.com/GulomovCreative/FetchIt/blob/master/core/components/fetchit/model/fetchit.class.php#L79
Наумов Алексей
11 января 2024, 13:11
0
Покажите вызовы сниппета AjaxForm на вашем сайте. Отправить форму с сайта без заполнения капчи точно невозможно?
Наумов Алексей
04 января 2024, 18:31
+1
Нет, не совместим. И названия таблиц и колонки немного разные, само ничего не подцепится.
Но скопировать данные sql запросом можно.
Наумов Алексей
29 декабря 2023, 15:08
0
sendRedirect сделает именно редирект на страницу
sendForward оставит текущий url, редиректа не будет, но вместо показа текущей страницы будет произведена «подмена» на указанную
Наумов Алексей
29 декабря 2023, 15:07
0
Чет я не понял.

410 код — это не редирект, это код ответа.

Если ты делаешь редирект, то минимальный пример это
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
как видишь, есть Location, но нет тела страницы (html кода считай)

а если мы 404 хотим показывать, то мы отдаем
header("HTTP/1.1 404 Not Found");
и html код страницы. Браузер её покажет, просто будет код 404, который роботы и увидят.

А ты пытаешься сделать редирект и передать в него код 410.
Это не верно!
Тебе нужно в плагине сделать так:

$modx->sendForward(123, 'HTTP/1.1 410 Gone');
где 123 — это id страницы, в тексте которой будет написано «Страницы нет, код 410».
Наумов Алексей
28 декабря 2023, 11:01
0
В альт и титл картинки товара попали кавычки:
alt="Паллацио "Премиум""
Наумов Алексей
25 декабря 2023, 16:59
0
плагин на системное событие msOnBeforeCreateOrder, но похоже, что в него не поступают данные о стоимости доставки
Похоже, что должны поступать, судя по коду из msorderhandler.class.php:

// Раз
$delivery_cost = $this->getCost(false, true);
$cart_cost = $this->getCost(true, true) - $delivery_cost;
$num = $this->getNewOrderNum();

/** @var msOrder $msOrder */
// Два
$msOrder = $this->storageHandler->getForSubmit(
    compact('user_id', 'num', 'cart_cost', 'cart_status', 'delivery_cost')
);
// Три
$response = $this->ms2->invokeEvent('msOnBeforeCreateOrder', [
    'msOrder' => $msOrder,
    'order' => $this,
]);
Наумов Алексей
25 декабря 2023, 12:13
0
Может источник файлов не правильно настроен? Сложно сказать. Ошибки php в логах посмотрите.
Наумов Алексей
25 декабря 2023, 11:42
+1
Речь про объект cart в response? Там да, есть данные вроде товар id=3, кол-во 5. Вот только в метрику (как я понял) нужно передавать другое: не текущее кол-во товаров, а сколько именно его добавили в корзину или удалили. Ну типа было 5 товаров, мы 2 убрали нажатием на "-", осталось 3. Вот минишоп возвращает 3, а где взять 2 — вопрос.
Наумов Алексей
25 декабря 2023, 11:26
+1
Спасибо!
В принципе да, с miniShop2.Callbacks.Order.submit.response.success можно попробовать переписать скрипт, по идее должно сработать.

Про прием с расширением msCartHandler знаю, ведь хотелось обойтись без любого php кода, но такого способа в текущей реализации miniShop2 нет.