Drupal预处理商务功能

时间:2018-09-18 09:06:07

标签: drupal drupal-7

我需要从“商业定价属性”文件中预处理一个函数,这里是该函数:function commerce_pricing_attributes_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {...}

我不知道如何进行预处理(如果可能)。

此函数在后台创建一些元素,而我想做的就是根据这些元素的选项类型为这些元素赋予颜色。如果是保险选项,则有一种颜色;如果是房租选项,则有另一种颜色。

我尝试使用这样的更改来做到这一点:function my_module_field_widget_commerce_pricing_attributes_custom_widget_form_alter(&$element, &$form_state, $context) {...}

但是我没有我需要的所有信息(选项的类型)。

是否可以对函数进行预处理,以便我可以使用它们在模块中使用的所有值?

1 个答案:

答案 0 :(得分:0)

我认为您需要使用此钩子:hook_field_widget_form_alter

它允许您覆盖(或添加)应用于字段的窗口小部件

function my_module_field_widget_form_alter(&$element, &$form_state, $context) {

  if ($context['field']['type'] == 'mytype') { // you can use another condition on field name or whatever 

    // Loop through the element children (there will always be at least one).
    foreach (element_children($element) as $key => $child) {
      // Add the new process function to the element
      $element[$key]['#process'][] = 'my_custom_callback_field_widget_process';
    }
  }
}

function my_custom_callback_field_widget_process($element, &$form_state, $form){
// do your stuff
  return $element;
 }

NB:如果您不知道变量的结构,则将其转储为您想要的目标