1

我正在创建一个模块来更改 Drupal 7 文本列表字段的输出。

我知道我可以使用hook_form_alter来做到这一点,问题是文本字段在数组结构中的不同位置和不同深度以不同的形式输出。

在一种情况下,它可能在 -

$form['elements']['some_array_key']['fields']['my_text_list_field'];

在其他情况下,它可能位于 -

$form['fields']['some_array_key'][0]['my_text_list_field'];

如何可靠地定位和更改 Drupal 表单数组中的 ['my_text_list_field'] ,而不管它包含在其中的数组结构如何?

drupal_array_nested_key_exists 几乎做到了,但并不完全,因为它要求我知道我正在寻找的元素的父母。

4

1 回答 1

0

对于您的用例,我建议您尝试创建一个字段小部件

教程 1a

开发人员的示例模块还包含出色的代码(带有文档),您可以根据需要对其进行修改。您将不得不查看field_example模块。

在许多情况下,您甚至可能希望在字段小部件中提供显示格式化程序,因此,如果您想更改字段的输出,而无需事先了解字段的使用方式和使用位置,那么您需要创建一个自定义字段格式化程序

教程 2a 教程 2b

于 2013-07-05T22:11:39.007 回答