$form['taxonomy']['#weight'] = 1000
(我有两个vocab,所以它已经被渲染为一个字段),但是也没有工作.
我设置了我的模块的重量非常高,并在系统表中确认,它确实是网站上最高的模块 – 所以我都是出于想法.有什么建议么?
更新:
虽然我不完全确定如何,但我确实设法使分类学领域下沉到其他的一切,但现在我有一个相关的问题,希望更容易理解.在分类字段集中,我有两个项目(一个标签和多个选择),我想在hook_form_alter中添加一些指令,如下所示:
$form['taxonomy']['instructions'] = array( '#value' => "These are the instructions",'#weight' => -1,);
你猜到了,这出现在分类模块插入的术语之后.但是,如果我将其更改为字段集:
$form['taxonomy']['instructions'] = array( '#type' => 'fieldset',// <-- here '#title' => 'Instructions',// <-- and here for good measure '#value' => "These are the instructions",);
那么它就像我想的那样神奇地漂浮在顶端.我也尝试了textarea(这也是工作),并明确地说标记(这没有).
因此,基本上将类型从“标记”(默认IIRC)更改为“字段”,具有不再忽略其重要性.
解决方法
要澄清一下,如果你有这样的层次结构,
$element['foo']; $element['bar']; $element['bar']['baz']
您不能通过设置“baz”的重量来移动’baz’相对于’foo’.你必须将重量放在’bar’上(也可以移动它),或者拉出’baz’并将其与’foo’相同.
另一个可能的原因可能是CCK:如果你安装了CCK,它允许你设置自己的顺序以及admin / content / node-type /< yourNodeType> / fields下的其他字段.它通过注册预渲染回调content_alter_extra_weights()来更改顺序,因此这将在您在hook_form_alter中进行更改后运行.
编辑:更新以回答问题更新
当在forms api documentation中暗示的字段集中使用标记字段类型时,该类型具有特殊的行为:
Note: if you use markup,if your content is not wrapped in tags (generally
<p>
or<div>
),your content will fall outside of collapsed fieldsets.
看起来如果它不仅在崩溃的场地之外,还会拒绝在这些情况下尊重体重.将< p>中的标记字段的内容包起来标签使其符合机器的重量:
$form['taxonomy']['instructions'] = array( '#value' => "<p>These are the instructions</p>",);