You are here

function eck__properties__form_validate in Entity Construction Kit (ECK) 7.2

Same name and namespace in other branches
  1. 7.3 eck.properties.inc \eck__properties__form_validate()

Properties form validation callback.

File

./eck.properties.inc, line 320
Handles properties attached to entites created through ECK.

Code

function eck__properties__form_validate($form, &$state) {
  if ($state['values']['op'] == t('Add Property')) {
    if (isset($state['values']['property_behavior'])) {
      $property_behavior = $state['values']['property_behavior'];
      $behavior_plugins = ctools_get_plugins('eck', 'property_behavior');
      if (isset($behavior_plugins[$property_behavior]['unique']) && $behavior_plugins[$property_behavior]['unique']) {
        foreach ($state['values']['new_properties'] as $property_name => $property_info) {
          if ($property_info['behavior'] == $property_behavior) {
            form_set_error('property_behavior', t("There can be only one property with '@name' behavior per entity.", array(
              '@name' => $behavior_plugins[$property_behavior]['label'],
            )));
          }
        }
      }
    }
    if (!empty($state['values']['property_name']) && in_array($state['values']['property_name'], array(
      'id',
      'type',
    ))) {
      form_set_error('property_name', t('Property name "@name" is already used by the module. Please choose another name.', array(
        '@name' => $state['values']['property_name'],
      )));
    }
  }
}