Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Drupal 7.0,hook\u form\u alter()_Forms_Drupal_Hook_Alter - Fatal编程技术网

Forms Drupal 7.0,hook\u form\u alter()

Forms Drupal 7.0,hook\u form\u alter(),forms,drupal,hook,alter,Forms,Drupal,Hook,Alter,我在drupal的文章/博客表单中添加了一个自定义选择列表。我使用选择列表字段API在hook\u form\u alter()中创建了一个选择列表。我需要一种方法来持久化为选择列表选择的值,这样当用户编辑文章/博客时,他们会看到选择列表中的选择/持久化值,而不是默认值。 如果您能给我一些建议,我将不胜感激 谢谢。我肯定您不只是添加列表字段是有原因的,但我会通过将数据存储在节点本身来实现这一点 将文本字段添加到节点(或适合您的数据类型的任何内容),然后通过将类型设置为hidden将其隐藏在hoo

我在drupal的文章/博客表单中添加了一个自定义选择列表。我使用选择列表字段API在hook\u form\u alter()中创建了一个选择列表。我需要一种方法来持久化为选择列表选择的值,这样当用户编辑文章/博客时,他们会看到选择列表中的选择/持久化值,而不是默认值。 如果您能给我一些建议,我将不胜感激


谢谢。

我肯定您不只是添加列表字段是有原因的,但我会通过将数据存储在节点本身来实现这一点

将文本字段添加到节点(或适合您的数据类型的任何内容),然后通过将类型设置为hidden将其隐藏在hook_form_alter()中,或者使用类似模块的字段权限仅允许管理员访问该字段。(如果您仅将其用于这一个目标,可能会比您需要的开销更多)

然后使用hook_node_pressave()从自定义选择字段中获取值,并将其指定给隐藏文本字段值


保存一次后,您可以将选择列表的默认值设置为隐藏文本字段的值。

Coder1,是的,我之所以不使用常规列表字段,是因为该字段的值是从定期更新的目录中动态读取的。谢谢你的回复。我要试一试。