Drupal:#weight和表单

时间:2012-07-26 08:18:37

标签: forms drupal

我正在编写一个模块,其中包含一堆按钮的字段集使用hook_form_alter添加到编辑/添加节点表单。

字段集(按钮)应该连接到字段的某个小部件。例如,可能是内容类型为“myContentType”的正文字段小部件。我总是希望字段集和字段的窗口小部件一起放在窗体中,最好是在窗口小部件上方的字段集中。所以为了达到这个目的,我想我会使用表单元素的#weight属性。

所以在hook_form_alter中我设置了:

$form['buttonFieldset'][#weight] = $form['body']['#weight'] - 1; 

之后我检查了$ form数组,并且按钮字段的权重确实设置为比相关小部件小的权重。我认为这会将它放在身体的文本区域正上方,但这并没有发生。有谁知道为什么不呢?或者其他一些方法来实现我想要的目标?

1 个答案:

答案 0 :(得分:0)

尝试将您的fielsdset权重设置为正文字段的权重,并将列表中的正文字段移动到较低位置。所以:

$form['buttonFieldset']['#weight'] = $form['body']['#weight'];
...
$form['body']['#weight'] = $form['body']['#weight'] + 1;

这很有效,特别是如果你的身体字段正上方有标题,因为Drupal似乎不喜欢移动标题字段,尽管它更改了#weight。我无法移动title以便在titlebody之间放置一些内容,但我可以将body向下移动。