Передать значения в VirtualPage при переходе по ссылке

Здравствуйте!

Прошу помощи в настройке VirtualPage.

Ситуация такая:
есть страницы — site.ru/objects/id-number/,
на этих страницах стоят ссылки — site.ru/catalog/VP-category/VP-page/
По ссылке будет выборка каталога товаров.

Задача:
при клике сформировать страницу с данным адресом (получить VP-category и VP-page), при этом в pdoPage подставить условие:

&where=`{
  "city": "VP-category__VP-page"
}`

Насколько я понимаю данную ситуацию,
в маршруте нужно указать — /catalog/{category:[a-z0-9]}/{page:[a-z0-9]}/
в обработчике — динамический ресурс, содержимое: [[$VP-chunk]].

А дальше тупик. Видимо сниппет необходимо какой-то повесить внутрь чанка, но с PHP я, к сожалению, не дружу пока.

Также есть предположение повесить VP-category и VP-page в дата-атрибуты ссылки, т.е. сделать ссылки вида

<a href="http://site.ru/catalog/VP-category/VP-page/" data-category="VP-category" data-page="VP-page">Ссылка</a>
.

Или в этом нет необходимости?
Евгений
05 сентября 2018, 17:08
modx.pro
1
948
0

Комментарии: 4

Павел Романов
05 сентября 2018, 17:31
+1
На виртуальной странице доступны плейсхолдеры из маршрута с префиксом vp.
В Вашем случае это [[+vp.category]] и [[+vp.page]]. Соответственно, в чанке [[$VP-chunk]] или шаблоне виртуальной страницы Вы можете делать выборку:

&where=`{
  "city": "[[+vp.category]]__[[+vp.page]]"
}`
    Евгений
    06 сентября 2018, 16:13
    0
    Спасибо за подсказку, буду пробовать!

    Т.е. когда в маршруте я указываю /catalog/{category:[a-z0-9]}/{page:[a-z0-9]}/, VP автоматически определяет переменные category и page в зависимости от маски?
      Павел Романов
      06 сентября 2018, 16:29
      0
      Он берет данные из URI.
      То есть если у Вас будет адрес site.ru/catalog/15/2/, то [[+vp.category]] выведет 15, а [[+vp.page]] — 2.
        Евгений
        06 сентября 2018, 16:35
        0
        Ясно. Спасибо!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4