1

我使用自定义模块的表单没有出现在我的联系我们页面上。我创建了我的.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 fileescorts=my theme name

4

1 回答 1

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);
于 2015-03-24T08:38:37.140 回答