support for image_styles import/export using ctools export.inc From: Adrian Rossouw --- modules/image/image.install | 11 ++++++++++ modules/image/image.module | 46 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 0 deletions(-) diff --git modules/image/image.install modules/image/image.install index 88fcf99..3f893da 100644 --- modules/image/image.install +++ modules/image/image.install @@ -39,6 +39,17 @@ function image_schema() { $schema['image_styles'] = array( 'description' => 'Stores configuration options for image styles.', + 'export' => array( + 'key' => 'name', + 'object' => 'stdClass', + 'identifier' => 'image_style', + 'api' => array( + 'owner' => 'image', + 'api' => 'image_styles', // Base name for api include files. + 'minimum_version' => 1, + 'current_version' => 1, + ), + ), 'fields' => array( 'isid' => array( 'description' => 'The primary identifier for an image style.', diff --git modules/image/image.module modules/image/image.module index 5d7d851..6d86757 100644 --- modules/image/image.module +++ modules/image/image.module @@ -90,6 +90,14 @@ function image_menu() { 'type' => MENU_CALLBACK, 'file' => 'image.admin.inc', ); + $items['admin/config/media/image-styles/export/%image_style'] = array( + 'title' => 'Export style', + 'description' => 'Export an image style.', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('image_export_image_style', 5), + 'access arguments' => array('administer image styles'), + 'type' => MENU_CALLBACK, + ); $items['admin/config/media/image-styles/edit/%image_style/effects/%image_effect'] = array( 'title' => 'Edit image effect', 'description' => 'Edit an exiting effect within a style.', @@ -853,3 +861,41 @@ function image_filter_keyword($value, $current_pixels, $new_pixels) { function _image_effect_definitions_sort($a, $b) { return strcasecmp($a['name'], $b['name']); } + +/** + * Load a single Image Style. + */ +function image_image_style_load($name) { + require_once(DRUPAL_ROOT . '/includes/export.inc'); + + $result = export_load_object('image_styles', 'names', array($name)); + if (isset($result[$name])) { + return $result[$name]; + } +} + +/** + * Export an Image Style. + */ +function image_image_style_export($style, $indent = '') { + require_once(DRUPAL_ROOT . '/includes/export.inc'); + $output = export_object('image_styles', $style, $indent); + return $output; +} + +function image_export_image_style(&$form_state, $style) { + $obj = image_image_style_load($style['name']); + $code = image_image_style_export($obj); + $lines = substr_count($code, "\n"); + + + $form['export'] = array( + '#title' => t('Export data'), + '#type' => 'textarea', + '#value' => $code, + '#rows' => $lines, + '#description' => t('Copy the export text and paste it into another image style using the import function.'), + ); + return $form; +} +