Параметр назначения Drupal на странице учетной записи пользователя не является постоянным? - PullRequest
1 голос
/ 06 мая 2010

Если пользователь заходит:

user/register?destination=node/add/listing

И затем они нажимают на вкладки «Войти» или «Запросить новый пароль», это НЕ БУДЕТ сохранять параметр адресата в адресной строке. То есть После нажатия «Войти» и входа в систему пользователь фактически не окажется на:

node/add/listing

Я думал о редактировании основного пользовательского модуля, но даже не мог найти подходящего места для редактирования, и я знаю, что это действительно плохое решение.

Кто-нибудь знает, как я могу сделать это правильно?

Ответы [ 3 ]

1 голос
/ 14 июля 2010

Я сталкивался с этим при поиске той же проблемы (я пытался найти основную проблему, но не смог). В любом случае, решение, которое я в итоге поставил, более сложное, чем должно быть, но оно выполняет свою работу.

Сначала загрузите и установите модуль url_alter . Затем в пользовательском модуле реализуем hook_url_outbound_alter (). Ниже приведен код, который я использовал, но возможны многие варианты.

/**
 * Implementation of hook_url_outbound_alter().
 *
 * If the url_alter module is enabled, and email verification is disabled,
 * this will pass the destination parameter to the registration and login tabs.
 */
function os_custom_url_outbound_alter(&$path, &$options, $original) {
  if (user_is_anonymous() && in_array($original, array('user', 'user/register', 'user/login')) && empty($options['query']) && !variable_get('user_email_verification', TRUE)) {
    $options['query'] = drupal_get_destination();
  }
}
0 голосов
/ 11 апреля 2013

Я думаю, что вы можете сделать это, просто добавив тематические ссылки в меню. Я написал решение здесь http://tappetyclick.com/blog/2013/04/11/maintain-destination-drupal-user-account-menu#.UWbt8hcmdIE для Drupal 6

0 голосов
/ 07 мая 2010

Ссылки, о которых вы говорите, являются статическими ссылками, очень похожими на вашу навигацию. Они кэшируются и т. Д., И это не то, что вы можете легко изменить. Поведение совершенствуется большую часть времени. Как правило, вы не хотите переносить строки запросов на другие ссылки.

Для этого, я думаю, вам лучше не делать это напрямую в Drupal, а делать это с помощью JavaScript. Вы можете установить переменную js или проверить document.URL.

Возможно, вы могли бы сделать это в Drupal, но, учитывая конкретный случай, это не стоило бы усилий

...