— упс, а это уже моя недоработка, извиняюсь. В том участке кода, где реализуется $modx->sendForward, вам нужно прописать доп. условие, чтобы подмена страницы срабатывала только в диапазоне подходящих вам кейсов.
В противном случае не делать ничего, чтобы в случае неподходящего запроса пользователя перехватывал роутер 404 ошибки.
— качаете какое-нибудь дополнение аля switch
— в плагине, в зависимости от совпадения, передаете плейсхолдер user_page_type
— создаете чанк с оформлением под каждый «тип» страницы (основная, список пользователей, комментарии, избранное)
— далее, в шаблоне списка пользователей:
2. чекбоксы «я согласен на обработку моих персональных данных/подтверждая форму, я соглашаюсь с правилами сайта» на объемных формах — регистрация/оформления заказа
3. страница с политикой конфиденциальности + ссылка в подвале
4. modhost.pro
Параметры шаблонов.
Попробуйте в плагине выше заменить:
На это:
А вообще, правильнее было бы убрать суффикс '.html' для документов.
Если выполнять $modx->sendForward(айди_страницы_404), то будет отдаваться некорректный код ответа, ну и последующие плагины на OnPageNotFound не будут корректно обрабатываться.
Посмотрите мой исходный пример и сравните со своим — у вас вначале происходит условие:
а после вы пытаетесь проверить на это:
— в моем же примере второе условие было ВНУТРИ первого.
— нужно пояснить, что изменилось?
— установить дополнение pdoTools
— включить для него системную настройку pdotools_fenom_parser
Но, без базовых знаний js у вас могут возникнуть побочные проблемы, в случае, если у вас в шаблонах или чанках где-то присутствуют {}.
Да, к слову. Вам будет не лишним принудительно отключить кэширование для страницы списка пользователей:
редактирование ресурса -> закладка настройки -> убрать галочку у
пункта «Кэшируемый»
В противном случае не делать ничего, чтобы в случае неподходящего запроса пользователя перехватывал роутер 404 ошибки.
Если вам нужно получить плейсхолдер, используйте [[+value]]
Но это лишние запросы к бд, т.е. итоговая скорость обработки будет ниже.
— качаете какое-нибудь дополнение аля switch
— в плагине, в зависимости от совпадения, передаете плейсхолдер user_page_type
— создаете чанк с оформлением под каждый «тип» страницы (основная, список пользователей, комментарии, избранное)
— далее, в шаблоне списка пользователей:
(пояснение по поводу структуры чанков)
Например:
1. Есть страница /users/ (список всех пользователей), со своим шаблоном, отображающий, допустим, всех пользователей.
2. В плагине, при совпадении шаблона адресного запроса, идет переадресация на /users/ методом sendForward + выставляются плейсхолдеры (допустим, user_id)
3. В шаблоне «списка всех пользователей» проверяем наличие этого плейсхолдеры и, исходя из результата, подставляем нужные данные:
Используя феном, можно так вообще кастомизировать виртуальную страницу без потери результативности, вплоть до сео. Вот, например, как реализована страница пользователя у меня:
После чего уже обращаться к его переменным
Есть 2 варианта:
— засунуть е-мейл в плейсхолдер:
и в последующем получать его в любом коде, инициализированном после записи плейсхолдера:
— воспользоваться дополнением clientconfig и вынести ваш е-мейл в системную настройку, которую в дальнейшем можно будет получить так: