我是drupal的新手,需要创建一个我已经成功完成的登录表单。但是当我登录时,我希望将表单切换到另一种形式,您可以在其中编辑您的详细信息。
我无法找到如何在表格之间切换。
<?php
/**
* Implements hook_help.
*
* Displays help and module information.
*
* @param path
* Which path of the site we're using to display help
* @param arg
* Array that holds the current path as returned from arg() function
*/
function login_kms_help($path, $arg) {
switch ($path) {
case "admin/help#login":
return '<p>'. t("Creates login module") .'</p>';
break;
}
}
/**
* Implements hook_block_info().
*/
function login_kms_block_info() {
$blocks['login_kms'] = array(
'info' => t('Login KMS'), //The name that will appear in the block list.
'cache' => DRUPAL_CACHE_PER_ROLE, //Default
);
return $blocks;
}
function login_kms_block_view($delta = '') {
$block = array();
if($delta == 'login_kms') {
$block['subject'] = 'Login';
$block['content'] = drupal_render(drupal_get_form('login_kms_form_mode0'));
} else if($delta == 'login_kms'){
$block['subject'] = 'Edit';
$block['content'] = drupal_render(drupal_get_form('login_kms_form_mode1'));
}
return $block;
}
function login_kms_form_mode0() {
$form['username'] = array(
'#type' => 'textfield',
'#title' => t('Username:'),
);
$form['password'] = array(
'#type' => 'password',
'#title' => t('Password:'),
);
$form['Log in'] = array(
'#type' => 'submit',
'#value' => t('Log in'),
);
return $form;
}
function login_kms_form_mode1(){
$form['username'] = array(
'#type' => 'textfield',
'#title' => t('mode1'),
);
}
function login_kms_form_submit($form, &$form_state) {
$mysql_user = $form_state['values']['username'];
$mysql_pass = $form_state['values']['password'];
// drupal_set_message(t($mysql_pass));
// some logic
}
答案 0 :(得分:1)
第一种方法是使用drupal_goto(“my_path”)。 第二个,更“正确”是使用$ form_state ['redirect']或$ form ['#redirect'],就像这样;
function login_kms_form_submit($form, &$form_state) {
$mysql_user = $form_state['values']['username'];
$mysql_pass = $form_state['values']['password'];
// drupal_set_message(t($mysql_pass));
// some logic
$form_state['redirect'] = 'user/to_the_new_form';
}
答案 1 :(得分:0)
您只需使用drupal_goto()将登录用户重定向到其他表单。
global $user;
if(!empty($user->uid) || $user->uid > 0)
{
drupal_goto("my/new/page");
}
希望这有效......穆罕默德。