我正在创建一个模块来改变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 几乎做到了,但并不完全,因为它要求我知道我正在寻找的元素的父母。
答案 0 :(得分:0)
对于您的使用案例,我建议您尝试创建字段小部件。
开发人员example modules也包含优秀的代码(包含文档),您可以根据自己的需要进行修改。您必须查看 field_example 模块。
在许多情况下,您甚至可能希望提供显示格式化程序以及字段小部件,因此如果您想要更改字段的输出而不事先了解其使用方式和位置,那么您需要创建自定义字段格式化程序。