danielebarchiesi@4: $value) { danielebarchiesi@4: $parts = explode('-', $key); danielebarchiesi@4: $entity_type = $parts[0]; danielebarchiesi@4: $bundle_name = $parts[1]; danielebarchiesi@4: danielebarchiesi@4: if ($rdf_mapping = rdf_mapping_load($entity_type, $bundle_name)) { danielebarchiesi@4: $export['features']['rdf_mappings'][$entity_type . '-' . $bundle_name] = $rdf_mapping; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: return array(); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Implementation of hook_features_export_options(). danielebarchiesi@4: * danielebarchiesi@4: * Provides an array of components that can be exported for a given type. danielebarchiesi@4: */ danielebarchiesi@4: function rdf_mappings_features_export_options() { danielebarchiesi@4: $bundles = array(); danielebarchiesi@4: danielebarchiesi@4: foreach (entity_get_info() as $entity_type => $entity) { danielebarchiesi@4: foreach ($entity['bundles'] as $bundle_name => $bundle) { danielebarchiesi@4: $bundles[$entity_type . '-' . $bundle_name] = $entity['label'] . ': ' . $bundle['label']; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: return $bundles; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Implementation of hook_features_export_render(). danielebarchiesi@4: * danielebarchiesi@4: * Renders a set of components to code as a defaults hook. danielebarchiesi@4: */ danielebarchiesi@4: function rdf_mappings_features_export_render($module, $data, $export = NULL) { danielebarchiesi@4: $code = array(); danielebarchiesi@4: $code[] = ' $rdf_mappings = array();'; danielebarchiesi@4: $code[] = ''; danielebarchiesi@4: danielebarchiesi@4: foreach ($data as $key => $entity_type_bundle) { danielebarchiesi@4: if (is_array($entity_type_bundle)) { danielebarchiesi@4: $entity_type_bundle = $key; danielebarchiesi@4: } danielebarchiesi@4: $parts = explode('-', $entity_type_bundle); danielebarchiesi@4: $entity_type = $parts[0]; danielebarchiesi@4: $bundle_name = $parts[1]; danielebarchiesi@4: if ($rdf_mapping = rdf_mapping_load($entity_type, $bundle_name)) { danielebarchiesi@4: $rdf_mapping_export = features_var_export($rdf_mapping, ' '); danielebarchiesi@4: $rdf_bundle = features_var_export($bundle_name); danielebarchiesi@4: $rdf_entity_type = features_var_export($entity_type); danielebarchiesi@4: $code[] = " // Exported RDF mapping: {$bundle_name}"; danielebarchiesi@4: $code[] = " \$rdf_mappings[$rdf_entity_type][$rdf_bundle] = $rdf_mapping_export;"; danielebarchiesi@4: $code[] = ""; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: $code[] = ' return $rdf_mappings;'; danielebarchiesi@4: $code = implode("\n", $code); danielebarchiesi@4: return array('rdf_default_mappings' => $code); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Implementation of hook_features_revert(). danielebarchiesi@4: * danielebarchiesi@4: * Reverts components of a feature back to their default state. danielebarchiesi@4: */ danielebarchiesi@4: function rdf_mappings_features_revert($module) { danielebarchiesi@4: return rdf_mappings_features_rebuild($module); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Implementation of hook_features_rebuild(). danielebarchiesi@4: * danielebarchiesi@4: * Updates faux-exportable components back to their default state. danielebarchiesi@4: */ danielebarchiesi@4: function rdf_mappings_features_rebuild($module) { danielebarchiesi@4: if ($defaults = features_get_default('rdf_mappings', $module)) { danielebarchiesi@4: foreach ($defaults as $entity_type => $bundles) { danielebarchiesi@4: foreach ($bundles as $bundle => $mapping) { danielebarchiesi@4: rdf_mapping_save(array( danielebarchiesi@4: 'type' => $entity_type, danielebarchiesi@4: 'bundle' => $bundle, danielebarchiesi@4: 'mapping' => $mapping, danielebarchiesi@4: )); danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: }