artemspb 19 мая 2015 0 4
Предисловие: начинаю параллельно изучать процессоры.
Не знаю как осуществить задуманное. Укажите куда «копать».
Есть форма обратной связи, переход на которую должен осуществляться только с определенных страниц. Соответственно, если перешли по прямой ссылке — то получили 404 страницу (или что-то в этом роде).
Как в процессоре сделать проверку id ресурса с которого был совершен переход, и по результатам направить на ту или иную страницу (либо на форму обратной связи, либо 404 страницу, к примеру).
Так же нужно с переходящей страницы передать данные в форму (надеюсь понятно сформулировал).
4 комментария
В
Василий Краковецкий 20 мая 2015г в 00:05 #
Копай в сторону проверки referer'а. Решение не идеальное, но идеальное только с установкой доп параметров или кук на страницах с которых должен быть осуществлен переход, что посложнее будет.
a
artemspb 20 мая 2015г в 12:47 #
Можно немного поподробнее по поводу установки доп. параметров и кук? не совсем понятно.
И все-таки — как передать данные в процессор или в форму?
P.S. Если ошибся блогом — извиняйте.
a
als1984 22 мая 2015г в 07:07 #
Тут все просто на ресурсах с которых устанавливается переход ставим куку с id страницы
$_SESSION['res_id'] = $modx->resource->get('id');

а на странице с формой получаем ее данные
$ref_id=$_SESSION['res_id'] 

и дальше ref_id обрабатывай.
Но я бы по простому поступил, к ссылке на страну с формой GET параметр добавлял бы (примерно так [[~id_страницы_с_формой]]?id=[[*id]]), а потом бы GET параметр обрабатывал. Но тут уже по желанию, главное предусмотри удаление ненужных сессий.
a
als1984 22 мая 2015г в 07:33 #
Сорри вместо кук пример с сессями написал, хотя он тоже рабочий)) Нельзя писать код пока утром кофе не попьешь)).Исправленный вариант 1)
$modx->resource->get('id');
setcookie('res_id',$id);
2)
$ref_id=$_COOKIE['res_id']
правда в modx с куками не работал никогда, но вроде работать должно.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.