You are here

function rules_forms_attribute_set_validate in Rules Forms Support 7.2

Validation callback for set attribute actions.

1 string reference to 'rules_forms_attribute_set_validate'
rules_forms_rules_action_info in ./rules_forms.rules.inc
Implements hook_rules_action_info().

File

./rules_forms.rules.inc, line 365
Rules events, conditions, and actions hooks for Rules Forms module.

Code

function rules_forms_attribute_set_validate(RulesAbstractPlugin $element) {
  $element->settings += array(
    'data:select' => NULL,
  );
  $info = $element
    ->applyDataSelector($element->settings['data:select'])
    ->info();
  if (strpos($element->settings['data:select'], ':') !== FALSE) {
    if (empty($info['setter callback'])) {
      throw new RulesIntegrityException(t('The selected data property does not support reading.'));
    }
    elseif (!isset($info['attribute info'])) {
      throw new RulesIntegrityException(t('The selected data property is not a form element attribute.'));
    }
    elseif (isset($element->settings['value']) && isset($info['attribute info']['validate callback']) && is_callable($info['attribute info']['validate callback'])) {
      $info['attribute info']['validate callback']($element->settings['value'], $element);
    }
  }
}