Drupal,template.php $ form名称来自哪里?

时间:2010-06-16 07:18:45

标签: drupal drupal-6

我想自定义我的Drupal后端表单。

我正在使用template.php文件..即

  $form['menu']['#collapsed'] = true;
  $form['author']['#collapsed'] = true;
  $form['buttons']['#weight']  = 100;

但我想知道部分名称(菜单,作者,按钮)的来源。 (它们不是html代码中的id或类,所以我猜有一个索引,其中存储了所有名称。

我在哪里可以获得部分名称的完整列表?

例如,修订和发布部分的名称是什么? '修订','发布','发布'不起作用。

感谢

2 个答案:

答案 0 :(得分:2)

如果我没弄错的话,你想要看到一些形式的结构。 drupal中的每个表单都有一个Id。首先,您需要知道form_id。您可以使用自定义模块和hook_form_alter的实现来执行此操作:

function mymodule_form_alter(&$form, $form_state, $form_id) {
    drupal_set_message($form_id);
}

找到Id后,更改代码段以打印出表单结构:

function mymodule_form_alter(&$form, $form_state, $form_id) {
    if ($form_id == 'a_form_id') {
        drupal_set_message(print_r('<pre>'. $form .'</pre>', true));
        // If you have installed Devel module, following line is much more readable:
        // dpm($form);
    }
}

现在当你转到包含表单的页面时,你会看到它的结构。每个表单元素都表示为一个数组,例如,一个文本字段可以是这样的:

$form['name'] = array(
    '#type' => 'textarea',
    '#title' => t('Username')
);

在Drupal网站上查找Form API以获取更多信息。

答案 1 :(得分:0)

我认为实际上没有一个像这样的表单的命名系统。在定义表单时,名称很可能是相同的,这可能是真正的。 Drupal核心可能是一致的,但是如果你想添加contrib模块,你就不能确定任何东西。