function synonyms_behavior_settings_unpack in Synonyms 7
Execute unpacking on the just loaded synonyms behavior implementations.
Parameters
array $behavior_implementations: Array of the just loaded behavior_implementations. Each sub array should contain the following keys:
- entity_type: (string) Entity type that corresponds to this behavior implementation
 - bundle: (string) Bundle that corresponds to this behavior implementation
 - provider: (string) Machine name of this synonyms behavior implementation
 - behavior: (string) name of the synonyms behavior to which these settings apply
 - settings_serialized: (string) serialized content of the settings
 
Return value
array Unpacked version of the provided $settings
2 calls to synonyms_behavior_settings_unpack()
- synonyms_behavior_get in ./
synonyms.module  - Load function for existing implementations of synonyms behaviors.
 - synonyms_behavior_get_all_enabled in ./
synonyms.module  - Load all enabled behavior implementations on an entity_type and a bundle.
 
File
- ./
synonyms.module, line 1088  - Provide synonyms feature for Drupal entities.
 
Code
function synonyms_behavior_settings_unpack($behavior_implementations) {
  // Array of previously queried synonyms provider info.
  $cache = array();
  foreach ($behavior_implementations as &$behavior_implementation) {
    if (!isset($cache[$behavior_implementation['behavior']][$behavior_implementation['entity_type']][$behavior_implementation['bundle']])) {
      $cache[$behavior_implementation['behavior']][$behavior_implementation['entity_type']][$behavior_implementation['bundle']] = synonyms_behavior_implementation_info($behavior_implementation['entity_type'], $behavior_implementation['bundle'], $behavior_implementation['behavior']);
    }
    // Behavior implementation info may be not available in some rare extreme
    // cases. For example, when a field instance is being deleted.
    if (isset($cache[$behavior_implementation['behavior']][$behavior_implementation['entity_type']][$behavior_implementation['bundle']][$behavior_implementation['provider']])) {
      $behavior_implementation += $cache[$behavior_implementation['behavior']][$behavior_implementation['entity_type']][$behavior_implementation['bundle']][$behavior_implementation['provider']];
    }
    if (isset($behavior_implementation['settings_serialized'])) {
      $behavior_implementation['settings'] = unserialize($behavior_implementation['settings_serialized']);
      if (isset($behavior_implementation['class'])) {
        $class = $behavior_implementation['class'];
        $behavior_implementation['object'] = new $class($behavior_implementation);
      }
    }
  }
  unset($behavior_implementation);
  return $behavior_implementations;
}