function _drush_sitealias_add_inherited_values_to_record

8.0.x sitealias.inc _drush_sitealias_add_inherited_values_to_record(&$alias_value)
6.x sitealias.inc _drush_sitealias_add_inherited_values_to_record(&$alias_value)
7.x sitealias.inc _drush_sitealias_add_inherited_values_to_record(&$alias_value)
5.x sitealias.inc _drush_sitealias_add_inherited_values_to_record(&$alias_value)
master sitealias.inc _drush_sitealias_add_inherited_values_to_record(&$alias_value)
4 calls to _drush_sitealias_add_inherited_values_to_record()
drush_sitealias_lookup_alias_by_path in includes/sitealias.inc
Look for a defined alias that points to the specified site directory. The cache is tested first; if nothing is cached, then an exhaustive search is done for the specified site. If the exhaustive search returns a match, then it is cached.
drush_sitealias_quick_lookup_cached_alias_by_path in includes/sitealias.inc
Look for a cached alias that points to the specified site directory. Nothing is returned if there is no matching cached alias.
_drush_sitealias_add_inherited_values in includes/sitealias.inc
Check to see if there is a 'parent' item in the alias; if there is, then load the parent alias record and overlay the entries in the current alias record on top of the items from the parent record.
_drush_sitealias_load_alias in includes/sitealias.inc
Check and see if an alias definition for $alias is available. If it is, load it into the list of aliases cached in the 'site-aliases' context.

File

includes/sitealias.inc, line 739
The site alias API.

Code

function _drush_sitealias_add_inherited_values_to_record(&$alias_value) {
  if (isset($alias_value['parent'])) {
    // Fetch and merge in each parent
    foreach (explode(',', $alias_value['parent']) as $parent) {
      $parent_record = drush_sitealias_get_record($parent);
      unset($parent_record['#name']);
      unset($parent_record['#file']);
      unset($parent_record['#hidden']);
      $array_based_keys = array_merge(drush_get_special_keys(), array('path-aliases'));
      foreach ($array_based_keys as $array_based_key) {
        if (isset($alias_value[$array_based_key]) && isset($parent_record[$array_based_key])) {
          $alias_value[$array_based_key] = array_merge($parent_record[$array_based_key], $alias_value[$array_based_key]);
        }
      }
      $alias_value = array_merge($parent_record, $alias_value);
    }
    unset($alias_value['parent']);
  }
}