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

Предисловие: начинаю параллельно изучать процессоры. Не знаю как осуществить задуманное. Укажите куда «копать». Есть форма обратной связи, переход на которую должен осуществляться только с определенных страниц. Соответственно, если перешли по прямой ссылке — то получили 404 страницу (или что-то в этом роде). Как в процессоре сделать проверку id ресурса с которого был совершен переход, и по результатам направить на ту или иную страницу (либо на форму обратной связи, либо 404 страницу, к примеру). Так же нужно с переходящей страницы передать данные в форму (надеюсь понятно сформулировал).

Comments

Копай в сторону проверки referer'а. Решение не идеальное, но идеальное только с установкой доп параметров или кук на страницах с которых должен быть осуществлен переход, что посложнее будет.

Можно немного поподробнее по поводу установки доп. параметров и кук? не совсем понятно. И все-таки — как передать данные в процессор или в форму? P.S. Если ошибся блогом — извиняйте.

Тут все просто на ресурсах с которых устанавливается переход ставим куку с id страницы

$_SESSION['res_id'] = $modx->resource->get('id');

а на странице с формой получаем ее данные

$ref_id=$_SESSION['res_id']

и дальше ref_id обрабатывай. Но я бы по простому поступил, к ссылке на страну с формой GET параметр добавлял бы (примерно так [[~id_страницы_с_формой]]?id=[[*id]]), а потом бы GET параметр обрабатывал. Но тут уже по желанию, главное предусмотри удаление ненужных сессий.

Сорри вместо кук пример с сессями написал, хотя он тоже рабочий)) Нельзя писать код пока утром кофе не попьешь)). Исправленный вариант:

$modx->resource->get('id');
setcookie('res_id', $id);
$ref_id = $_COOKIE['res_id'];

Правда в modx с куками не работал никогда, но вроде работать должно.