只有部分主题自定义形式

时间:2012-07-04 19:02:23

标签: drupal drupal-6

我构建了一个自定义模块来创建表单。现在我被困在了主题上。我已经有一个表单的CSS样式表,因为我的公司是政府的一部分,他们有预设的品牌。所以我想改变Drupal默认表单主题函数使用的HTML,从而实现正确的样式。

但只有表单的form-tag才会被呈现。字段集和元素不会呈现。删除主题功能后,默认主题就会启动并且表单正常呈现(但当然没有请求主题)。

到目前为止我尝试过:

添加了一个hook_theme函数来添加主题函数

function publicatieaanvraagformulier_theme() {
  return array(
    'publicatieaanvraagformulier_form' => array(
   'arguments' => array("element" => NULL)  
    ),
    'publicatieaanvraagformulier_fieldset' => array(
      'arguments' => array("element" => NULL)
    ),
    'publicatieaanvraagformulier_form_element' => array(
      'arguments' => array(
        "element" => NULL,
        "value" => NULL
      )
    )
  );
}

将['#theme']添加到form-element,fieldset-element和form-elements

$form['#theme'] = "publicatieaanvraagformulier_form";
$form['groep'] = array(
  '#title' => t("Please fill in your details"),
  '#type' => "fieldset",
  '#theme' => "publicatieaanvraagformulier_fieldset"
);
$form['groep']['organisatie'] = array(
  '#title' => t("Organization"),
  '#type' => "textfield",
  '#attributes' => array("class" => "text"),
  '#theme' => "publicatieaanvraagformulier_form_element"
);

添加了基于form.inc

中默认主题的实际主题功能
function theme_publicatieaanvraagformulier_form($element) {
function theme_publicatieaanvraagformulier_fieldset($element)
function theme_publicatieaanvraagformulier_form_element($element, $value)

我没有包含这些函数的代码,因为即使使用默认的主题函数代码,它们也不起作用。因此我认为它们不是问题的根源。

表格名为

//Get the form
$form = drupal_get_form('publicatieaanvraagformulier');

//Add messages
$errors = form_get_errors();
if (!empty($errors)) {
  $output .= theme("status_messages","error");
} 

//Show form
$output .= $form;
return $output;

我没有找到类似'复杂'的表格形式的例子,但是从书籍和在线搜索拼凑了前者。

希望有人能回答这个问题(指出我犯的错误)。

问候 Jeroen

0 个答案:

没有答案