You are here

function eck_property_behavior_invoke_plugin in Entity Construction Kit (ECK) 7.2

Same name and namespace in other branches
  1. 7.3 eck.property_behavior.inc \eck_property_behavior_invoke_plugin()

A general function to call specific functions in a property behavior plugin.

9 calls to eck_property_behavior_invoke_plugin()
eck_entity_delete in ./eck.module
Implements hook_entity_delete().
eck_entity_insert in ./eck.module
Implements hook_entity_insert().
eck_entity_presave in ./eck.module
Implements hook_entity_presave().
eck_entity_update in ./eck.module
Implements hook_entity_update().
eck__entity__form in ./eck.entity.inc
Sets up an entities form.

... See full list

File

./eck.property_behavior.inc, line 40
Property Behaviors.

Code

function eck_property_behavior_invoke_plugin($entity_type, $function_name, $all = array(), $specific = array()) {
  $properties = $entity_type->properties;
  $returns = array();
  foreach ($properties as $property => $info) {

    // If there is a behavior associated with this property we need to call the
    // appropiate hooks.
    if (array_key_exists('behavior', $info) && !empty($info['behavior'])) {
      $behavior = $info['behavior'];
      $plugin = ctools_get_plugins('eck', 'property_behavior', $behavior);
      $function = ctools_plugin_get_function($plugin, $function_name);
      if ($function) {
        if (array_key_exists($property, $specific)) {
          $return = $function($property, array_merge($all, $specific[$property]));
        }
        else {
          $return = $function($property, $all);
        }
        if ($return) {
          $returns[$property] = $return;
        }
      }
    }
  }
  return $returns;
}