我正在尝试为自定义类型创建节点表单.我启用了有机组和分类法,但希望它们的元素以非标准顺序出现.所以我已经实现hook_form_alter并将子数组的#weight属性设置og_nodeapi为-1000,但它仍然在分类和菜单之后.我甚至尝试将子阵列更改为字段集(强制实际渲染),但没有骰子.我也尝试过设置
$form['taxonomy']['#weight'] = 1000
Run Code Online (Sandbox Code Playgroud)
(我有两个词汇,所以它已经被渲染为一个字段集),但这也没有用.
我将模块的权重设置得非常高,并在系统表中确认它确实是网站上最高的模块 - 所以我完全没有想法.有什么建议?
更新:
虽然我不确定如何,但我确实设法让分类法字段集低于其他一切,但现在我有一个相关的问题,希望更容易理解.在分类法字段集中,我有两个项目(标签和多选),我想在hook_form_alter中添加一些指令,如下所示:
$form['taxonomy']['instructions'] = array(
'#value' => "These are the instructions",
'#weight' => -1,
);
Run Code Online (Sandbox Code Playgroud)
你猜对了,这出现在分类模块插入的术语之后.但是,如果我将其更改为字段集:
$form['taxonomy']['instructions'] = array(
'#type' => 'fieldset', // <-- here
'#title' => 'Instructions', // <-- and here for good measure
'#value' => "These are the instructions",
'#weight' => -1,
);
Run Code Online (Sandbox Code Playgroud)
然后它像我想要的那样神奇地漂浮到顶端.我也试过textarea(这也有效)并明确地说标记(这没有).
所以基本上,将类型从"标记"(默认的IIRC)更改为"fieldset"具有不再忽略其权重的效果.