php - Drupal:注册后留在同一页面

标签 php jquery drupal

我有一个包含注册表单的 block ,我需要人们注册并停留在同一个页面上,这可能吗?

我尝试了登录目标模块,但该功能似乎仅适用于登录而不是注册。注册继续发送到用户个人资料页面。

最佳答案

正如您在 user_register_submit submit handler 中看到的那样, $form_state['submit'] 是硬编码的。

这意味着 user_register_submit 将定义目的地,除非您覆盖它。

您可以通过添加自己的提交处理程序(伪代码)来做到这一点。

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == "user_register") {
    //Look at the code in user_register_submit for all the ifs and switches to only
    // add this extra handler when a normal user signs up.
    $form['#submit'][] = "_mymodule_user_register_submit";
  }
}

function _mymodule_user_register_submit($form, &$form_state) {
  $form_state['redirect'] = $_GET['q']; //Adds the current url as redirect.
}

然后,使用系统表中的权重,确保您的模块在用户模块之后启动。否则,它们按字母顺序调用,用户模块位于 mymodule 之后;再次重置重定向。

永远不要在提交处理程序中使用drupal_goto(),因为它们会停止所有处理并重定向用户,导致许多模块失败,甚至经常导致数据库损坏和不一致。

关于php - Drupal:注册后留在同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6659812/

相关文章:

php - 在 PHP 中使用变量作为函数名

javascript - datepicker - 计算用户的年龄

jquery - 使用 Monaca.io 在 Cordova 中持久存储数据

javascript - 使用 $http.post 和 resangular post 时出现 SyntaxError : Unexpected token F,

drupal - *简单* FLV 播放器(无 Logo ,无广告)

php - 匹配 MySQL 查询中的数组值

php - 如何转义 PHP 中回显的 Javascript 代码

php - Mysql 搜索不搜索整个字符串

jquery - HTML5弹出框

javascript - Drupal 7 jquery block 显示为文本