Drupal 7自定义表单模块

时间:2015-03-24 07:42:09

标签: drupal-7 form-api

我的联系我们页面上没有显示使用自定义模块的表单。我创建了.module文件和.info文件,然后激活了该模块。以下是我在.module文件中包含的代码

function custom_form_module_form($form,&$form_state) {
$form['name'] = array(
'#type' => 'textfield',
);
$form['company'] = array(
'#type' => 'textfield',
);
$form['phone'] = array(
'#type' => 'textfield',
);
$form['email'] = array(
'#type' => 'textfield',
);
$form['message'] = array(
'#type' => 'textfield',
);
return $form; 
}

并在我的template.php文件中

function custom_form_module_form_theme($existing, $type, $theme, $path) {
$items['custom_form_module_form'] = array(
'render element' => 'form',
'template' => 'page--contact-us',
'path' => drupal_get_path('theme', 'escorts').'/templates');
return $items;
}

并在我的page--contact-us.tpl.php中,我使用以下行调用表单的单独字段但不起作用。

<?php echo drupal_render($form['name']); ?>

“此处custom_form_module=my module namepage--contact-us.tpl.php=my template file以及escorts=my theme name

1 个答案:

答案 0 :(得分:0)

要在联系页面中打印表单,您可能无法使用template.php

简单地:

$my_form = drupal_get_form('custom_form_module_form');
print drupal_render($my_form);

<强>更新

template.php

更改表单标记
function theme_my_form_1($form) {
    $vars['element'] = $form;

    $markup = '';
    $markup .= '<div id="form-name-wrapper">'
        . drupal_render($form['name'])
        . '</div>';
    // continue altering the markup

    $vars['element']['#children'] = $output;
    return theme_form($vars);
}

然后,在.tpl.php文件中:

$my_form = drupal_get_form('custom_form_module_form');
print theme_my_form_1($my_form);