Всего 123 803 комментария

vectorserver
12 декабря 2022, 07:52
1
+1
Как писал выше Артур!
Создай сниппет к примеру contextKeys:
<?php
/* @var modX $modx */
/* @var modContext $ctxs */
$ctxs_obj = $modx->getCollection('modContext', array('key:!=' => "mgr"));
$ctxs = [];
if ($ctxs_obj) {
    foreach ($ctxs_obj as $ctx) {
        $ctxs[] = $ctx->key;
    }
}

return implode(",", $ctxs);
Далее впихивай его в pdoSitemap
[[!pdoSitemap?
    &tpl=`@INLINE [[+url]][[+date]]`
    &where=`{"hidemenu":0}`
    &context=`[[contextKeys]]`
]]
Валерий
12 декабря 2022, 00:43
0
Думал это на крайний случай оставить, рывок все-таки будет виден.
Дело в том, что я точно также (добавлением параметров к ссылке) формирую переход в другом месте. И там у меня все отрабатывает прекрасно.
У меня сайт на тестовом сервере, может быть можно ссылку оставить, это не спам — вот здесь reg.wwwhite.ru/predstavitelstva/, если на карте выбрать любую точку, там есть большая зеленая кнопка для перехода в фильтр. Так вот она работает и 404 ошибку не вызывает. Чтобы увидеть, что оно работает, точку нужно выбрать в Крыму :))

Единственная разница — здесь параметры идут после .html, а там, где не работает, идет после слеша.
Артур Шевченко
12 декабря 2022, 00:38
+1
Напиши сниппет, который вернёт список контекстов.
Артур Шевченко
12 декабря 2022, 00:23
0
Попробуй JS триггерить
Артур Шевченко
12 декабря 2022, 00:18
0
Артём какой-то сложный вариант предлагает. Во-первых, расширить стандартную модель товара можно компонентом msAddFields. Во-вторых, пример плагина действительно есть в документации, но в документации по Modx
Петропавловский Артем
11 декабря 2022, 19:50
0
В документации есть пример реализации подобного функционала. Единственное, что вам нужно сделать, адаптировать его под себя
Сергей Карпович
11 декабря 2022, 16:04
0
А есть пример такого плагина?
Валерий
11 декабря 2022, 14:56
0
Это правда :)

Но, справедливости ради, отмечу, что достигнутый результат не совсем тот, который хотелось бы видеть. Перехода на внутреннюю страницу не происходит, следовательно, пользователь не понимает, что он «внутри округа». Попробую с изображениями теперь написать:

Внутренняя структура:

Ресурс «Представители» это подборка, сделанная через компонент «Collections». Все ресурсы берутся из категории с ID 162.

Код вывода фильтра на странице «Найти представителя» и странице «Центральный ФО» (дочерняя категория «Найти представителя»):

[[!mFilter2?
 &parents=`162`
 &limit=`12`
 &hideContainers=`true`
 &suggestions=`false`
 &tvPrefix=`tv.`
 &includeTVs=`mentor_area,mentor_bisness,mentor_status,mentor_spec,personTown,mentor_fo`
 &tplOuter=`user-pers_mFilter2.outer`
 &tpl=`persons_item`
 &tpls=``
 &sort=`resource|pagetitle:asc`
&filters=`
  tv|mentor_fo,
  tv|mentor_area,
  tv|personTown,
  tv|mentor_status,
  tv|mentor_spec,
`
 ...
Здесь «mentor_fo» — фильтр по Федеральным округам.

И я хочу добиться того, чтобы, при заходе на страницу «Центральный ФО» через меню, фильтр стоял по-умолчанию на пункте «Центральный ФО».


Дело в том, что из-за того, что фильтр «mentor_fo» привязан не к категориям в дереве ресурсов, а вручную вбивается в каждом сотруднике в качестве TV поля с множественным выбором, то фильтр сам не понимает, что мы внутри конкретного округа.

Ох, надеюсь, что сейчас чуть понятнее… Стало.
На самом деле, я хочу понять, почему, вписанная в замороженный url (первый скриншот сверху) ссылка не работает. Тогда как на странице с фильтром, если выбрать нужный округ там, то ссылка имеет именно этот вид :)
Сергей Карпович
11 декабря 2022, 13:56
0
удивительно, что за столько лет нет нормальной реализации
Артур Шевченко
11 декабря 2022, 11:23
0
Вооот, потому что правильно сформулированный вопрос это 50% ответа))
Валерий
11 декабря 2022, 10:15
0
Пока готовил вам ответ, понял в чем ошибся. Теперь все работает.
Я параметр прописывал с учетом перехода в подкатегорию (Крым), а нужно было без нее делать. Это все равно немного странно, но работает прекрасно.
Роман
11 декабря 2022, 07:59
0
Да, вы правы, были обозначены поля, из-за этого эти не прописывались.
Спасибо, надо быть мне внимательнее.
Артур Шевченко
11 декабря 2022, 00:35
0
Скрин дерева ресурсов, код вызова mFilter2 и описание того, что должно получится, — вот такая информация помогла бы получить ответ. А пока мне непонятно, что ты пытаешься сделать.
Артур Шевченко
11 декабря 2022, 00:32
0
Создать поле В наличии и плагин на сохранение, если остаток больше 0 ставить В наличии = 1, иначе 0. И фильтровать по этому полю.
Николай Савин
10 декабря 2022, 22:43
0
Вы точно в MODX работаете?
Андрей
10 декабря 2022, 20:54
0
Николай, сорри.
Я поторопился с ответом и принял вас за разработчика модуля )
Николай Савин
10 декабря 2022, 17:02
+1
Еще как вариант можно переустановить просто минишоп. В этом случае совершенно точно все поля окажутся на месте.