Возвратный url и плейсхолдеры в параметрах Login.
Привет.
Пытался реализовать возможность возвращения пользователя на страницу, с которой его выбросило на страницу авторизации (например в случае истекшей сессис).
Решил передать id возвратной страницы в GET параметре «returnto». После чего на странице авторизации написал близкое к такому:
GET_args_to_placeholders это простой сниппет пытающийся забить GET параметры в одноименные плейсхолдеры с префиксом «get.».
Но Login ни в какую не хочет брать эти параметры и постоянно использует значение default=`66`.
Подскажите, пожалуйста, как можно реализовать подобный механизм. И ещё интересно было бы узнать почему может не работать плэйсхолдер в параметрах. Во многих других сниппетах я успешно подставлял плейсхолдеры в параметры и всё работало.
Пытался реализовать возможность возвращения пользователя на страницу, с которой его выбросило на страницу авторизации (например в случае истекшей сессис).
Решил передать id возвратной страницы в GET параметре «returnto». После чего на странице авторизации написал близкое к такому:
[[!GET_args_to_placeholders]]
[[!Login?
&loginResourceId=`[[+get.returnto:default=`66`]]`
]] GET_args_to_placeholders это простой сниппет пытающийся забить GET параметры в одноименные плейсхолдеры с префиксом «get.».
Но Login ни в какую не хочет брать эти параметры и постоянно использует значение default=`66`.
Подскажите, пожалуйста, как можно реализовать подобный механизм. И ещё интересно было бы узнать почему может не работать плэйсхолдер в параметрах. Во многих других сниппетах я успешно подставлял плейсхолдеры в параметры и всё работало.
Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Попытка номер один:
Код сниппета test:
Результат: при авторизации попадаю на страницу 66.
Попытка номер два:
Код сниппета test:
Результат: авторизуемся с get-параметром returnto=66. Никуда не перебрасывает.
Попытка номер три:
Код сниппета test:
Результат: Это уже бессмысленный код. Хотел проверить насколько удивительная работа кода может быть вообще. Забиваю в get-параметр returnto значение 11. В итоге: в плэйсхолдере for_test значение 77, но Login при авторизации кидает на ресурс 66.
Не понимаю, каким образом значение в одной переменной в двух соседних строках имеет разное значение. При возвращении через return все влияния GET параметров будто игнорируются.
Пока решил проблему другим способом:
На странице вызываю сниппет isLoggedIn (идет вместе с Login).
Он использует метод $modx->sendUnauthorizedPage(); который работает таким необычным способом, что перебрасывает на страницу авторизации, но в адресной строке остается адресс старой страницы.
И если у Login просто убрать параметр &loginResourceId, то выходит, что при авторизации тебя кидает на страницу, откуда тебя выбросило.
вообще, я еще больше не понял, что вам нужно в итоге