As per curiosity, it seems that .webp is becoming more and more like suggested by google pagespeed.
Would IH support .webp format eventually? or even .avif
thank you
Printable View
As per curiosity, it seems that .webp is becoming more and more like suggested by google pagespeed.
Would IH support .webp format eventually? or even .avif
thank you
Hello Lat9! Love the mod. I am starting to add more pictures to products and am noticing that the additional pictures are not being covered by the watermark as well as the regular picture (watermark much smaller). Can this be changed easily? The hover over has great watermarking but the small image without hover does not show the watermarking well.
I've just submitted v5.3.0 of Image Handler for the Zen Cart moderators' review; I'll post back here when it's available for download.
Note: This version of Image Handler requires Zen Cart 1.5.7 or later and has been tested with the current alpha version of Zen Cart 1.5.8 as well as PHP 8.1.
This release contains changes associated with the following GitHub issues:
#248: Correcting PHP 8.0+ Fatal error; casting requires correction.
#251: Correcting products' dropdown sorting for zc158; always sort by products' names.
#252: Correcting PHP Fatal error: Uncaught TypeError: imagecolorallocatealpha(); inputs need to be integers, not floats.
#254: Move installation files to branch root, removing 'Installation Files' sub-directory.
#256: Drop support for Zen Cart versions prior to 1.5.7.
#258: Properly handle corrupt file.
Now available for download: https://www.zen-cart.com/downloads.php?do=file&id=2169
I am getting the following error when IH encounter a .webp file.
This is just an example as i am getting the same log for several other .webp file.Quote:
[27-Oct-2022 00:18:57 UTC] PHP Notice: Image Handler, calculate_size for /images/90674z_11zon.webp returned false; image is corrupt. in /includes/classes/bmz_image_handler.class.php on line 484
I tried to clear the cache thru the admin interface but no change. I understand IH is not compatible with .webp but i thought it would ignore it instead of throwing an error.
Thank you
This is a work around that will allow you to use webp images and not get the error. While lat9 is busy. It is not intended as a final fix.
Modify \includes\classes\observers\ImageHandlerObserver.php
toCode:public function update(&$class, $eventID, $p1, &$p2, &$p3, &$p4, &$p5, &$p6)
{
switch ($eventID) {
This will stop image handler processing your webp images.Code:public function update(&$class, $eventID, $p1, &$p2, &$p3, &$p4, &$p5, &$p6)
{
if (strtolower(right($p1,-5)) == '.webp') {
return;
}
switch ($eventID) {
Just found thad does not work if you have multiple images. This does
Assumes that all images for a product have same extension.Code:public function update(&$class, $eventID, $p1, &$p2, &$p3, &$p4, &$p5, &$p6)
{
if (strtolower($p3) == '.webp') {
return;
}
switch ($eventID) {
That was not enough either. I have had to change each notifier. Hence, replace whole of \includes\classes\observers\ImageHandlerObserver.php
with
Code:<?php
// -----
// Part of the "Image Handler" plugin for Zen Cart 1.5.5b and later.
// Copyright (c) 2017-2021 Vinos de Frutas Tropicales
//
if (!defined('IS_ADMIN_FLAG')) {
die('Illegal Access');
}
class ImageHandlerObserver extends base
{
public function __construct()
{
if (defined('IH_RESIZE') && IH_RESIZE == 'yes') {
$this->attach(
$this,
[
//- From /includes/modules/main_product_image.php
'NOTIFY_MODULES_MAIN_PRODUCT_IMAGE_FILENAME',
//- From /includes/modules/additional_images.php
'NOTIFY_MODULES_ADDITIONAL_IMAGES_GET_LARGE',
'NOTIFY_MODULES_ADDITIONAL_IMAGES_THUMB_SLASHES',
//- From /includes/pages/popup_image/header_php.php
'NOTIFY_HEADER_END_POPUP_IMAGES',
]
);
}
}
public function update(&$class, $eventID, $p1, &$p2, &$p3, &$p4, &$p5, &$p6)
{
switch ($eventID) {
// -----
// This notifier lets an image-handling observer know that it's time to determine the image information,
// providing the following parameters:
//
// $p1 ... (r/o) ... A copy of the $products_image value
// $p2 ... (r/w) ... A boolean value, set by the observer to true if the image has been handled.
// $p3 ... (r/w) ... A reference to the $products_image_extension value
// $p4 ... (r/w) ... A reference to the $products_image_base value
// $p5 ... (r/w) ... A reference to the medium product-image-name
// $p6 ... (r/w) ... A reference to the large product-image-name.
//
// If the observer has set the $product_image_handled flag to true, it's indicated that any of the
// other values have been updated for separate handling.
//
case 'NOTIFY_MODULES_MAIN_PRODUCT_IMAGE_FILENAME':
if (strtolower($p3) == '.webp') {
break;
}
$products_image = $p1;
$products_image_extension = $p3;
$p4 = $products_image_base = preg_replace('/' . $products_image_extension . '$/', '', $products_image);
$p5 = DIR_WS_IMAGES . 'medium/' . $products_image_base . IMAGE_SUFFIX_MEDIUM . $products_image_extension;
$p6 = DIR_WS_IMAGES . 'large/' . $products_image_base . IMAGE_SUFFIX_LARGE . $products_image_extension;
$p2 = true; //-Indicate that the image has been "handled".
break;
// -----
// This notifier lets any image-handler know the current image being processed, providing the following parameters:
//
// $p1 ... (r/o) ... The current product's name
// $p2 ... (r/w) ... The (possibly updated) filename (including path) of the current additional image.
//
case 'NOTIFY_MODULES_ADDITIONAL_IMAGES_GET_LARGE':
if (strtolower(substr($p2,-5)) == '.webp') {
break;
}
$products_name = $p1;
$products_image_large = $p2;
if (function_exists('handle_image')) {
$newimg = handle_image($products_image_large, addslashes($products_name), LARGE_IMAGE_MAX_WIDTH, LARGE_IMAGE_MAX_HEIGHT, '');
list($src, $alt, $width, $height, $parameters) = $newimg;
$p2 = zen_output_string($src);
}
break;
// -----
// This notifier lets any image-handler "massage" the name of the current thumbnail image name with appropriate
// slashes for javascript/jQuery display:
//
// $p1 ... (n/a) ... An empty array, not applicable.
// $p2 ... (r/w) ... A reference to the "slashed" thumbnail image name.
//
case 'NOTIFY_MODULES_ADDITIONAL_IMAGES_THUMB_SLASHES':
// remove additional single quotes from image attributes (important!)
if (strtolower(substr($p2,-5)) == '.webp') {
break;
}
$thumb_slashes = $p2;
$p2 = preg_replace("/([^\\\\])'/", '$1\\\'', $thumb_slashes);
break;
// -----
// Update the (globally-available) image names for any rendering of the popup_image page.
//
case 'NOTIFY_HEADER_END_POPUP_IMAGES':
global $products_image,
$products_image_extension,
$products_image_base,
$products_image_medium,
$products_image_large;
if (srttolower($products_image_extension) == '.webp'){
break;
}
$products_image_base = preg_replace('/' . $products_image_extension . '$/', '', $products_image);
$products_image_medium = DIR_WS_IMAGES . 'medium/' . $products_image_base . IMAGE_SUFFIX_MEDIUM . $products_image_extension;
$products_image_large = DIR_WS_IMAGES . 'large/' . $products_image_base . IMAGE_SUFFIX_LARGE . $products_image_extension;
break;
default:
break;
}
}
}
Thank you lat9. Really appreciate all the hard work.
It seems to be working so far asa temporary fix. Thanks again for it as my log files were starting to pile up. :-)
As times goes, it seems that we will have to switch to .webp for all the product images which brings up another question.
If I create a new product with a .webp image, do i need to upload 3 different image size for small, medium and large? (since IH will not be resizing/caching then)
Thank you
Spoke too soon.
The .webp error are gone after doing the change to IHobserver but now i am getting an error with the pop up
Quote:
[29-Oct-2022 18:53:18 UTC] PHP Fatal error: Call to undefined function srttolower() in /includes/classes/observers/ImageHandlerObserver.php on line 107
[29-Oct-2022 18:53:18 UTC] Request URI: /index.php?main_page=popup_image&pID=785, IP address: 54.236.1.13
--> PHP Fatal error: Call to undefined function srttolower() in /includes/classes/observers/ImageHandlerObserver.php on line 107.
That should be strtolower not srttolower sorry typo on line 107
I am still getting the same errorregarding .webp .
I am at loss here on what to do.Quote:
[30-Oct-2022 01:53:03 UTC] PHP Notice: Image Handler, calculate_size for /images/red_rose_with_hydrangea.webp returned false; image is corrupt. in /includes/classes/bmz_image_handler.class.php on line 484
[30-Oct-2022 01:53:03 UTC] PHP Notice: Image Handler, calculate_size for /images/red_rose_with_hydrangea.webp returned false; image is corrupt. in /includes/classes/bmz_image_handler.class.php on line 484
Any other suggestions? please
Thank you
Have you got the full stack trace (logfile) so I can see where it was called from.
Think I might have found it.
Try altering includes/functions/extra_functions/functions_bmz_image_handler.php
about line 114 from
toCode:function handle_image($src, $alt, $width, $height, $parameters)
{
global $ihConf;
if ($ihConf['resize']) { //Image Handler processing is enabled
Code:function handle_image($src, $alt, $width, $height, $parameters)
{
global $ihConf;
$image_ext = strtolower(pathinfo($src, PATHINFO_EXTENSION));
if ($ihConf['resize'] && ($image_ext != 'webp')) { //Image Handler processing is enabled
Sorry for the delay to report.
When i first tried to alter includes/functions/extra_functions/functions_bmz_image_handler.php, the link to the .webp image appeared broken.
However, i forgot i reverted the previous change to the observer.
After altering both files, the .webp error seems to be gone ( at least in the last 2 days )
Thank you to brittainmark for providing the fix.
Now, I am facing another "bug" thatmay or may not be related to IH:
If i use a .webp image for a banner, the image is being resized to my small image admin settings.
If i use a jpg, png...image for the same banner, the image is display to the image initial size.
Is this a normal behavior? I didn't know that IH and/or ZC would resize .webp image when use in banners.
Is there a way to fix it?
Thank you
The changes I suggested to image handler mean that it does not touch images with the extension .webp therefore I would suggest it is another issue unless image handler was changing the jpeg/gif image to a new size. If you look at a none webp image, what is the image name in the banner?
My apologies. The change you suggested are working.
It appears to be different issue but it still involves.webp images unfortunately as far as I can tell.
The banner can be seen at royal-fleurdotcom.
The image is named fall banner.jpg with a resolution of 900 x 360.
If I use fall banner.webp with same resolution, it gets resized to 400x150 with 400 being my max small image width.
Not sure why it is doing itor if it is IH entirely related. Other .webp image are fine except when it comes to banner.
The suggested change by brittainmark took care of the .webp issues and IH is not throwing errors anymore when encountering this format.
I haven t figure out the banner part yet and reverted tousing .jpg image for now. Not sure why it is behaving this and will have to experiment a bit more. For now, image in .webp in banner are resized to small image setting from admin.
I am not sure if it is IH related either. JPG image are not resized and are displayed to their uploaded size when used in banners.
Image Handler 5, v5.3.1 is now available for download: https://www.zen-cart.com/downloads.php?do=file&id=2169
This release contains changes associated with the following GitHub issues:
#263: Define all class variables, PHP 8.2+ requirement.
#265: Don't process images, e.g. those with a .webp extension, that aren't resizeable via PHP built-in functions.
ZC v1.5.8
The background colour of small images is set, in IH5, by specifying SMALL_IMAGE_BACKGROUND in Admin. I use this feature and it works well for my Product Listing pages but I would like to set a different background colour for those small images that appear on the product_info pages, namely additional images.
How would I go about setting this up for additional images? An acceptable, and possibly easier, alternative would be to set a different background color for ALL images on the product_info page.
Edit: should not have replied to 'Re: Hover image alignment' post
I had thought something like this, in \includes\functions\extra_functions\functions_bmz_image_handler.php to use the MEDIUM_IMAGE_BACKGROUND colour for small images on product_info pages
but no.Code:global $current_page_base;
if ($current_page_base == ('product_info')) {
$ihConf['small']['bg'] = defined('MEDIUM_IMAGE_BACKGROUND') ? MEDIUM_IMAGE_BACKGROUND : $ihConf['default']['bg'];
} else {
$ihConf['small']['bg'] = defined('SMALL_IMAGE_BACKGROUND') ? SMALL_IMAGE_BACKGROUND : $ihConf['default']['bg'];
}
@simon1066, are you using any of the URL manglers (e.g. USU or Ceon URI Mappings). There might be a relatively easy to accomplish what you're looking to do if you're not.
load_imageGD() - I wonder if rather than assuming the extension was correct if it would make sense (perhaps optionally) to do a getimagesize.
I see cases where images have a .gif extension but they're actually JPGs.
--> PHP Warning: imagecreatefromgif(): '/home/client/public_html/images/folder/l_699-902-016_2.gif' is not a valid GIF file in /home/client/public_html/includes/classes/bmz_image_handler.class.php on line 939.
These are drop shipper supplied images; there's really no hope of getting them fixed in this case. That's why I suggested a switchable (disabled by default; optionally enabled) feature to be more robust in the case of invalid images.
I have sent a pr.
If this is good, may be a way to allow WebP images as well.
Just sent pr to make work with webp
Cannot get watermarks to display on our image files after upgrading to 1.5.8 from 1.5.7c. In tracking that down it appears we are having some issues with IH5 in our error logs.
Need some direction of where to look to solve this.
PHP Version: 7.4.33 (Zend: 3.4.0)
Database Engine: MySQL 5.5.5-10.3.38-MariaDB-0+deb10u1
Error log:
File Contents(logs/myDEBUG-20230223-051449-106252-warning.log)
[23-Feb-2023 05:14:49 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 mkdir() called at [/includes/functions/extra_functions/functions_bmz_io.php:100]
#2 io_mkdir_p() called at [/includes/functions/extra_functions/functions_bmz_io.php:79]
#3 io_makeFileDir() called at [/includes/classes/bmz_image_handler.class.php:491]
#4 ih_image->getCacheName() called at [/includes/classes/bmz_image_handler.class.php:409]
#5 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#6 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#7 handle_image() called at [/includes/functions/html_output.php:216]
#8 zen_image() called at [/includes/templates/template_default/sideboxes/tpl_whats_new.php:17]
#9 require(/includes/templates/template_default/sideboxes/tpl_whats_new.php) called at [/includes/modules/sideboxes/whats_new.php:26]
#10 include(/includes/modules/sideboxes/whats_new.php) called at [/includes/modules/column_left.php:30]
#11 require(/includes/modules/column_left.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:142]
#12 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: mkdir(): Permission denied in /includes/functions/extra_functions/functions_bmz_io.php on line 100.
[23-Feb-2023 05:14:49 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 imagejpeg() called at [/includes/classes/bmz_image_handler.class.php:1014]
#2 ih_image->save_imageGD() called at [/includes/classes/bmz_image_handler.class.php:893]
#3 ih_image->resize_imageGD() called at [/includes/classes/bmz_image_handler.class.php:421]
#4 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#5 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#6 handle_image() called at [/includes/functions/html_output.php:216]
#7 zen_image() called at [/includes/templates/template_default/sideboxes/tpl_whats_new.php:17]
#8 require(/includes/templates/template_default/sideboxes/tpl_whats_new.php) called at [/includes/modules/sideboxes/whats_new.php:26]
#9 include(/includes/modules/sideboxes/whats_new.php) called at [/includes/modules/column_left.php:30]
#10 require(/includes/modules/column_left.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:142]
#11 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: imagejpeg(/bmz_cache/6/69055-90a06jpg.image.150x117.jpg): failed to open stream: No such file or directory in /includes/classes/bmz_image_handler.class.php on line 1014.
[23-Feb-2023 05:14:49 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 mkdir() called at [/includes/functions/extra_functions/functions_bmz_io.php:100]
#2 io_mkdir_p() called at [/includes/functions/extra_functions/functions_bmz_io.php:79]
#3 io_makeFileDir() called at [/includes/classes/bmz_image_handler.class.php:491]
#4 ih_image->getCacheName() called at [/includes/classes/bmz_image_handler.class.php:409]
#5 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#6 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#7 handle_image() called at [/includes/functions/html_output.php:216]
#8 zen_image() called at [/includes/templates/responsive_classic/sideboxes/tpl_reviews_random.php:15]
#9 require(/includes/templates/responsive_classic/sideboxes/tpl_reviews_random.php) called at [/includes/modules/sideboxes/reviews.php:32]
#10 include(/includes/modules/sideboxes/reviews.php) called at [/includes/modules/column_left.php:30]
#11 require(/includes/modules/column_left.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:142]
#12 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: mkdir(): Permission denied in /includes/functions/extra_functions/functions_bmz_io.php on line 100.
[23-Feb-2023 05:14:50 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 imagejpeg() called at [/includes/classes/bmz_image_handler.class.php:1014]
#2 ih_image->save_imageGD() called at [/includes/classes/bmz_image_handler.class.php:893]
#3 ih_image->resize_imageGD() called at [/includes/classes/bmz_image_handler.class.php:421]
#4 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#5 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#6 handle_image() called at [/includes/functions/html_output.php:216]
#7 zen_image() called at [/includes/templates/responsive_classic/sideboxes/tpl_reviews_random.php:15]
#8 require(/includes/templates/responsive_classic/sideboxes/tpl_reviews_random.php) called at [/includes/modules/sideboxes/reviews.php:32]
#9 include(/includes/modules/sideboxes/reviews.php) called at [/includes/modules/column_left.php:30]
#10 require(/includes/modules/column_left.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:142]
#11 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: imagejpeg(/bmz_cache/8/81551-60320jpg.image.117x120.jpg): failed to open stream: No such file or directory in /includes/classes/bmz_image_handler.class.php on line 1014.
[23-Feb-2023 05:14:50 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 mkdir() called at [/includes/functions/extra_functions/functions_bmz_io.php:100]
#2 io_mkdir_p() called at [/includes/functions/extra_functions/functions_bmz_io.php:79]
#3 io_makeFileDir() called at [/includes/classes/bmz_image_handler.class.php:491]
#4 ih_image->getCacheName() called at [/includes/classes/bmz_image_handler.class.php:409]
#5 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#6 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#7 handle_image() called at [/includes/functions/html_output.php:216]
#8 zen_image() called at [/includes/modules/responsive_classic/product_listing.php:366]
#9 include(/includes/modules/responsive_classic/product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php:10]
#10 require(/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_index_product_list.php:108]
#11 require(/includes/templates/responsive_classic/templates/tpl_index_product_list.php) called at [/includes/modules/pages/index/main_template_vars.php:231]
#12 require(/includes/modules/pages/index/main_template_vars.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:178]
#13 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: mkdir(): Permission denied in /includes/functions/extra_functions/functions_bmz_io.php on line 100.
[23-Feb-2023 05:14:50 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 imagejpeg() called at [/includes/classes/bmz_image_handler.class.php:1014]
#2 ih_image->save_imageGD() called at [/includes/classes/bmz_image_handler.class.php:893]
#3 ih_image->resize_imageGD() called at [/includes/classes/bmz_image_handler.class.php:421]
#4 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#5 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#6 handle_image() called at [/includes/functions/html_output.php:216]
#7 zen_image() called at [/includes/modules/responsive_classic/product_listing.php:366]
#8 include(/includes/modules/responsive_classic/product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php:10]
#9 require(/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_index_product_list.php:108]
#10 require(/includes/templates/responsive_classic/templates/tpl_index_product_list.php) called at [/includes/modules/pages/index/main_template_vars.php:231]
#11 require(/includes/modules/pages/index/main_template_vars.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:178]
#12 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: imagejpeg(/bmz_cache/1/13575-17010jpg.image.200x131.jpg): failed to open stream: No such file or directory in /includes/classes/bmz_image_handler.class.php on line 1014.
[23-Feb-2023 05:14:50 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 mkdir() called at [/includes/functions/extra_functions/functions_bmz_io.php:100]
#2 io_mkdir_p() called at [/includes/functions/extra_functions/functions_bmz_io.php:79]
#3 io_makeFileDir() called at [/includes/classes/bmz_image_handler.class.php:491]
#4 ih_image->getCacheName() called at [/includes/classes/bmz_image_handler.class.php:409]
#5 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#6 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#7 handle_image() called at [/includes/functions/html_output.php:216]
#8 zen_image() called at [/includes/modules/responsive_classic/product_listing.php:366]
#9 include(/includes/modules/responsive_classic/product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php:10]
#10 require(/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_index_product_list.php:108]
#11 require(/includes/templates/responsive_classic/templates/tpl_index_product_list.php) called at [/includes/modules/pages/index/main_template_vars.php:231]
#12 require(/includes/modules/pages/index/main_template_vars.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:178]
#13 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: mkdir(): Permission denied in /includes/functions/extra_functions/functions_bmz_io.php on line 100.
[23-Feb-2023 05:14:50 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 imagejpeg() called at [/includes/classes/bmz_image_handler.class.php:1014]
#2 ih_image->save_imageGD() called at [/includes/classes/bmz_image_handler.class.php:893]
#3 ih_image->resize_imageGD() called at [/includes/classes/bmz_image_handler.class.php:421]
#4 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#5 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#6 handle_image() called at [/includes/functions/html_output.php:216]
#7 zen_image() called at [/includes/modules/responsive_classic/product_listing.php:366]
#8 include(/includes/modules/responsive_classic/product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php:10]
#9 require(/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_index_product_list.php:108]
#10 require(/includes/templates/responsive_classic/templates/tpl_index_product_list.php) called at [/includes/modules/pages/index/main_template_vars.php:231]
#11 require(/includes/modules/pages/index/main_template_vars.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:178]
#12 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: imagejpeg(/bmz_cache/8/89620-32020jpg.image.200x150.JPG): failed to open stream: No such file or directory in /includes/classes/bmz_image_handler.class.php on line 1014.
[23-Feb-2023 05:14:50 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 mkdir() called at [/includes/functions/extra_functions/functions_bmz_io.php:100]
#2 io_mkdir_p() called at [/includes/functions/extra_functions/functions_bmz_io.php:79]
#3 io_makeFileDir() called at [/includes/classes/bmz_image_handler.class.php:491]
#4 ih_image->getCacheName() called at [/includes/classes/bmz_image_handler.class.php:409]
#5 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#6 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#7 handle_image() called at [/includes/functions/html_output.php:216]
#8 zen_image() called at [/includes/modules/responsive_classic/product_listing.php:366]
#9 include(/includes/modules/responsive_classic/product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php:10]
#10 require(/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_index_product_list.php:108]
#11 require(/includes/templates/responsive_classic/templates/tpl_index_product_list.php) called at [/includes/modules/pages/index/main_template_vars.php:231]
#12 require(/includes/modules/pages/index/main_template_vars.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:178]
#13 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: mkdir(): Permission denied in /includes/functions/extra_functions/functions_bmz_io.php on line 100.
[23-Feb-2023 05:14:50 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 imagejpeg() called at [/includes/classes/bmz_image_handler.class.php:1014]
#2 ih_image->save_imageGD() called at [/includes/classes/bmz_image_handler.class.php:893]
#3 ih_image->resize_imageGD() called at [/includes/classes/bmz_image_handler.class.php:421]
#4 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#5 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#6 handle_image() called at [/includes/functions/html_output.php:216]
#7 zen_image() called at [/includes/modules/responsive_classic/product_listing.php:366]
#8 include(/includes/modules/responsive_classic/product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php:10]
#9 require(/includes/templates/responsive_classic/templates/tpl_modules_product_listing.php) called at [/includes/templates/responsive_classic/templates/tpl_index_product_list.php:108]
#10 require(/includes/templates/responsive_classic/templates/tpl_index_product_list.php) called at [/includes/modules/pages/index/main_template_vars.php:231]
#11 require(/includes/modules/pages/index/main_template_vars.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:178]
#12 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: imagejpeg(/bmz_cache/8/89620-32020jpg.image.200x150.JPG): failed to open stream: No such file or directory in /includes/classes/bmz_image_handler.class.php on line 1014.
The root-cause is reflected in this element of the log
A couple of questions:Code:[23-Feb-2023 05:14:49 America/Los_Angeles] Request URI: /index.php?main_page=index&manufacturers_id=1&sort=20a&page=14, IP address: 52.167.144.88
#1 mkdir() called at [/includes/functions/extra_functions/functions_bmz_io.php:100]
#2 io_mkdir_p() called at [/includes/functions/extra_functions/functions_bmz_io.php:79]
#3 io_makeFileDir() called at [/includes/classes/bmz_image_handler.class.php:491]
#4 ih_image->getCacheName() called at [/includes/classes/bmz_image_handler.class.php:409]
#5 ih_image->get_resized_image() called at [/includes/classes/bmz_image_handler.class.php:279]
#6 ih_image->get_local() called at [/includes/functions/extra_functions/functions_bmz_image_handler.php:153]
#7 handle_image() called at [/includes/functions/html_output.php:216]
#8 zen_image() called at [/includes/templates/template_default/sideboxes/tpl_whats_new.php:17]
#9 require(/includes/templates/template_default/sideboxes/tpl_whats_new.php) called at [/includes/modules/sideboxes/whats_new.php:26]
#10 include(/includes/modules/sideboxes/whats_new.php) called at [/includes/modules/column_left.php:30]
#11 require(/includes/modules/column_left.php) called at [/includes/templates/responsive_classic/common/tpl_main_page.php:142]
#12 require(/includes/templates/responsive_classic/common/tpl_main_page.php) called at [/index.php:94]
--> PHP Warning: mkdir(): Permission denied in /includes/functions/extra_functions/functions_bmz_io.php on line 100.
1. Is there a /bmz_cache sub-directory created in the site's 'root' (same level as your /admin and /includes directories)?
2. If so, what are the permissions for that sub-directory? The permissions should be 755.
Also, identifying which version of IH5 you're using will help!
Thank you for your help. Yes, that is present at the correct level and set at 755
should the .htaccess file inside that folder be set at a particular number?
Image Handler5 Version: 5.3.1
Sorry by number I meant permissions are also at 755 on that file.
Do you know if this error below is 100% trying to write to the /bmz_cache folder?:
--> PHP Warning: mkdir(): Permission denied in /includes/functions/extra_functions/functions_bmz_io.php on line 100.
Or is there another folder its trying to use?
When you look (via FTP) at the site's file-system, is the 'owner' the same for /bmz_cache as for all the other directories?
What server OS is in use?
Owner is the same.
Server OS: Linux 5.15.14-nrk-guest
Thanks for the help! it was a server configuration that the web host fixed.
In case anyone else has an error; It was because the web server runs as user 'www-data' which doesn't have write permission to that dir.
Modified the group ownership of bmz_cache to www-data and made it group writable.
Regarding the no-watermarks, I'm guessing that the site's setting for Configuration :: Images :: Cache File-naming Convention is set to Readable.
It appears that when that format was introduced that it unfortunately 'forgot' to include the watermarking. Sigh.
The current GitHub repository contents (https://github.com/DivaVocals/zen_Image-Handler) now contains the correction for those missing watermarks and also provides support for webp image types (thanks @brittainmark).
That updated release (v5.3.2) is forthcoming.
v3.5.2 of Image Handler 5 is now available for download: https://www.zen-cart.com/downloads.php?do=file&id=2169
This release contains changes associated with the following GitHub issues:
#262: Add support for webp images.
#15: Don't count on an image's extension identifying the image's type; check the image's type programmatically (brittainmark).
#273: Restore watermarks for all "Cache-file Naming Conventions" (was only working for Hashed.
includes/classes/observers/ColorBoxObserver.php line 42 says
require DIR_WS_MODULES . zen_get_module_directory('zen_colorbox.php');
but that file doesn't exist either in IH or Zen Cart.
Should this logic test for the existence of the file first, or am I missing some needed code?
It does check:
... but IH5 provides only that observer to aid in use when the overall ColorBox (or Fual Slimbox) plugin is installed. I'm guessing that you did an upgrade on a site that previously used ColorBox so its database configuration settings are still present. Been there, done that.Code:if (defined('ZEN_COLORBOX_STATUS') && ZEN_COLORBOX_STATUS == 'true') {
$this->attach(
$this,
array(
//- From /includes/modules/additional_images.php
'NOTIFY_MODULES_ADDITIONAL_IMAGES_SCRIPT_LINK',
)
);
}
LOL thank you.
Others who may have this issue - you may not easily be able to find the ZEN_COLORBOX_STATUS admin page but you can turn the value off in SQL:
update configuration set configuration_value = 'false' where configuration_key = 'ZEN_COLORBOX_STATUS';
COLORBOX did supply an uninstall script
Code:DELETE FROM `configuration` WHERE `configuration_key` LIKE 'ZEN_COLORBOX_%';
DELETE FROM `configuration_group` WHERE `configuration_group_title` = 'Zen Colorbox';
DELETE FROM `admin_pages` WHERE `language_key` = 'BOX_CONFIGURATION_ZEN_COLORBOX';
ZC158a; PHP 8.2.4; MySQL 10.4.17-MariaDB-log
I installed Image Handler 5.3.2 on my dev system and received a fatal error
the error comes from the escaped apostropheCode:PHP Fatal error: 1064:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 's canvas. Default is <strong>Center</Strong>.', 4, 1171, now(), NULL, 'zen_cf...' at line 4 :: INSERT IGNORE INTO zen_configuration
(configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added, use_function, set_function)
VALUES
('IH watermark gravity', 'WATERMARK_GRAVITY', 'Center', 'Select the position for the watermark relative to the image's canvas. Default is <strong>Center</Strong>.', 4, 1171, now(), NULL, 'zen_cfg_select_option([\'Center\',\'NorthWest\',\'North\',\'NorthEast\',\'East\',\'SouthEast\',\'South\',\'SouthWest\',\'West\'],') ==> (as called by) E:\Web\zc158A_DEV_PHP8.2\admin\includes\init_includes\init_image_handler.php on line 190
on line 167.HTML Code:the image\'s canvas
Because the installer crashed I did not have the option under Admin > Tools to uninstall image handler so I deleted the database entries based on the code in admin / image_handler_uninstall.php then recopied the files with the ofending apostrophe removed.
I have searched the net and cannot find any answer to the problem.
Is there a switch in MariaDB that disallows escaping characters such as this?
Nope, it a bug that @marco-pm graciously corrected back in March (https://github.com/lat9/zen_Image-Ha...888a6855bfd9b7). Let me get that 5.3.3 update going.
IH-5 v5.3.3 is now available for download: https://www.zen-cart.com/downloads.php?do=file&id=2169
Thanks to @marco-pm for the initial bug-reports and corrections!
This release contains changes associated with the following GitHub issues:
#12: MySQL Error on Installation (not upgrade), due to mis-escaped single-quote.
#13: 'imagecopy' float implicit conversion warning
Wow! 3 backslashes. I had already tried 2 \\ and '' as per SQL manuals but not 3.
Thanks again.
I just upgraded from 5.3.0 to 5.3.3
Not sure what happened or if it was like this before the update but my Image handler page ( Image manager tab) is blank.
Only the category are being displayed. No matter which category i select in the dropdown, it won't move from the first one. There is no product being displayed after that.
Attachment 20274
I uninstall/install the plugin but same thing. Also no error logs are present
Any help would be appreciated.
Thank you
I got problems with a new install of V5.3.3 on an 'old' site running ZC 1.5.8a with Japanese pack.
After install 'IH resize images' option is set to 'no'. When I change it to 'yes', all categories images are missing on catalog side and some product ones too...
When setting back to 'no' everything works fine.
I then installed IH v5.3.3 on a default ZC 1.5.8a with only demo data and it is better. Problem occurs only on subcategories thumbnail (small image) display.
For example, clicking on DVD movies displays subcategories and all images are fines. But when clicking on a subcategory you got a product listing with all there images but subcategories image on top is gone. Same on a product page.
There are no log or error at all. But looking at Apache log, call for image return a 500 error like this:
"GET /bmz_cache/c/categories-subcategory_cartoonsgif.image.57x32.gif HTTP/2.0" 500 ...
It looks to me that resizing is failing and only images already at the right size are displayed.
I have PHP 8.1.20 with gd extension 2.1.0 that is installed and seems to work.
Imagick 3.7.0 is installed too but IH doc mentioned a convert binary that I can't find and was not able to test it.
Any idea welcomed...
It would help to understand what your IH configuration settings are.
When you indicate that the image-retrieval is receiving "GET /bmz_cache/c/categories-subcategory_cartoonsgif.image.57x32.gif HTTP/2.0" 500 ... without an accompanying PHP error log, I'm confused as I don't understand what kind of server configuration would make that happen.
I've got Image Handler installed on my Zen Cart 1.5.8a demo site (https://zc158.vinosdefrutastropicales.com/zc158/) and am not "seeing" the issue.
Any additional bits of configuration information would help me help you.
Because it was not a PHP error, it was due to the .htaccess in bmz_cache folder. I found another error in Apache log that I missed before:
'..testcart/bmz_cache/.htaccess: Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration,..'
I run on Apache 2.4.57 and the .htaccess commands are for Apache 2.2 ... They are deprecated but still work if you use only 2.2 type commands but should not be mixed with 2.4 type ones.
I changed :
TO:Code:# deny *everything*
<FilesMatch ".*">
Order Allow,Deny
Deny from all
</FilesMatch>
# but now allow just *certain* necessary files:
<FilesMatch "(?i).*\.(jpe?g|gif|webp|png|swf)$" >
Order Allow,Deny
Allow from all
</FilesMatch>
And it fix it!Code:# deny *everything*
<FilesMatch ".*">
Require all denied
</FilesMatch>
# but now allow just *certain* necessary files:
<FilesMatch "(?i).*\.(jpe?g|gif|webp|png|swf)$" >
Require all granted
</FilesMatch>
Use of old Apache 2.2 style for compatibility should be done using if condition together with 2.4 style.
Thanks for that update! I'll need to update the IH distribution to supply both the older and now-current Apache directives. GitHub issue forthcoming.
GitHub tracking issue: https://github.com/lat9/zen_Image-Handler/issues/15
Image Handler 5, v5.3.4, is now available for download: https://www.zen-cart.com/downloads.php?do=file&id=2169
This release corrects GitHub issue #15, updating bmz_cache/.htaccess for installations that use Apache 2.4.
Thanks to @pilou2 for the correction!
Pictures not showing up after install of new database.
Upgraded Zen to 1.5.7d from 1.5.7b. Installed new database but none of my pictures are showing up. On the product page it says the image is not found. When I look at the server, it is there. If I go to Image Handler, says No images. No error logs. Help....
site: https://test.fantasycostume.com/1890-stripe-man_costume
Any particular reason for not updating IH to its current version (5.3.4)?
Where did the FCC Responsive template come from?
I'm getting a 404-Not found, looking for that base image (https://test.fantasycostume.com/imag...entury3101.jpg).
No reason for not updating to 5.3.4 except that it has taken a bit to get the upgraded site up.
FCC Responsive is an upgrade from Zen 1.5.7b. Fantasycostume.com
The page I sent you to was a bad example. This one is a better example. https://test.fantasycostume.com/rena...cPath=7_11_31&
While doing some digging, I have figured out that maybe I was entering pictures wrong. I entered pictures using the IH in Admin instead of entering them on the product page. I may have assumed wrongly that when I entered them thru the product page that they were not resizing. At least when I looked at that product in IH, it did not appear to.
So, having done that, this is what I have noticed. When I entered thru the IH, the name did not transfer to the product page. Example: I entered a picture with the _LRG. When I look at the product page, it has the same name but without the _LRG. The name on the product page was imported from my previous database.
Then, also, I have noticed that some pictures did not show on the website if that picture was in a sub folder. When I moved those pics out of the sub folder, they have now shown up. Without the sub folders, it makes my picture category very large and hard to quickly locate pictures.
getting this error:
> PHP Warning: Use of undefined constant IH_CACHE_NAMING - assumed 'IH_CACHE_NAMING' (this will throw an Error in a future version of PHP) in /includes/classes/bmz_image_handler.class.php on line 381.
and again on 484
It's the switch lines. Just add single quotes? It's creating some really large error files on this site.
IH 5.3.4
zc 1.5.7
php 7.4.33
oof. It was an upgrade but from what version I'm not sure. It was last ungraded in 2020 so that's the only detail I'm sure of. Looks like then just prior to 5.1.9.
That value is not in config/images. When was it introduced? I hadn't noticed it at all but I went back to previous sites and can see it. So database changes didn't work - this time. The others I've done recently all have worked but they were all 1.5.8 sites and this one is 1.5.7. I checked and it is the correct init file with that config setting in it. So any quickie advice? that line does say if version 5.1.9 then execute? So won't run unless I change the version number manually?
It says 5.3.4. Not happening on 1.5.8 sites with that version. I can't remember specifically why I upgraded it but I get the feeling it was due to other / same? errors.
I'll suggest running the following SQL (using the site's Tools :: Install SQL Patches) to remove the current IH configuration and have it re-install itself:
Note, if running from the site's phpMyAdmin, if the site uses a DB_PREFIX (e.g. zen_) you'll need to prefix the configuration and admin_pages table names with that prefix.Code:DELETE FROM configuration
WHERE configuration_key IN
( 'IH_VERSION', 'IH_RESIZE', 'ZOOM_IMAGE_SIZE', 'ZOOM_SMALL_IMAGES',
'SMALL_IMAGE_FILETYPE', 'SMALL_IMAGE_BACKGROUND', 'SMALL_IMAGE_QUALITY', 'WATERMARK_SMALL_IMAGES',
'MEDIUM_IMAGE_FILETYPE', 'MEDIUM_IMAGE_BACKGROUND', 'MEDIUM_IMAGE_QUALITY', 'WATERMARK_MEDIUM_IMAGES',
'LARGE_IMAGE_FILETYPE', 'LARGE_IMAGE_BACKGROUND', 'LARGE_IMAGE_QUALITY', 'WATERMARK_LARGE_IMAGES',
'LARGE_IMAGE_MAX_WIDTH', 'LARGE_IMAGE_MAX_HEIGHT', 'WATERMARK_GRAVITY'
);
DELETE FROM configuration
WHERE configuration_key LIKE 'IH_%';
DELETE FROM admin_pages
WHERE page_key IN ('configImageHandler4', 'toolsImageHandlerUninstall', 'toolsImageHandlerViewConfig');
That appears to fix it. Wonder what went wrong? Oh, well. Thanks so much for the help!
@delia, it could have been a way-old version that the IH auto-update didn't "know from". I'm glad that resetting the configuration so that all the keys are now available corrected your issue.
Is there an option with this plugin to resize existing images?
Looking at having set image sizes for mobile, and desktop, and then specifying which size should be loaded depending on device, with some css, to help with website speed, rather than just the one size image which is uploaded with v1.5.8.
Kind Regards,
Andy
At admin-> images you can set another image size. Then clear the IH cache. This will create new images with the desired size.
@andy_77, what template is in use? IH's image-sizing depending on the height and width being requested by the function zen_image. When IH is present, that function passes the image-tag creation request on to IH and the cached image of the requested size is automatically created.
It'll be easier to do what you want if your site is based off of the built-in responsive_classic template, since that template is aware of whether it is formatting for a phone, tablet or desktop device.
Has this been tested with ZC2.0.rc2? I am assuming that this should be the FIRST plugin after a clean install. Is that correct?
Thank you!
That comment was referring to the Zen Cart 2.0.0-rc2 release (https://github.com/zencart/zencart); IH v5.4.3 is what I've validated on that forthcoming release.
IH 5.3.1 on ZC 1.5.7. Can I
a) Disable the image (additional replaces main on hover).
b) Display additional images as full size images just like the main image
c) Fix the issue where a trailing %27 instead of single quote causes the popup to fail.
Thanks!
I'm primarily interested in (b)
b) Display additional images as full size images just like the main image
I have received a few inquiries about this and haven't figured out how to tweak it.
IH is truly superiour!
One thing I am working at is a mobile solution for lists.
I have set 240x180px at the moment (for 360px viewport).
Modern smartphones with smaller displays uses small viewports but have a real high resolution.
So 240x180px "fit" but don't look good as expected.
For the main (large) image I set up a high resolution which I reduced via CSS for Desktop.
This allows me to display brilliant images for mobile and as expected images for desktop.
The handling for list images comes next.
This is just a suggestion of mine.
Please don't feel annoyed.
> c) Why would an image-file's name end with a single-quote (')?
It doesn't but the end quote in the function call is somehow converted to %27 when the page is rendered. I think this is a bug in an older version of Zen Cart (which this is) but I can't remember the fix.
modules/additional_images.php - about line 30
$thumb_regular = zen_image($base_image, $products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT)
2.00 lists it as medium size - I changed that to small due to the new image modals popups.
full size? Dunno. That would be a php task to determine the image size first. There may be code in the mod that determines the actual size - I don't recall ever seeing it. But actual size could lead to disastrous effect. The main product image size is the medium size by the way so one can use the medium width and make sure the sizing of the product image is adequate. I can't image one would put up addtional images way larger than the product main image. Though folks do get creative sometimes.
PHP 8.3.7 // ZC 2.0.1 // Image Handler 5.3.4 (as last available in the plugin directory)
Installation went fine But noticed that when I visit the admin landing page of Image Handler 5, with nothing selected, I'm given the following error messages:
I've since reinstalled and cleared the add on, but still am treated to the same error message. I'm 99% sure this is because I'm running PHP 8 but don't know what change to make here to make this PHP 8 safe.Code:[04-Jun-2024 11:56:29 America/New_York] Request URI: /justuptown/justoffice/index.php?cmd=image_handler, IP address: 127.0.0.1, Language id 1
#0 \justoffice\includes\modules\products_previous_next.php(94): zen_debug_error_handler()
#1 \justoffice\includes\ih_manager.php(64): require('E:\\xampp\\htdocs...')
#2 \justoffice\image_handler.php(98): require('E:\\xampp\\htdocs...')
#3 \justoffice\index.php(16): require('E:\\xampp\\htdocs...')
--> PHP Warning: Undefined variable $previous in \justoffice\includes\modules\products_previous_next.php on line 94.
[04-Jun-2024 11:56:29 America/New_York] Request URI: /justuptown/justoffice/index.php?cmd=image_handler, IP address: 127.0.0.1, Language id 1
#0 \justoffice\includes\modules\products_previous_next_display.php(24): zen_debug_error_handler()
#1 \justoffice\image_handler.php(195): require('E:\\xampp\\htdocs...')
#2 \justoffice\index.php(16): require('E:\\xampp\\htdocs...')
--> PHP Warning: Undefined variable $position in \justoffice\includes\modules\products_previous_next_display.php on line 24.
[04-Jun-2024 11:56:29 America/New_York] Request URI: /justuptown/justoffice/index.php?cmd=image_handler, IP address: 127.0.0.1, Language id 1
#0 \justoffice\includes\modules\products_previous_next_display.php(30): zen_debug_error_handler()
#1 \justoffice\image_handler.php(195): require('E:\\xampp\\htdocs...')
#2 \justoffice\index.php(16): require('E:\\xampp\\htdocs...')
--> PHP Warning: Undefined variable $previous in \justoffice\includes\modules\products_previous_next_display.php on line 30.
[04-Jun-2024 11:56:29 America/New_York] Request URI: /justuptown/justoffice/index.php?cmd=image_handler, IP address: 127.0.0.1, Language id 1
#0 \justoffice\includes\modules\products_previous_next_display.php(47): zen_debug_error_handler()
#1 \justoffice\image_handler.php(195): require('E:\\xampp\\htdocs...')
#2 \justoffice\index.php(16): require('E:\\xampp\\htdocs...')
--> PHP Warning: Undefined variable $next_item in \justoffice\includes\modules\products_previous_next_display.php on line 47.
Any help here with this warning debug message I've received?