Drupal 7:自定义模块模板中的自定义表单

时间:2019-08-07 16:23:58

标签: drupal-7 drupal-modules

我正在为Drupal 7网站创建一个自定义模块,我需要使用表单钩子创建一个表单,然后将其包含在自定义模块的模板中。

我在.module文件中创建了一个简单表单:

function my_login_form($form, &$form_state) {
  $form['email_address'] = array(
    '#type' => 'textfield',
    '#attributes' => array('placeholder' => t('Email Address')),
  );
  $form['phone'] = array(
    '#type' => 'password',
    '#attributes' => array('placeholder' => t('Password')),
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Login',
  );

  return $form;
}

在我的hook_menu()中,我创建了一条路由,“页面回调”指向该函数:

function my_login(){

  return theme('my_login_template');

}

在我的hook_theme()函数中,它指向.tpl:

function my_theme(){
  return array(

    'my_login_template' => array(
      'template' => 'login',
    ),
  );
}

如何将my_login_form放入login.tpl.php文件中?

感谢您提供的任何帮助或可以指向我的任何地方。

1 个答案:

答案 0 :(得分:1)

您需要将其传递给主题:

function my_login(){
  $form = drupal_get_form('my_login_form');
  return theme('my_login_template',  array('form' => render($form)));

}

进入您的tpl:

<?php print $form; ?>

清除缓存主题