Drupal:如何避免此表单项被折叠?

Drupal:如何避免此表单项被折叠?,drupal,drupal-6,Drupal,Drupal 6,我真的不明白为什么这不起作用。我希望避免折叠特定的表单项 这是我要修改的元素(在使用下面的代码进行更改后): 这是我在hook\u form\u alter中的代码(我确信表单已被代码修改): 但它不起作用。元素始终处于折叠状态。我已经刷新了所有的缓存 更新2: $form['taxonomy']['#required'] = TRUE; $form['taxonomy']['tags']['#required'] = TRUE; $form['taxonomy']['tags'][5]['

我真的不明白为什么这不起作用。我希望避免折叠特定的表单项

这是我要修改的元素(在使用下面的代码进行更改后):

这是我在hook\u form\u alter中的代码(我确信表单已被代码修改):

但它不起作用。元素始终处于折叠状态。我已经刷新了所有的缓存

更新2

$form['taxonomy']['#required'] = TRUE;
$form['taxonomy']['tags']['#required'] = TRUE;
$form['taxonomy']['tags'][5]['#required'] = TRUE;

应该有一些主题或预处理功能可以改变输出的打印方式,我看不到$form数组中文本字段下的复选框。。。
这些复选框的位置可能是字段集。

应该有一些主题或预处理功能来改变输出的打印方式,我在$form数组的textfield下看不到复选框。。。
这些复选框的位置可能是字段集。

从您发布的数组中,看起来您试图在分类模块将表单元素实际转换为字段集之前对其进行调整(请注意,该数组中没有
'#type'=>'fieldset'
声明)。如果您查看一下,您可以看到,正是在
hook\u form\u alter()
实现中,节点中的分类数组“转换”为实际的forms API元素

因此,我的猜测是,您的调整驻留在一个
hook\u form\u alter()
实现中,该实现在分类模块之前运行,因此,您对折叠状态的声明在设置之后会立即被分类模块覆盖


尝试使用比分类模块更高的方法,看看这是否会改变情况。(请注意,更改权重可能会影响模块所做的其他事情,因此在执行此操作后请仔细测试!)

从您发布的数组中,看起来您试图在taxonomy模块将表单元素实际转换为字段集之前对其进行调整(请注意,该数组中没有
'#type'=>'fieldset'
声明)。如果您查看一下,您可以看到,正是在
hook\u form\u alter()
实现中,节点中的分类数组“转换”为实际的forms API元素

因此,我的猜测是,您的调整驻留在一个
hook\u form\u alter()
实现中,该实现在分类模块之前运行,因此,您对折叠状态的声明在设置之后会立即被分类模块覆盖


尝试使用比分类模块更高的方法,看看这是否会改变情况。(请注意,更改权重可能会影响模块执行的其他操作,因此请在完成后仔细测试!)

标签类型是什么?fieldset?@Tarentrulle uhm,这是该领域的标题。等等,我附加了一个字段的屏幕截图,以使其更清晰(显然是在我点击打开折叠后),如果您可以发布表单的整个打印输出。我有和你一样的问题@Tarentrulle@mirzu我已经将链接添加到完整的输出(@Tarentrulle)标签类型是什么?fieldset?@Tarentrulle uhm,这是该领域的标题。等等,我附加了一个字段的屏幕截图,以使其更清晰(显然是在我点击打开折叠后),如果您可以发布表单的整个打印输出。我有和你一样的问题@Tarentrulle@mirzu我已经将链接添加到完整输出(@Tarentrulle)中,我想我可以为hook\u form\u alter中的所有元素指定“collasing”属性。而是一些模块绕过它?通过处理之前的元素?顺便说一句,这个模块是分类法超级选择(drupal.org/project/Taxonomy_super_select)@Patrick@Henrik Opel说到点子上了,在分类法超级选择中,有一个奇妙的“分类法超级选择形式改变”,它“unset($form['Taxonomy']['tags'][$vid])”然后模块重新生成“$form['taxonomy']['tags'][…]”。我没有深入到代码中,但我看起来如果您按照要求设置分类,它将被扩展。我添加了“Required”属性,但它不起作用。我已经用最新的代码更新了这个问题。此外,我不能将其设置为“必需”,因此这肯定是将来的另一个问题。我想我可以在hook\u form\u alter中为所有元素指定“collasing”属性。而是一些模块绕过它?通过处理之前的元素?顺便说一句,这个模块是分类法超级选择(drupal.org/project/Taxonomy_super_select)@Patrick@Henrik Opel说到点子上了,在分类法超级选择中,有一个奇妙的“分类法超级选择形式改变”,它“unset($form['Taxonomy']['tags'][$vid])”然后模块重新生成“$form['taxonomy']['tags'][…]”。我没有深入到代码中,但我看起来如果您按照要求设置分类,它将被扩展。我添加了“Required”属性,但它不起作用。我已经用最新的代码更新了这个问题。此外,我不能让它成为“必需的”,所以这肯定会是未来的另一个问题。好的,我们更接近了,但仍然不完美。我已经减少了模块分类法(-9)和superselect分类法(-10)的权重,并将新的屏幕截图附在问题上。正如您所看到的,虽然有了改进,但仍然没有显示复选框。我试图利用这些值(即分类学(-11或-10)但我只能得到这个结果或完全崩溃。一般来说,我会尝试让我的自定义模块成为最后一个运行的模块,因此我会给它一个非常高的权重。因为这样你就可以确信你得到的阵列不会被contrib模块弄乱。我会尝试将你的模块放在最后,然后发布阵列that是输出。应该能够从there@Patrick:我建议更改您的模块权重,而不是其他模块的权重。您永远不应该更改核心模块的权重,直到您确切知道自己在做什么!此外,Taxonomy Super Select会将其权重设置为[Taxonomy weight]+1,因此它希望在后面运行
 $form['taxonomy']['#collapsed'] = 0;
 $form['taxonomy']['tags']['#collapsed'] = 0;
 $form['taxonomy']['tags'][2]['#collapsed'] = 0;

 $form['taxonomy']['#collapsible'] = 0;
 $form['taxonomy']['tags']['#collapsible'] = 0;
 $form['taxonomy']['tags'][3]['#collapsible'] = 0;
$form['taxonomy']['#required'] = TRUE;
$form['taxonomy']['tags']['#required'] = TRUE;
$form['taxonomy']['tags'][5]['#required'] = TRUE;