user_relationships.features.inc in User Relationships 7
File
user_relationships.features.inc
View source
<?php
function user_relationships_features_api() {
return array(
'user_relationship' => array(
'name' => t('User Relationships'),
'default_hook' => 'user_relationships_default_relationships',
'default_file' => FEATURES_DEFAULTS_INCLUDED,
'feature_source' => TRUE,
'file' => drupal_get_path('module', 'user_relationships') . '/user_relationships.features.inc',
),
);
}
function user_relationship_features_export_options() {
$options = array();
foreach (user_relationships_types_load() as $relationship) {
if ($relationship->machine_name) {
$options[$relationship->machine_name] = $relationship->name;
}
}
return $options;
}
function user_relationship_features_export($data, &$export, $module_name = '') {
$pipe = array();
$map = features_get_default_map('user_relationship');
foreach ($data as $relationship) {
if (isset($map[$relationship]) && $map[$relationship] != $module_name) {
$module = $map[$relationship];
$export['dependencies'][$module] = $module;
}
elseif (user_relationships_type_load(array(
'machine_name' => $relationship,
))) {
$export['dependencies']['user_relationships'] = 'user_relationships';
$export['features']['user_relationship'][$relationship] = $relationship;
}
}
return $pipe;
}
function user_relationship_features_export_render($module_name, $data, $export = NULL) {
$code = array();
$code[] = ' $relationships = array();';
$code[] = '';
foreach ($data as $name) {
if ($original = user_relationships_type_load(array(
'machine_name' => $name,
))) {
$relationship = clone $original;
unset($relationship->rtid);
$relationship_export = features_var_export($relationship, ' ');
$relationship_identifier = features_var_export($name);
$code[] = " // Exported user_relationship style: {$name}.";
$code[] = " \$relationships[{$relationship_identifier}] = {$relationship_export};";
$code[] = "";
}
}
$code[] = ' return $relationships;';
$code = implode("\n", $code);
return array(
'user_relationships_default_relationships' => $code,
);
}
function user_relationship_features_revert($module) {
user_relationship_features_rebuild($module);
}
function user_relationship_features_rebuild($module) {
if ($user_relationships = features_get_default('user_relationship', $module)) {
foreach ($user_relationships as $machine_name => $user_relationship) {
$user_relationship = (object) $user_relationship;
drupal_static_reset('user_relationships_types_load');
if ($existing_relationship = user_relationships_type_load(array(
'machine_name' => $machine_name,
))) {
$user_relationship->rtid = $existing_relationship->rtid;
}
user_relationships_type_save($user_relationship);
}
}
}