Я искал повсюду примеры этого, но я не нашел ни одного. Я пытаюсь создать псевдоним для пути, который включает аргументы запроса, например profile?arg1=113.
Неважно, предоставлю ли я path_save()
простое строковое представление пути или предоставлю ли я его url()
.
url('profile', array('query' => array('arg1' => $uid)))
В любом случае ? и = отображаются как экранированные символы на странице администрирования псевдонимов URL, что, естественно, означает, что путь не может быть найден.
Как я могу сохранить? и = от побега?
19.12.12 Редактировать 1: более широкий контекст заключается в том, что я пытаюсь настроить псевдоним, когда Profile2 сохраняется (т.е. в mymodule_profile2_presave()) — тогда у меня будет вся информация, необходимая для программной настройки псевдонима.
19.12.12 Редактировать 2: я только что понял, что проблема не на стороне вставки - в таблице url_alias на самом деле есть неэкранированные символы. Проблема в том, что Drupal не декодирует путь перед его использованием...
20.12.12 Изменить 3: Найдено решение с использованием Redirect вместо пути псевдонимы. Перенаправление правильно декодирует строку запроса!