drupal 6.19密码重置重定向

时间:2010-12-14 10:20:11

标签: php drupal-6

我在drupal 6.19中尝试在提交到'alter location'然后用户页面后重定向'user / password'页面。

我在主题钩子中使用以获取预处理功能,在其中我将$ variables编辑为:

$variables['form']['#action'] = 'alter location';

然后我使用drupal_render()。

在drupal调试中我看到#action设置为'alter location'但是在 html标签我仍然看到action ='user / password',它不会将我重定向到所需的位置。

提前致谢

3 个答案:

答案 0 :(得分:1)

感谢comment

    /**
* Implementation of hook_form_alter().
*/
function jm_form_alter(&$form, $form_state, $form_id) {
  if (isset($form['#node']) && $form['#node']->type .'_node_form' == $form_id) {
    $form['buttons']['submit']['#submit'][] = 'jm_redirect_handler';
  }
}

/**
* Attaches the redirect to the submitted form.
*
* @param unknown_type $form
* @param unknown_type $form_state
* @return unknown
*/
function jm_redirect_handler($form, &$form_state) {
  if ($form_state['nid']) {
    // reloading as I do not know the node type context. You probably do not need to :), just set the redirect using $form_state['nid']
    $node = node_load(array('nid' => $form_state['nid']));
    switch($node->type) {
      case 'project':
        $form_state['redirect'] = 'projects/'. $node->nid;
    }
  }
}

我找到了有效的解决方案。

答案 1 :(得分:0)

在Drupal表单中的工作方式如下:用户请求包含表单的页面。函数创建构成该表单的结构化数组。此数组在主题图层中呈现。如果用户提交表单,Drupal会调用相同的例程来重新构建结构化数组。但现在它用于验证和处理用户输入。如果处理例程返回路径或设置了?destination#redirect,Drupal会执行内部重定向。如果不是,则再次显示相同的表格。然后,只有那时你的代码在主题层执行。但是注入#redirect要迟到了。 Drupal不会再看它了。

更改#action毫无意义,因此用户输入被发送到Drupal菜单系统转换的URL,并调用不期望也不处理输入的例程。

尝试path redirect模块。如果不起作用,请按照instructions to create a custom module进行操作。

答案 2 :(得分:0)

感谢!!!

我通过使用来解决它 - > hook_form_FORM_ID_alter函数就像.... mymodulename_form_FORM_ID_alter

在这里看到link text

这就是我所做的,它为我完成了这项工作:

function mymodulename_form_FORM_ID_alter(& $ form){   $ form ['#action'] ='alter_location'; }