FINAL suepr merge step : added all modules to this super repos
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Implements hook_features_api().
|
||||
*/
|
||||
function taxonomy_features_api() {
|
||||
return array(
|
||||
'taxonomy' => array(
|
||||
'name' => t('Taxonomy'),
|
||||
'feature_source' => TRUE,
|
||||
'default_hook' => 'taxonomy_default_vocabularies',
|
||||
'default_file' => FEATURES_DEFAULTS_INCLUDED,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_features_export_options().
|
||||
*/
|
||||
function taxonomy_features_export_options() {
|
||||
$vocabularies = array();
|
||||
foreach (taxonomy_get_vocabularies() as $vocabulary) {
|
||||
$vocabularies[$vocabulary->machine_name] = $vocabulary->name;
|
||||
}
|
||||
return $vocabularies;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_features_export().
|
||||
*
|
||||
* @todo Test adding existing dependencies.
|
||||
*/
|
||||
function taxonomy_features_export($data, &$export, $module_name = '') {
|
||||
$pipe = array();
|
||||
|
||||
// taxonomy_default_vocabularies integration is provided by Features.
|
||||
$export['dependencies']['features'] = 'features';
|
||||
$export['dependencies']['taxonomy'] = 'taxonomy';
|
||||
|
||||
// Add dependencies for each vocabulary.
|
||||
$map = features_get_default_map('taxonomy');
|
||||
foreach ($data as $machine_name) {
|
||||
if (isset($map[$machine_name]) && $map[$machine_name] != $module_name) {
|
||||
$export['dependencies'][$map[$machine_name]] = $map[$machine_name];
|
||||
}
|
||||
else {
|
||||
$export['features']['taxonomy'][$machine_name] = $machine_name;
|
||||
|
||||
$fields = field_info_instances('taxonomy_term', $machine_name);
|
||||
foreach ($fields as $name => $field) {
|
||||
$pipe['field'][] = "taxonomy_term-{$field['bundle']}-{$field['field_name']}";
|
||||
$pipe['field_instance'][] = "taxonomy_term-{$field['bundle']}-{$field['field_name']}";
|
||||
}
|
||||
}
|
||||
}
|
||||
return $pipe;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_features_export_render().
|
||||
*/
|
||||
function taxonomy_features_export_render($module, $data) {
|
||||
$vocabularies = taxonomy_get_vocabularies();
|
||||
$code = array();
|
||||
foreach ($data as $machine_name) {
|
||||
foreach ($vocabularies as $vocabulary) {
|
||||
if ($vocabulary->machine_name == $machine_name) {
|
||||
// We don't want to break the entity cache, so we need to clone the
|
||||
// vocabulary before unsetting the id.
|
||||
$vocabulary = clone $vocabulary;
|
||||
unset($vocabulary->vid);
|
||||
$code[$machine_name] = $vocabulary;
|
||||
}
|
||||
}
|
||||
}
|
||||
$code = " return ". features_var_export($code, ' ') .";";
|
||||
return array('taxonomy_default_vocabularies' => $code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_features_revert().
|
||||
*/
|
||||
function taxonomy_features_revert($module) {
|
||||
taxonomy_features_rebuild($module);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_features_rebuild().
|
||||
*
|
||||
* Rebuilds Taxonomy vocabularies from code defaults.
|
||||
*/
|
||||
function taxonomy_features_rebuild($module) {
|
||||
if ($vocabularies = features_get_default('taxonomy', $module)) {
|
||||
$existing = taxonomy_get_vocabularies();
|
||||
foreach ($vocabularies as $vocabulary) {
|
||||
$vocabulary = (object) $vocabulary;
|
||||
foreach ($existing as $existing_vocab) {
|
||||
if ($existing_vocab->machine_name === $vocabulary->machine_name) {
|
||||
$vocabulary->vid = $existing_vocab->vid;
|
||||
}
|
||||
}
|
||||
taxonomy_vocabulary_save($vocabulary);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user