annotate sites/all/modules/features/includes/features.image.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 /**
danielebarchiesi@4 4 * Implements hook_features_api().
danielebarchiesi@4 5 */
danielebarchiesi@4 6 function image_features_api() {
danielebarchiesi@4 7 return array(
danielebarchiesi@4 8 'image' => array(
danielebarchiesi@4 9 'name' => t('Image styles'),
danielebarchiesi@4 10 'feature_source' => TRUE,
danielebarchiesi@4 11 'default_hook' => 'image_default_styles',
danielebarchiesi@4 12 'alter_hook' => 'image_styles',
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 image_features_export_options() {
danielebarchiesi@4 21 $options = array();
danielebarchiesi@4 22 foreach (image_styles() as $name => $style) {
danielebarchiesi@4 23 $options[$name] = $style['name'];
danielebarchiesi@4 24 }
danielebarchiesi@4 25 return $options;
danielebarchiesi@4 26 }
danielebarchiesi@4 27
danielebarchiesi@4 28 /**
danielebarchiesi@4 29 * Implements hook_features_export().
danielebarchiesi@4 30 */
danielebarchiesi@4 31 function image_features_export($data, &$export, $module_name = '') {
danielebarchiesi@4 32 $pipe = array();
danielebarchiesi@4 33 $map = features_get_default_map('image');
danielebarchiesi@4 34 foreach ($data as $style) {
danielebarchiesi@4 35 $export['dependencies']['image'] = 'image';
danielebarchiesi@4 36 // If another module provides this style, add it as a dependency
danielebarchiesi@4 37 if (isset($map[$style]) && $map[$style] != $module_name) {
danielebarchiesi@4 38 $module = $map[$style];
danielebarchiesi@4 39 $export['dependencies'][$module] = $module;
danielebarchiesi@4 40 }
danielebarchiesi@4 41 // Otherwise, export the style
danielebarchiesi@4 42 elseif (image_style_load($style)) {
danielebarchiesi@4 43 $export['features']['image'][$style] = $style;
danielebarchiesi@4 44 }
danielebarchiesi@4 45 }
danielebarchiesi@4 46 return $pipe;
danielebarchiesi@4 47 }
danielebarchiesi@4 48
danielebarchiesi@4 49 /**
danielebarchiesi@4 50 * Implements hook_features_export_render().
danielebarchiesi@4 51 */
danielebarchiesi@4 52 function image_features_export_render($module_name, $data, $export = NULL) {
danielebarchiesi@4 53 $code = array();
danielebarchiesi@4 54 $code[] = ' $styles = array();';
danielebarchiesi@4 55 $code[] = '';
danielebarchiesi@4 56 foreach ($data as $name) {
danielebarchiesi@4 57 if ($style = image_style_load($name)) {
danielebarchiesi@4 58 _image_features_style_sanitize($style);
danielebarchiesi@4 59 $style_export = features_var_export($style, ' ');
danielebarchiesi@4 60 $style_identifier = features_var_export($name);
danielebarchiesi@4 61 $code[] = " // Exported image style: {$name}.";
danielebarchiesi@4 62 $code[] = " \$styles[{$style_identifier}] = {$style_export};";
danielebarchiesi@4 63 $code[] = "";
danielebarchiesi@4 64 }
danielebarchiesi@4 65 }
danielebarchiesi@4 66 $code[] = ' return $styles;';
danielebarchiesi@4 67 $code = implode("\n", $code);
danielebarchiesi@4 68 return array('image_default_styles' => $code);
danielebarchiesi@4 69 }
danielebarchiesi@4 70
danielebarchiesi@4 71 /**
danielebarchiesi@4 72 * Implements hook_features_revert().
danielebarchiesi@4 73 */
danielebarchiesi@4 74 function image_features_revert($module) {
danielebarchiesi@4 75 if ($default_styles = features_get_default('image', $module)) {
danielebarchiesi@4 76 foreach (array_keys($default_styles) as $default_style) {
danielebarchiesi@4 77 if ($style = image_style_load($default_style)) {
danielebarchiesi@4 78 if ($style['storage'] != IMAGE_STORAGE_DEFAULT) {
danielebarchiesi@4 79 image_default_style_revert($style);
danielebarchiesi@4 80 }
danielebarchiesi@4 81 }
danielebarchiesi@4 82 }
danielebarchiesi@4 83 }
danielebarchiesi@4 84 }
danielebarchiesi@4 85
danielebarchiesi@4 86 /**
danielebarchiesi@4 87 * Remove unnecessary keys for export.
danielebarchiesi@4 88 */
danielebarchiesi@4 89 function _image_features_style_sanitize(&$style, $child = FALSE) {
danielebarchiesi@4 90 $omit = $child ? array('isid', 'ieid', 'storage') : array('isid', 'ieid', 'storage', 'module');
danielebarchiesi@4 91 if (is_array($style)) {
danielebarchiesi@4 92 foreach ($style as $k => $v) {
danielebarchiesi@4 93 if (in_array($k, $omit, TRUE)) {
danielebarchiesi@4 94 unset($style[$k]);
danielebarchiesi@4 95 }
danielebarchiesi@4 96 else if (is_array($v)) {
danielebarchiesi@4 97 _image_features_style_sanitize($style[$k], TRUE);
danielebarchiesi@4 98 }
danielebarchiesi@4 99 }
danielebarchiesi@4 100 }
danielebarchiesi@4 101 }