我正在编写一个模块,其中包含一堆按钮的字段集使用hook_form_alter添加到编辑/添加节点表单。
字段集(按钮)应该连接到字段的某个小部件。例如,可能是内容类型为“myContentType”的正文字段小部件。我总是希望字段集和字段的窗口小部件一起放在窗体中,最好是在窗口小部件上方的字段集中。所以为了达到这个目的,我想我会使用表单元素的#weight属性。
所以在hook_form_alter中我设置了:
$form['buttonFieldset'][#weight] = $form['body']['#weight'] - 1;
之后我检查了$ form数组,并且按钮字段的权重确实设置为比相关小部件小的权重。我认为这会将它放在身体的文本区域正上方,但这并没有发生。有谁知道为什么不呢?或者其他一些方法来实现我想要的目标?
答案 0 :(得分:0)
尝试将您的fielsdset权重设置为正文字段的权重,并将列表中的正文字段移动到较低位置。所以:
$form['buttonFieldset']['#weight'] = $form['body']['#weight'];
...
$form['body']['#weight'] = $form['body']['#weight'] + 1;
这很有效,特别是如果你的身体字段正上方有标题,因为Drupal似乎不喜欢移动标题字段,尽管它更改了#weight
。我无法移动title
以便在title
和body
之间放置一些内容,但我可以将body
向下移动。