/includes/functions/extra_functions/functions_bmz_image_handler.php

https://github.com/happyxlq/lt_svn · PHP · 98 lines · 67 code · 14 blank · 17 comment · 15 complexity · d613a5e88ec938c94f4f6ff3f90647c4 MD5 · raw file

  1. <?php
  2. /**
  3. * functions_bmz_image_handler.php
  4. * html_output hook function and additional image referencing functions for
  5. * backwards compatibility, parsing of configuration settings
  6. *
  7. * @author Tim Kroeger <tim@breakmyzencart.com>
  8. * @copyright Copyright 2005-2006 breakmyzencart.com
  9. * @license http://www.gnu.org/licenses/gpl.txt GNU General Public License V2.0
  10. * @version $Id: functions_bmz_image_handler.php,v 1.7 2006/05/01 12:20:02 tim Exp $
  11. */
  12. require_once(DIR_FS_CATALOG . DIR_WS_CLASSES . 'bmz_image_handler.class.php');
  13. $ihConf['version'] = '2.0';
  14. $ihConf['dir']['docroot'] = DIR_FS_CATALOG;
  15. $ihConf['dir']['images'] = DIR_WS_IMAGES;
  16. $ihConf['resize'] = defined('IH_RESIZE') ? (IH_RESIZE == 'yes') : false;
  17. $ihConf['small']['width'] = SMALL_IMAGE_WIDTH;
  18. $ihConf['small']['height'] = SMALL_IMAGE_HEIGHT;
  19. $ihConf['small']['filetype'] = defined('SMALL_IMAGE_FILETYPE') ? SMALL_IMAGE_FILETYPE : 'no_change';
  20. $ihConf['small']['bg'] = defined('SMALL_IMAGE_BACKGROUND') ? SMALL_IMAGE_BACKGROUND : 'transparent 255:255:255';
  21. $ihConf['small']['quality'] = defined('SMALL_IMAGE_QUALITY') ? intval(SMALL_IMAGE_QUALITY) : 85;
  22. $ihConf['small']['watermark'] = defined('WATERMARK_SMALL_IMAGES') ? (WATERMARK_SMALL_IMAGES == 'yes') : false;
  23. $ihConf['small']['zoom'] = defined('ZOOM_SMALL_IMAGES') ? (ZOOM_SMALL_IMAGES == 'yes') : true;
  24. $ihConf['small']['hotzone'] = defined('SMALL_IMAGE_HOTZONE') ? (SMALL_IMAGE_HOTZONE == 'yes') : false;
  25. $ihConf['medium']['prefix'] = '/medium';
  26. $ihConf['medium']['suffix'] = IMAGE_SUFFIX_MEDIUM;
  27. $ihConf['medium']['width'] = MEDIUM_IMAGE_WIDTH;
  28. $ihConf['medium']['height'] = MEDIUM_IMAGE_HEIGHT;
  29. $ihConf['medium']['filetype'] = defined('MEDIUM_IMAGE_FILETYPE') ? MEDIUM_IMAGE_FILETYPE : 'no_change';
  30. $ihConf['medium']['bg'] = defined('MEDIUM_IMAGE_BACKGROUND') ? MEDIUM_IMAGE_BACKGROUND : 'transparent 255:255:255';
  31. $ihConf['medium']['quality'] = defined('MEDIUM_IMAGE_QUALITY') ? intval(MEDIUM_IMAGE_QUALITY) : 85;
  32. $ihConf['medium']['watermark'] = defined('WATERMARK_MEDIUM_IMAGES') ? (WATERMARK_MEDIUM_IMAGES == 'yes') : false;
  33. $ihConf['medium']['zoom'] = defined('ZOOM_MEDIUM_IMAGES') ? (ZOOM_MEDIUM_IMAGES == 'yes') : false;
  34. $ihConf['medium']['hotzone'] = defined('MEDIUM_IMAGE_HOTZONE') ? (MEDIUM_IMAGE_HOTZONE == 'yes') : false;
  35. $ihConf['large']['prefix'] = '/large';
  36. $ihConf['large']['suffix'] = IMAGE_SUFFIX_LARGE;
  37. $ihConf['large']['width'] = defined('LARGE_IMAGE_MAX_WIDTH') ? LARGE_IMAGE_MAX_WIDTH : '750';
  38. $ihConf['large']['height'] = defined('LARGE_IMAGE_MAX_HEIGHT') ? LARGE_IMAGE_MAX_HEIGHT : '550';
  39. $ihConf['large']['filetype'] = defined('LARGE_IMAGE_FILETYPE') ? LARGE_IMAGE_FILETYPE : 'no_change';
  40. $ihConf['large']['bg'] = defined('LARGE_IMAGE_BACKGROUND') ? LARGE_IMAGE_BACKGROUND : 'transparent 255:255:255';
  41. $ihConf['large']['quality'] = defined('LARGE_IMAGE_QUALITY') ? intval(LARGE_IMAGE_QUALITY) : 85;
  42. $ihConf['large']['watermark'] = defined('WATERMARK_LARGE_IMAGES') ? (WATERMARK_LARGE_IMAGES == 'yes') : false;
  43. $ihConf['watermark']['gravity'] = defined('WATERMARK_GRAVITY') ? WATERMARK_GRAVITY : 'Center';
  44. $ihConf['zoom']['gravity'] = defined('ZOOM_GRAVITY') ? ZOOM_GRAVITY : 'SouthEast';
  45. function handle_image($src, $alt, $width, $height, $parameters) {
  46. global $ihConf;
  47. if ($ihConf['resize']) {
  48. $ih_image = new ih_image($src, $width, $height);
  49. // override image path, get local image from cache
  50. if ($ih_image) {
  51. $src = $ih_image->get_local();
  52. $parameters = $ih_image->get_additional_parameters($alt, $ih_image->canvas['width'], $ih_image->canvas['height'], $parameters);
  53. }
  54. } else {
  55. // default to standard Zen-Cart fallback behavior for large -> medium -> small images
  56. $image_ext = substr($src, strrpos($src, '.'));
  57. $image_base = substr($src, strlen(DIR_WS_IMAGES), -strlen($image_ext));
  58. if (strrpos($src, IMAGE_SUFFIX_LARGE) && !is_file(DIR_FS_CATALOG . $src)) {
  59. //large image wanted but not found
  60. $image_base = $ihConf['medium']['prefix'] . substr($image_base, strlen($ihConf['large']['prefix']), -strlen($ihConf['large']['suffix'])) . $ihConf['medium']['suffix'];
  61. $src = DIR_WS_IMAGES . $image_base . $image_ext;
  62. }
  63. if (strrpos($src, IMAGE_SUFFIX_MEDIUM) && !is_file(DIR_FS_CATALOG . $src)) {
  64. //medium image wanted but not found
  65. $image_base = substr($image_base, strlen($ihConf['medium']['prefix']), -strlen($ihConf['medium']['suffix']));
  66. $src = DIR_WS_IMAGES . $image_base . $image_ext;
  67. }
  68. }
  69. return array($src, $alt, intval($width), intval($height), $parameters);
  70. }
  71. /**
  72. * get_image functions for backwards compatibility with prior image handler releases
  73. */
  74. function zen_get_small_image($image) {
  75. return $image;
  76. }
  77. function zen_get_medium_image($image_base, $image_extension) {
  78. global $ihConf;
  79. return $ihConf['medium']['prefix'] . $image_base . $ihConf['medium']['suffix'] . $image_extension;
  80. }
  81. function zen_get_large_image($image_base, $image_extension) {
  82. global $ihConf;
  83. return $ihConf['large']['prefix'] . $image_base . $ihConf['large']['suffix'] . $image_extension;
  84. }