annotate sites/all/modules/features/includes/features.taxonomy.inc @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * Implements hook_features_api().
danielebarchiesi@4 5 */
danielebarchiesi@4 6 function taxonomy_features_api() {
danielebarchiesi@4 7 return array(
danielebarchiesi@4 8 'taxonomy' => array(
danielebarchiesi@4 9 'name' => t('Taxonomy'),
danielebarchiesi@4 10 'feature_source' => TRUE,
danielebarchiesi@4 11 'default_hook' => 'taxonomy_default_vocabularies',
danielebarchiesi@4 12 'default_file' => FEATURES_DEFAULTS_INCLUDED,
danielebarchiesi@4 13 ),
danielebarchiesi@4 14 );
danielebarchiesi@4 15 }
danielebarchiesi@4 16
danielebarchiesi@4 17 /**
danielebarchiesi@4 18 * Implements hook_features_export_options().
danielebarchiesi@4 19 */
danielebarchiesi@4 20 function taxonomy_features_export_options() {
danielebarchiesi@4 21 $vocabularies = array();
danielebarchiesi@4 22 foreach (taxonomy_get_vocabularies() as $vocabulary) {
danielebarchiesi@4 23 $vocabularies[$vocabulary->machine_name] = $vocabulary->name;
danielebarchiesi@4 24 }
danielebarchiesi@4 25 return $vocabularies;
danielebarchiesi@4 26 }
danielebarchiesi@4 27
danielebarchiesi@4 28 /**
danielebarchiesi@4 29 * Implements hook_features_export().
danielebarchiesi@4 30 *
danielebarchiesi@4 31 * @todo Test adding existing dependencies.
danielebarchiesi@4 32 */
danielebarchiesi@4 33 function taxonomy_features_export($data, &$export, $module_name = '') {
danielebarchiesi@4 34 $pipe = array();
danielebarchiesi@4 35
danielebarchiesi@4 36 // taxonomy_default_vocabularies integration is provided by Features.
danielebarchiesi@4 37 $export['dependencies']['features'] = 'features';
danielebarchiesi@4 38 $export['dependencies']['taxonomy'] = 'taxonomy';
danielebarchiesi@4 39
danielebarchiesi@4 40 // Add dependencies for each vocabulary.
danielebarchiesi@4 41 $map = features_get_default_map('taxonomy');
danielebarchiesi@4 42 foreach ($data as $machine_name) {
danielebarchiesi@4 43 if (isset($map[$machine_name]) && $map[$machine_name] != $module_name) {
danielebarchiesi@4 44 $export['dependencies'][$map[$machine_name]] = $map[$machine_name];
danielebarchiesi@4 45 }
danielebarchiesi@4 46 else {
danielebarchiesi@4 47 $export['features']['taxonomy'][$machine_name] = $machine_name;
danielebarchiesi@4 48
danielebarchiesi@4 49 $fields = field_info_instances('taxonomy_term', $machine_name);
danielebarchiesi@4 50 foreach ($fields as $name => $field) {
danielebarchiesi@4 51 $pipe['field'][] = "taxonomy_term-{$field['bundle']}-{$field['field_name']}";
danielebarchiesi@4 52 $pipe['field_instance'][] = "taxonomy_term-{$field['bundle']}-{$field['field_name']}";
danielebarchiesi@4 53 }
danielebarchiesi@4 54 }
danielebarchiesi@4 55 }
danielebarchiesi@4 56 return $pipe;
danielebarchiesi@4 57 }
danielebarchiesi@4 58
danielebarchiesi@4 59 /**
danielebarchiesi@4 60 * Implements hook_features_export_render().
danielebarchiesi@4 61 */
danielebarchiesi@4 62 function taxonomy_features_export_render($module, $data) {
danielebarchiesi@4 63 $vocabularies = taxonomy_get_vocabularies();
danielebarchiesi@4 64 $code = array();
danielebarchiesi@4 65 foreach ($data as $machine_name) {
danielebarchiesi@4 66 foreach ($vocabularies as $vocabulary) {
danielebarchiesi@4 67 if ($vocabulary->machine_name == $machine_name) {
danielebarchiesi@4 68 // We don't want to break the entity cache, so we need to clone the
danielebarchiesi@4 69 // vocabulary before unsetting the id.
danielebarchiesi@4 70 $vocabulary = clone $vocabulary;
danielebarchiesi@4 71 unset($vocabulary->vid);
danielebarchiesi@4 72 $code[$machine_name] = $vocabulary;
danielebarchiesi@4 73 }
danielebarchiesi@4 74 }
danielebarchiesi@4 75 }
danielebarchiesi@4 76 $code = " return ". features_var_export($code, ' ') .";";
danielebarchiesi@4 77 return array('taxonomy_default_vocabularies' => $code);
danielebarchiesi@4 78 }
danielebarchiesi@4 79
danielebarchiesi@4 80 /**
danielebarchiesi@4 81 * Implements hook_features_revert().
danielebarchiesi@4 82 */
danielebarchiesi@4 83 function taxonomy_features_revert($module) {
danielebarchiesi@4 84 taxonomy_features_rebuild($module);
danielebarchiesi@4 85 }
danielebarchiesi@4 86
danielebarchiesi@4 87 /**
danielebarchiesi@4 88 * Implements hook_features_rebuild().
danielebarchiesi@4 89 *
danielebarchiesi@4 90 * Rebuilds Taxonomy vocabularies from code defaults.
danielebarchiesi@4 91 */
danielebarchiesi@4 92 function taxonomy_features_rebuild($module) {
danielebarchiesi@4 93 if ($vocabularies = features_get_default('taxonomy', $module)) {
danielebarchiesi@4 94 $existing = taxonomy_get_vocabularies();
danielebarchiesi@4 95 foreach ($vocabularies as $vocabulary) {
danielebarchiesi@4 96 $vocabulary = (object) $vocabulary;
danielebarchiesi@4 97 foreach ($existing as $existing_vocab) {
danielebarchiesi@4 98 if ($existing_vocab->machine_name === $vocabulary->machine_name) {
danielebarchiesi@4 99 $vocabulary->vid = $existing_vocab->vid;
danielebarchiesi@4 100 }
danielebarchiesi@4 101 }
danielebarchiesi@4 102 taxonomy_vocabulary_save($vocabulary);
danielebarchiesi@4 103 }
danielebarchiesi@4 104 }
danielebarchiesi@4 105 }