summaryrefslogtreecommitdiff
path: root/modules/image/image.api.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/image/image.api.php')
-rw-r--r--modules/image/image.api.php97
1 files changed, 97 insertions, 0 deletions
diff --git a/modules/image/image.api.php b/modules/image/image.api.php
new file mode 100644
index 000000000..d285f3864
--- /dev/null
+++ b/modules/image/image.api.php
@@ -0,0 +1,97 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Hooks related to image styles and effects.
+ */
+
+/**
+ * @addtogroup hooks
+ * @{
+ */
+
+/**
+ * Define information about image effects provided by a module.
+ *
+ * This hook enables modules to define image manipulation effects for use with
+ * an image style.
+ *
+ * @return
+ * An array of image effects. This array is keyed on the machine-readable
+ * effect name. Each effect is defined as an associative array containing the
+ * following items:
+ * - "name": The human-readable name of the effect.
+ * - "effect callback": The function to call to perform this effect.
+ * - "help": (optional) A brief description of the effect that will be shown
+ * when adding or configuring this effect.
+ */
+function hook_image_effect_info() {
+ $effects = array();
+
+ $effects['mymodule_resize'] = array(
+ 'name' => t('Resize'),
+ 'help' => t('Resize an image to an exact set of dimensions, ignoring aspect ratio.'),
+ 'effect callback' => 'mymodule_resize_image',
+ );
+
+ return $effects;
+}
+
+/**
+ * Respond to image style updating.
+ *
+ * This hook enables modules to update settings that might be affected by
+ * changes to an image. For example, updating a module specific variable to
+ * reflect a change in the image style's name.
+ *
+ * @param $style
+ * The image style array that is being updated.
+ */
+function hook_image_style_save($style) {
+ // If a module defines an image style and that style is renamed by the user
+ // the module should update any references to that style.
+ if (isset($style['old_name']) && $style['old_name'] == variable_get('mymodule_image_style', '')) {
+ variable_set('mymodule_image_style', $style['name']);
+ }
+}
+
+/**
+ * Respond to image style deletion.
+ *
+ * This hook enables modules to update settings when a image style is being
+ * deleted. If a style is deleted, a replacement name may be specified in
+ * $style['name'] and the style being deleted will be specified in
+ * $style['old_name'].
+ *
+ * @param $style
+ * The image style array that being deleted.
+ */
+function hook_image_style_delete($style) {
+ // Administrators can choose an optional replacement style when deleting.
+ // Update the modules style variable accordingly.
+ if (isset($style['old_name']) && $style['old_name'] == variable_get('mymodule_image_style', '')) {
+ variable_set('mymodule_image_style', $style['name']);
+ }
+}
+
+/**
+ * Respond to image style flushing.
+ *
+ * This hook enables modules to take effect when a style is being flushed (all
+ * images are being deleted from the server and regenerated). Any
+ * module-specific caches that contain information related to the style should
+ * be cleared using this hook. This hook is called whenever a style is updated,
+ * deleted, any effect associated with the style is update or deleted, or when
+ * the user selects the style flush option.
+ *
+ * @param $style
+ * The image style array that is being flushed.
+ */
+function hook_image_style_flush($style) {
+ // Empty cached data that contains information about the style.
+ cache_clear_all('*', 'cache_mymodule', TRUE);
+}
+ /**
+ * @} End of "addtogroup hooks".
+ */