annotate sites/all/modules/schemaorg/schemaorg.features.inc @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2 /**
danielebarchiesi@4 3 * Implementation of hook_features_export().
danielebarchiesi@4 4 *
danielebarchiesi@4 5 * Defines one or more component types that are available to Features for export
danielebarchiesi@4 6 * and a variety of settings for each type.
danielebarchiesi@4 7 */
danielebarchiesi@4 8 function schemaorg_features_export($data, &$export, $module_name = '') {
danielebarchiesi@4 9 // Any feature exporting RDF mappings need the rdf and rdfx modules.
danielebarchiesi@4 10 $export['dependencies']['rdf'] = 'rdf';
danielebarchiesi@4 11 $export['dependencies']['schemaorg'] = 'schemaorg';
danielebarchiesi@4 12
danielebarchiesi@4 13 foreach ($data as $name) {
danielebarchiesi@4 14 $parts = explode('-', $name);
danielebarchiesi@4 15 $entity_type = $parts[0];
danielebarchiesi@4 16 $bundle_name = $parts[1];
danielebarchiesi@4 17
danielebarchiesi@4 18 if ($rdf_mapping = rdf_mapping_load($entity_type, $bundle_name)) {
danielebarchiesi@4 19 $export['features']['schemaorg'][$entity_type . '-' . $bundle_name] = $rdf_mapping;
danielebarchiesi@4 20 }
danielebarchiesi@4 21 }
danielebarchiesi@4 22
danielebarchiesi@4 23 return array();
danielebarchiesi@4 24 }
danielebarchiesi@4 25
danielebarchiesi@4 26 /**
danielebarchiesi@4 27 * Implementation of hook_features_export_options().
danielebarchiesi@4 28 *
danielebarchiesi@4 29 * Provides an array of components that can be exported for a given type.
danielebarchiesi@4 30 */
danielebarchiesi@4 31 function schemaorg_features_export_options() {
danielebarchiesi@4 32 $bundles = array();
danielebarchiesi@4 33
danielebarchiesi@4 34 foreach (entity_get_info() as $entity_type => $entity) {
danielebarchiesi@4 35 foreach ($entity['bundles'] as $bundle_name => $bundle) {
danielebarchiesi@4 36 $bundles[$entity_type . '-' . $bundle_name] = $entity['label'] . ': ' . $bundle['label'];
danielebarchiesi@4 37 }
danielebarchiesi@4 38 }
danielebarchiesi@4 39
danielebarchiesi@4 40 return $bundles;
danielebarchiesi@4 41 }
danielebarchiesi@4 42
danielebarchiesi@4 43 /**
danielebarchiesi@4 44 * Implementation of hook_features_export_render().
danielebarchiesi@4 45 *
danielebarchiesi@4 46 * Renders a set of components to code as a defaults hook.
danielebarchiesi@4 47 */
danielebarchiesi@4 48 function schemaorg_features_export_render($module, $data, $export = NULL) {
danielebarchiesi@4 49 $code = array();
danielebarchiesi@4 50 $code[] = ' $schemaorg = array();';
danielebarchiesi@4 51 $code[] = '';
danielebarchiesi@4 52
danielebarchiesi@4 53 foreach ($data as $key => $entity_type_bundle) {
danielebarchiesi@4 54 if (is_array($entity_type_bundle)) {
danielebarchiesi@4 55 $entity_type_bundle = $key;
danielebarchiesi@4 56 }
danielebarchiesi@4 57 $parts = explode('-', $entity_type_bundle);
danielebarchiesi@4 58 $entity_type = $parts[0];
danielebarchiesi@4 59 $bundle_name = $parts[1];
danielebarchiesi@4 60 if ($rdf_mapping = rdf_mapping_load($entity_type, $bundle_name)) {
danielebarchiesi@4 61 $rdf_mapping_export = features_var_export($rdf_mapping, ' ');
danielebarchiesi@4 62 $rdf_bundle = features_var_export($bundle_name);
danielebarchiesi@4 63 $rdf_entity_type = features_var_export($entity_type);
danielebarchiesi@4 64 $code[] = " // Exported RDF mapping: {$bundle_name}";
danielebarchiesi@4 65 $code[] = " \$schemaorg[$rdf_entity_type][$rdf_bundle] = $rdf_mapping_export;";
danielebarchiesi@4 66 $code[] = "";
danielebarchiesi@4 67 }
danielebarchiesi@4 68 }
danielebarchiesi@4 69
danielebarchiesi@4 70 $code[] = ' return $schemaorg;';
danielebarchiesi@4 71 $code = implode("\n", $code);
danielebarchiesi@4 72 return array('rdf_default_mappings' => $code);
danielebarchiesi@4 73 }
danielebarchiesi@4 74
danielebarchiesi@4 75 /**
danielebarchiesi@4 76 * Implementation of hook_features_revert().
danielebarchiesi@4 77 *
danielebarchiesi@4 78 * Reverts components of a feature back to their default state.
danielebarchiesi@4 79 */
danielebarchiesi@4 80 function schemaorg_features_revert($module) {
danielebarchiesi@4 81 return schemaorg_features_rebuild($module);
danielebarchiesi@4 82 }
danielebarchiesi@4 83
danielebarchiesi@4 84 /**
danielebarchiesi@4 85 * Implementation of hook_features_rebuild().
danielebarchiesi@4 86 *
danielebarchiesi@4 87 * Updates faux-exportable components back to their default state.
danielebarchiesi@4 88 */
danielebarchiesi@4 89 function schemaorg_features_rebuild($module) {
danielebarchiesi@4 90 if ($defaults = features_get_default('schemaorg', $module)) {
danielebarchiesi@4 91 foreach ($defaults as $entity_type => $bundles) {
danielebarchiesi@4 92 foreach ($bundles as $bundle => $mapping) {
danielebarchiesi@4 93 rdf_mapping_save(array(
danielebarchiesi@4 94 'type' => $entity_type,
danielebarchiesi@4 95 'bundle' => $bundle,
danielebarchiesi@4 96 'mapping' => $mapping,
danielebarchiesi@4 97 ));
danielebarchiesi@4 98 }
danielebarchiesi@4 99 }
danielebarchiesi@4 100 }
danielebarchiesi@4 101 }