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

Артур Шевченко
30 декабря 2023, 14:02
+1
Похоже ты и pdoResources работаешь впервые, так как не знаешь что доступ к TV внутри чанка нужно получить так
{set $blocks = $_pls['tv.blocks'] | fromJSON}
Кровельный
30 декабря 2023, 13:07
0
А с такой ошибкой не кто не сталкивался?
/core/components/seofilter/model/seofilter/sfcount.class.php : 496) [SeoFilter] Counting error: Method "getMsProductConditions" not exists in class "sfCountHandler ".
Futuris
30 декабря 2023, 10:20
+1
Для начинающих кодеров, типа меня, стоит упомянуть, чтобы в чанке tpl.inCart.btn в ссылке
<a href="[[~27]]">
поставили ID своей корозины. Не сразу доходит, почему ссылка не работает.))
Futuris
29 декабря 2023, 16:14
0
Да, у вас это уже почти мини-корзина. После праздников я еще внимательно поразбираюсь. Если будут вопросы — напишу. Спасибо!
Dan
Dan
29 декабря 2023, 16:03
0
То, про что вы говорите, не требует PHP вообще. Это чистый js в 3 строчки. Мое решение позволяет видеть какой товар есть в корзине и в каком количестве на любой странице сайта, и в то же время позволяет удалять товар из корзины, не находясь на ее странице.
Роман
29 декабря 2023, 15:22
0
Ага, спасибо, сейчас попробую!
Роман
29 декабря 2023, 15:21
0
ок Благодарю, сейчас попробую, пока не могу, все повисло, и сайт и vps :)) в плагине ошибка видно, накрутил блин
Наумов Алексей
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».
Роман
29 декабря 2023, 14:57
0
Не не, все активно, это понятно
Тодор
29 декабря 2023, 14:57
0
у тебя $requestedUrl пустой. Пробуй так
$q_var = $modx->getOption('request_param_alias', null, 'q');
$requestedUrl = &$_REQUEST[$q_var];
Тодор
29 декабря 2023, 14:54
0
Банальный вопрос: А галочку в сис.событиях поставил на OnPageNotFound?
Роман
29 декабря 2023, 14:51
0
Да, но такое ощущение что до ридеректа как и до плагина с его OnPageNotFound дело не доходит когда срабатывает системная настройка 404

$requestedUrl = $modx->context->getOption('request_uri');
if ($requestedUrl === '/page') {
    $modx->sendRedirect($modx->makeUrl(173), 'HTTP/1.1 410 Gone');
    exit();
}
Тодор
29 декабря 2023, 14:46
0
А редирект в плагине ты делаеш?
Роман
29 декабря 2023, 14:12
0
Спасибо, но не работает это. Я тоже так подумал, но для MODX REVO несуществующий URL например /page это сразу кидает на 404 и все, на этом приехали. А мне надо этот URL отпhавить на 410 страницу, но я не могу обойти 404 страницу, и сам плагин на OnPageNotFound не работает, кидает на 404 страницу согласно настройкам в system
Тодор
29 декабря 2023, 14:09
0
Создайте ресурс который будет отобажаться при 410 ошибке. И в плагине на OnPageNotFound перенаправляйте пользователей на етот ресурс
Futuris
29 декабря 2023, 13:03
0
Спасибо за помощь! Пока нет неоходимости. У меня это не рабочий проект, я просто хотел попрактивоваться в коде.)) Но жена, которая в нашем семейном подряде отвечате за фронтенд, предложила более простое (для нашего случая) решение, которое не требует изменений в php- и js-файлах Minishop2. Поскольку, как упоминал, у нас свой фреймворк, она просто взяла из корзины (где у нее также свои стили) свои стилизованные инпуты и добавила их на страницу категории.


Единственное отличие — в вашем решении больше динамики. Т.е. у вас при каждом нажатии изменяется количество в корзине. У нас сначала нужно «наплюсовать» нужное количество, а потом оно отправляется в корзину.

Артур Шевченко
29 декабря 2023, 11:37
1
+1
Если при смене контекста менять cultureKey и создать записи словаря для этого cultureKey, то будет другая запись.