【问题标题】:Alter Drupal 7 Text list values when you don't know position of text list in form array当您不知道表单数组中文本列表的位置时,更改 Drupal 7 文本列表值
【发布时间】:2013-07-05 10:38:25
【问题描述】:

我正在创建一个模块来更改 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几乎会这样做,但不完全是,因为它要求我知道我正在寻找的元素的父母。

【问题讨论】:

    标签: drupal drupal-7 drupal-forms drupal-fields form-alter


    【解决方案1】:

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

    Tutorial 1a

    还为开发人员提供的example modules 包含出色的代码(带有文档),您可以根据需要对其进行修改。您必须查看 field_example 模块。

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

    Tutorial 2a Tutorial 2b

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多