19 мая 2015 г., 15:05

получить id ресурса с которого был совершен переход

Предисловие: начинаю параллельно изучать процессоры. Не знаю как осуществить задуманное. Укажите куда «копать». Есть форма обратной связи, переход на которую должен осуществляться только с определенных страниц. Соответственно, если перешли по прямой ссылке — то получили 404 страницу (или что-то в этом роде). Как в процессоре сделать проверку id ресурса с которого был совершен переход, и по результатам направить на ту или иную страницу (либо на форму обратной связи, либо 404 страницу, к примеру). Так же нужно с переходящей страницы передать данные в форму (надеюсь понятно сформулировал).
Копай в сторону проверки referer'а. Решение не идеальное, но идеальное только с установкой доп параметров или кук на страницах с которых должен быть осуществлен переход, что посложнее будет.
Можно немного поподробнее по поводу установки доп. параметров и кук? не совсем понятно. И все-таки — как передать данные в процессор или в форму? P.S. Если ошибся блогом — извиняйте.
Тут все просто на ресурсах с которых устанавливается переход ставим куку с id страницы
$_SESSION['res_id'] = $modx->resource->get('id');
а на странице с формой получаем ее данные
$ref_id=$_SESSION['res_id']
и дальше ref_id обрабатывай. Но я бы по простому поступил, к ссылке на страну с формой GET параметр добавлял бы (примерно так [[~id_страницы_с_формой]]?id=[[*id]]), а потом бы GET параметр обрабатывал. Но тут уже по желанию, главное предусмотри удаление ненужных сессий.
Сорри вместо кук пример с сессями написал, хотя он тоже рабочий)) Нельзя писать код пока утром кофе не попьешь)).Исправленный вариант 1)
$modx->resource->get('id'); setcookie('res_id',$id);
2)
$ref_id=$_COOKIE['res_id']
правда в modx с куками не работал никогда, но вроде работать должно.

Добавить комментарий