Jump to content



Photo
* * * * * 1 votes

KissIT Image Thumnailer


  • Please log in to reply
237 replies to this topic

#221   raiwa

raiwa
  • Community Sponsor
  • 671 posts
  • Real Name:Rainer Schmied
  • Gender:Male
  • Location:Sant Iscle de Vallalta, Barcelona, Spain

Posted 08 February 2015 - 21:55

I figured it out, edited the wrong file! Now that I have edited the CORRECT file it works perfectly! Thank you so much Rainer for your help and I apologize for my own stupidity. 

Don't worry we are all human :thumbsup:



#222   badbo

badbo
  • Members
  • 179 posts
  • Real Name:Bo Mccoury

Posted 09 February 2015 - 00:36

@badbo,
 

I didn't mention that because it's secondary. It may be related to browsers cache or missing javascript or whatever. First try to install KissIt add-on correct.

 

 KissIt modifications are applied to your txomega.com 2.3.4 store product_info.php:

<a href="http://txomega.com/images/small/comp/DHSSDSC2BB480G401.jpg" target="_blank"><img width="300" height="200" src="includes/modules/kiss_image_thumbnailer/thumbs/300x200_DHSSDSC2BB480G401.jpg" title="" alt="" hspace=&quot;5&quot; vspace=&quot;5&quot; id=&quot;piGalImg_1&quot; /></a>

?????????????????????????????????????
 
 

There are 3 conditions to get KissIt  to work:
1. the catalog/includes/modules/kiss_image_thumbnailer/thumbs directory must be writeabel.
    This seems to be ok on your stores, it works on the product_info page and category images.
2. height and width for images must be set to a numeric value.
    This seems to be done in your product listing: <img src=........ width="80" height="80" />
3. The tep_image function must be used to call images. I can't check this in the html source code.This should be the reason why it doesn't work on your product listing.
     Please check this and post the code lines where the images are called in includes/modules/product_listing.php
 
KissIT works correct on your index for the category images:
http://txomega.com/i...MB994IPO3SB.jpg
 
It may also be possible that the problem is related to the modifications of your template. In that case you should ask your template providers for help.
 
regards
Rainer

          $product[$row]['image_size'] = az_get_image_size(DIR_WS_ . $listing['products_image'], '80', '');
          $product[$row]['image']      = tep_image(DIR_WS_ . $listing['products_image'], $listing['products_name'], '80', '');
seems it is calling get_ image instead of tep_image


#223   badbo

badbo
  • Members
  • 179 posts
  • Real Name:Bo Mccoury

Posted 09 February 2015 - 03:41

@badbo,
 
You have a totally confusing setup and you are giving totally confusing information:
1. You say you tried on fresh installs, but your store is modified with a template. Thats why your snapshot looks how it looks.
2. You say you didn't apply the changes to product_info and it's where the kissit modifications are applied. They are not applied on the product listings. There your images point to: images/small/........not to: includes/modules/kiss_image_thumbnailer/thumbs/........
3. "When I use gtmetrix to check. Have a very poor score for scaled images." What do you expect if your images are still scaled from 150x150 to 80x80 in the product listings.
4. In the 2.3.4 store txomega.com you point in the header to the bxgallery and fancybox scripts (included in older versions until 2.3.3.4);

<script type="text/javascript" src="ext/jquery/bxGallery/jquery.bxGallery.1.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="ext/jquery/fancybox/jquery.fancybox-1.3.4.css" />
<script type="text/javascript" src="ext/jquery/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
But in product_info.php you are using the colorbox and photogrid script of 2.3.4:
<script type="text/javascript">
$(function() {
  $('#piGal').css({
    'visibility': 'hidden'
  });

  $('#piGal').photosetGrid({
    layout: '1',
    width: '250px',
    highresLinks: true,
    rel: 'pigallery',
    onComplete: function() {
      $('#piGal').css({ 'visibility': 'visible'});

      $('#piGal a').colorbox({
        maxHeight: '90%',
        maxWidth: '90%',
        rel: 'pigallery'
      });

      $('#piGal img').each(function() {
        var imgid = $(this).attr('id').substring(9);

        if ( $('#piGalDiv_' + imgid).length ) {
          $(this).parent().colorbox({ inline: true, href: "#piGalDiv_" + imgid });
        }
      });
    }
  });
});
</script>
Please if you claim that something doesn't work, try first on a unmodified store installation.
 
regards
Rainer

 

You said:

2. You say you didn't apply the changes to product_info and it's where the kissit modifications are applied. They are not applied on the product listings. There your images point to: images/small/........not to: includes/modules/kiss_image_thumbnailer/thumbs/........

 

Open catalog/product_info.php in your flat file editor

Find ( about line 88 ) ...

          $pi_entry .= '" target="_blank" rel="fancybox">' tep_image(DIR_WS_IMAGES $pi['image']) . '</a>';

Replace with ...

          $pi_entry .= '" target="_blank" rel="fancybox">' tep_imageDIR_WS_IMAGES $pi['image'], ''KISSIT_MAIN_PRODUCT_IMAGE_WIDTHKISSIT_MAIN_PRODUCT_IMAGE_HEIGHT ) . '</a>';

Find ( about lines 104 - 106 )

$('#piGal ul').bxGallery({
  
maxwidth300,
  
maxheight200,

Replace with ...

$('#piGal ul').bxGallery({
  
maxwidth: <?php echo KISSIT_MAIN_PRODUCT_IMAGE_WIDTH?>,
  maxheight: <?php echo KISSIT_MAIN_PRODUCT_IMAGE_HEIGHT?>,

Find ( about line 118 )...

      <?php echo '<a href="' tep_href_link(DIR_WS_IMAGES $product_info['products_image']) . '" target="_blank" rel="fancybox">' tep_image(DIR_WS_IMAGES $product_info['products_image'], addslashes($product_info['products_name']), nullnull'hspace="5" vspace="5"') . '</a>'?>

Replace with ...

      <?php echo '<a href="' tep_href_link(DIR_WS_IMAGES $product_info['products_image']) . '" target="_blank" rel="fancybox">' tep_imageDIR_WS_IMAGES $product_info['products_image'], addslashes($product_info['products_name']), KISSIT_MAIN_PRODUCT_IMAGE_WIDTHKISSIT_MAIN_PRODUCT_IMAGE_HEIGHT'hspace="5" vspace="5"' ) . '</a>'?>

 

Those edits not available on a fresh download of 2.3.4

<?php

/*
  $Id$
 
  osCommerce, Open Source E-Commerce Solutions
 
  Copyright © 2014 osCommerce
 
  Released under the GNU General Public License
*/
 
  require('includes/application_top.php');
 
  if (!isset($HTTP_GET_VARS['products_id'])) {
    tep_redirect(tep_href_link(FILENAME_DEFAULT));
  }
 
  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);
 
  $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
  $product_check = tep_db_fetch_array($product_check_query);
 
  require(DIR_WS_INCLUDES . 'template_top.php');
 
  if ($product_check['total'] < 1) {
?>
 
<div class="contentContainer">
  <div class="contentText">
    <?php echo TEXT_PRODUCT_NOT_FOUND; ?>
  </div>
 
  <div style="float: right;">
    <?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?>
  </div>
</div>
 
<?php
  } else {
    $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
    $product_info = tep_db_fetch_array($product_info_query);
 
    tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");
 
    if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
      $products_price = '<del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
    } else {
      $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
    }
 
    if (tep_not_null($product_info['products_model'])) {
      $products_name = $product_info['products_name'] . '<br /><span class="smallText">[' . $product_info['products_model'] . ']</span>';
    } else {
      $products_name = $product_info['products_name'];
    }
?>
 
<?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?>
 
<div>
  <h1 style="float: right;"><?php echo $products_price; ?></h1>
  <h1><?php echo $products_name; ?></h1>
</div>
 
<div class="contentContainer">
  <div class="contentText">
 
<?php
    if (tep_not_null($product_info['products_image'])) {
      $photoset_layout = '1';
 
      $pi_query = tep_db_query("select image, htmlcontent from " . TABLE_PRODUCTS_IMAGES . " where products_id = '" . (int)$product_info['products_id'] . "' order by sort_order");
      $pi_total = tep_db_num_rows($pi_query);
 
      if ($pi_total > 0) {
        $pi_sub = $pi_total-1;
 
        while ($pi_sub > 5) {
          $photoset_layout .= 5;
          $pi_sub = $pi_sub-5;
        }
 
        if ($pi_sub > 0) {
          $photoset_layout .= ($pi_total > 5) ? 5 : $pi_sub;
        }
?>
 
    <div id="piGal">
 
<?php
        $pi_counter = 0;
        $pi_html = array();
 
        while ($pi = tep_db_fetch_array($pi_query)) {
          $pi_counter++;
 
          if (tep_not_null($pi['htmlcontent'])) {
            $pi_html[] = '<div id="piGalDiv_' . $pi_counter . '">' . $pi['htmlcontent'] . '</div>';
          }
 
          echo tep_image(DIR_WS_IMAGES . $pi['image'], '', '', '', 'id="piGalImg_' . $pi_counter . '"');
        }
?>
 
    </div>
 
<?php
        if ( !empty($pi_html) ) {
          echo '    <div style="display: none;">' . implode('', $pi_html) . '</div>';
        }
      } else {
?>
 
    <div id="piGal">
      <?php echo tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name'])); ?>
    </div>
 
<?php
      }
    }
?>
 
<script type="text/javascript">
$(function() {
  $('#piGal').css({
    'visibility': 'hidden'
  });
 
  $('#piGal').photosetGrid({
    layout: '<?php echo $photoset_layout; ?>',
    width: '250px',
    highresLinks: true,
    rel: 'pigallery',
    onComplete: function() {
      $('#piGal').css({ 'visibility': 'visible'});
 
      $('#piGal a').colorbox({
        maxHeight: '90%',
        maxWidth: '90%',
        rel: 'pigallery'
      });
 
      $('#piGal img').each(function() {
        var imgid = $(this).attr('id').substring(9);
 
        if ( $('#piGalDiv_' + imgid).length ) {
          $(this).parent().colorbox({ inline: true, href: "#piGalDiv_" + imgid });
        }
      });
    }
  });
});
</script>
 
<?php echo stripslashes($product_info['products_description']); ?>
 
<?php
    $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
    $products_attributes = tep_db_fetch_array($products_attributes_query);
    if ($products_attributes['total'] > 0) {
?>
 
    <p><?php echo TEXT_PRODUCT_OPTIONS; ?></p>
 
    <p>
<?php
      $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
      while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
        $products_options_array = array();
        $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");
        while ($products_options = tep_db_fetch_array($products_options_query)) {
          $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
          if ($products_options['options_values_price'] != '0') {
            $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
          }
        }
 
        if (is_string($HTTP_GET_VARS['products_id']) && isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
          $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
        } else {
          $selected_attribute = false;
        }
?>
      <strong><?php echo $products_options_name['products_options_name'] . ':'; ?></strong><br /><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?><br />
<?php
      }
?>
    </p>
 
<?php
    }
?>
 
    <div style="clear: both;"></div>
 
<?php
    if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {
?>
 
    <p style="text-align: center;"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></p>
 
<?php
    }
?>
 
  </div>
 
<?php
    $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd where r.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and r.reviews_id = rd.reviews_id and rd.languages_id = '" . (int)$languages_id . "' and reviews_status = 1");
    $reviews = tep_db_fetch_array($reviews_query);
?>
 
  <div class="buttonSet">
    <span class="buttonAction"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary'); ?></span>
 
    <?php echo tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews['count'] > 0) ? ' (' . $reviews['count'] . ')' : ''), 'comment', tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params())); ?>
  </div>
 
<?php
    if ((USE_CACHE == 'true') && empty($SID)) {
      echo tep_cache_also_purchased(3600);
    } else {
      include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS);
    }
?>
 
</div>
 
</form>
 
<?php
  }
 
  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>


#224   raiwa

raiwa
  • Community Sponsor
  • 671 posts
  • Real Name:Rainer Schmied
  • Gender:Male
  • Location:Sant Iscle de Vallalta, Barcelona, Spain

Posted 09 February 2015 - 09:33



@badbo,

 

I know this:


Those edits not available on a fresh download of 2.3.4

 

And it's just what you tried on your txomega.com 2.3.4 store product_info.php:

<a href="http://txomega.com/images/small/comp/DHSSDSC2BB480G401.jpg" target="_blank"><img width="300" height="200" src="includes/modules/kiss_image_thumbnailer/thumbs/300x200_DHSSDSC2BB480G401.jpg" title="" alt="" hspace=&quot;5&quot; vspace=&quot;5&quot; id=&quot;piGalImg_1&quot; /></a>

I only wanted to explain why the product images do not show on your txomega.com 2.3.4 store product_info.php.

It's all explained: your header is wrong, it's not 2.3.4, and your modifications are wrong. That's all.

If you download the newest version for 2.3.4BS, youll find instructions how to modify the 2.3.4 product_info.php.:

http://addons.oscommerce.com/info/9206

 

 

          $product[$row]['image_size'] = az_get_image_size(DIR_WS_ . $listing['products_image'], '80', '');
          $product[$row]['image']      = tep_image(DIR_WS_ . $listing['products_image'], $listing['products_name'], '80', '');
seems it is calling get_ image instead of tep_image

 

That's it.

You can try to tweak the az_get_image_size funktion to work with kissit or to add a numeric value for height.

Try this:

    $product[$row]['image_size'] = az_get_image_size(DIR_WS_ . $listing['products_image'], '80', '80');
          $product[$row]['image']      = tep_image(DIR_WS_ . $listing['products_image'], $listing['products_name'], '80', '80');
seems it is calling get_ image instead of tep_image

Or contact your template provider for help.

Finally you paid them for the template, I suppose, and they should give you support for it. :-

 

regards

Rainer


Edited by raiwa, 09 February 2015 - 09:38.


#225   badbo

badbo
  • Members
  • 179 posts
  • Real Name:Bo Mccoury

Posted 09 February 2015 - 16:18

@badbo,

 

I know this:


 

And it's just what you tried on your txomega.com 2.3.4 store product_info.php:

<a href="http://txomega.com/images/small/comp/DHSSDSC2BB480G401.jpg" target="_blank"><img width="300" height="200" src="includes/modules/kiss_image_thumbnailer/thumbs/300x200_DHSSDSC2BB480G401.jpg" title="" alt="" hspace=&quot;5&quot; vspace=&quot;5&quot; id=&quot;piGalImg_1&quot; /></a>

I only wanted to explain why the product images do not show on your txomega.com 2.3.4 store product_info.php.

It's all explained: your header is wrong, it's not 2.3.4, and your modifications are wrong. That's all.

If you download the newest version for 2.3.4BS, youll find instructions how to modify the 2.3.4 product_info.php.:

http://addons.oscommerce.com/info/9206

 

That's it.

You can try to tweak the az_get_image_size funktion to work with kissit or to add a numeric value for height.

Try this:

    $product[$row]['image_size'] = az_get_image_size(DIR_WS_ . $listing['products_image'], '80', '80');
          $product[$row]['image']      = tep_image(DIR_WS_ . $listing['products_image'], $listing['products_name'], '80', '80');
seems it is calling get_ image instead of tep_image

Or contact your template provider for help.

Finally you paid them for the template, I suppose, and they should give you support for it. :-

 

regards

Rainer

Thanks Rainer i will give it a try



#226   newburns

newburns
  • Members
  • 232 posts
  • Real Name:Ray Burns
  • Gender:Male
  • Location:Texas

Posted 11 February 2015 - 02:32

@Rainer

Just updated my github collab with your changes.

Do you mind checking it out before I push the changes to the master?

https://github.com/n...tree/KISSit-R11



#227   raiwa

raiwa
  • Community Sponsor
  • 671 posts
  • Real Name:Rainer Schmied
  • Gender:Male
  • Location:Sant Iscle de Vallalta, Barcelona, Spain

Posted 11 February 2015 - 08:51

@Rainer

Just updated my github collab with your changes.

Do you mind checking it out before I push the changes to the master?

https://github.com/n...tree/KISSit-R11

Hello Ray @newburns,

 

I had a look on the files and it seems all ok. Remember only that the modifications in product_info.php will limit the big image size in the pop up to the size defined for KissIT Product Main Image Width and Height. So it may not be suitable for all stores.

 

Thank you and kind regards

Rainer



#228   ndiggity

ndiggity
  • Members
  • 9 posts
  • Real Name:ND
  • Gender:Male

Posted 12 February 2015 - 18:36

Thank you very much for this addon and supporting it!  I have to say, that was about the easiest install ever!

 

Everything seems to be working well except transparency.  I see that there is code for it in image.php but for some reason the transparent space in my PNGs are being filled with the RGB value in 'thumb_background_rgb'.  Is there something I need to do differently than the stock install to maintain transparency?  Does the original image need to be of a certain specification?  My PNGs were generated from BMPs in GIMP2.8 by setting the background color (white) to transparent via Layer->Transparency->Color to Alpha.

 

My store was originally a 2.3.1 and has been upgraded to 2.3.4.  I'm running PHP 5.2.17.  I installed the version found here... version R11 (http://addons.oscommerce.com/info/9206) using instructions found in osc_standard_installation.docx.  BTW, the legacy tep_image() maintained the transparency.  Any help would be appreciated.  Thank you :-)


Edited by ndiggity, 12 February 2015 - 18:39.


#229   douglaswalker

douglaswalker
  • Members
  • 36 posts
  • Real Name:Doug
  • Gender:Male
  • Location:Western Australia

Posted 13 February 2015 - 05:19

Hi there

just wondered if your adjustments to the addon also make the thumbnails image responsive.

Warm regards

Doug



#230   raiwa

raiwa
  • Community Sponsor
  • 671 posts
  • Real Name:Rainer Schmied
  • Gender:Male
  • Location:Sant Iscle de Vallalta, Barcelona, Spain

Posted 13 February 2015 - 11:05

Thank you very much for this addon and supporting it!  I have to say, that was about the easiest install ever!
 
Everything seems to be working well except transparency.  I see that there is code for it in image.php but for some reason the transparent space in my PNGs are being filled with the RGB value in 'thumb_background_rgb'.  Is there something I need to do differently than the stock install to maintain transparency?  Does the original image need to be of a certain specification?  My PNGs were generated from BMPs in GIMP2.8 by setting the background color (white) to transparent via Layer->Transparency->Color to Alpha.
 
My store was originally a 2.3.1 and has been upgraded to 2.3.4.  I'm running PHP 5.2.17.  I installed the version found here... version R11 (http://addons.oscommerce.com/info/9206) using instructions found in osc_standard_installation.docx.  BTW, the legacy tep_image() maintained the transparency.  Any help would be appreciated.  Thank you :-)

 
Hello @ndiggity,
 
Thank you, all goes to the original author FWR Media.
I have to say that I took the add-on and thread over with the r10+11 update which is only related to bootstrap suppport and the new limit upsize feature I added.
I found a post in this thread from the original author saying:
 

 Posted by FWR Media on 23 July 2012 - 14:23 in Templates and Images

There is no support for transparencies as most usage is for non transparent.

 
Sorry and kind regards
Rainer



#231   raiwa

raiwa
  • Community Sponsor
  • 671 posts
  • Real Name:Rainer Schmied
  • Gender:Male
  • Location:Sant Iscle de Vallalta, Barcelona, Spain

Posted 13 February 2015 - 11:12

Hi there

just wondered if your adjustments to the addon also make the thumbnails image responsive.

Warm regards

Doug

Hello Doug @douglaswalker,

 

My modifications have no influence on that.

I believe image responsiveness in the sense of auto thumbnail resizing depends for the KissIT thumbnail script on the css framework.

KissIt Thumbnails are responsive with OsC2.3.4 bootstrap.

For standard OsC versions it will be much easier to achieve with OPI image thumbnailer. It does not need fixed-numeric image size and you can auto resize the thumbnails just setting image width and height to "auto", or using css:

img {
        max-width: 100%;
        height: auto; 
        width: auto\9; /* ie8 */
}

Kind regards

Rainer


Edited by raiwa, 13 February 2015 - 11:13.


#232   kudos

kudos
  • Members
  • 20 posts
  • Real Name:Robert

Posted 16 February 2015 - 22:59

just tryed to put the latest version on my site but i am getting a error in the html_output file

PHP Parse error:  syntax error, unexpected T_VARIABLE in includes/functions/html_output.php on line 29

here is my file,  can any one see the error?

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/

////
// Ultimate SEO URLs v2.2d
// The HTML href link wrapper function
 function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
   global $seo_urls;                
   if ( !is_object($seo_urls) ){
    if ( !class_exists('SEO_URL') ){
     include_once(DIR_WS_CLASSES . 'seo.class.php');
    }
    global $languages_id;
    $seo_urls = new SEO_URL($languages_id);
   }
   return $seo_urls->href_link($page, $parameters, $connection, $add_session_id);
 }

// New HTML image wrapper function modified for KISS Image Thumbnailer by FWR Media
  function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
    // If width and height are not numeric then we can't do anything with it
    if ( !is_numeric ( $width ) || !is_numeric ( $height ) ) return tep_image_legacy( $src, $alt, $width, $height, $parameters ) ;
  require_once DIR_WS_MODULES . 'kiss_image_thumbnailer/classes/Image_Helper.php';
    $attributes = array( 'alt' => $alt, 'width' => $width, 'height' => $height );
    $image = new Image_Helper( array( 'src'                   => $src,
                                      'attributes'            => $attributes,
                                      'parameters'            => $parameters,
                                      'default_missing_image' => DIR_WS_IMAGES . 'no_image_available_150_150.gif',
                                      'isXhtml'               => true,
                                      'thumbs_dir_path'       => DIR_WS_MODULES . 'kiss_image_thumbnailer/thumbs/',
                                      'thumb_quality'         => 75,
                                      'thumb_background_rgb' => array( 'red'   => 255,
                                                                       'green' => 255,
                                                                       'blue'  => 255 ) ) );
    if ( false === $image_assembled = $image->assemble() ) {
      return tep_image_legacy( $src, $alt, $width, $height, $parameters );
    }
    return $image_assembled;
  } // end function
////
// The HTML image wrapper function
  function tep_image_legacy($src, $alt = '', $width = '', $height = '', $parameters = '') {
  
  
      if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
      return false;
    }
// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
    $image = '<img src="' . tep_output_string($src) . '" alt="' . tep_output_string($alt) . '"';

    if (tep_not_null($alt)) {
      $image .= ' title="' . tep_output_string($alt) . '"';
    }

    if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) {
      if ($image_size = @getimagesize($src)) {
        if (empty($width) && tep_not_null($height)) {
          $ratio = $height / $image_size[1];
          $width = intval($image_size[0] * $ratio);
        } elseif (tep_not_null($width) && empty($height)) {
          $ratio = $width / $image_size[0];
          $height = intval($image_size[1] * $ratio);
        } elseif (empty($width) && empty($height)) {
          $width = $image_size[0];
          $height = $image_size[1];
        }
      } elseif (IMAGE_REQUIRED == 'false') {
        return false;
      }
    }

    if (tep_not_null($width) && tep_not_null($height)) {
      $image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
    }

    if (tep_not_null($parameters)) $image .= ' ' . $parameters;

    $image .= ' />';

    return $image;
  }

////
// The HTML form submit button wrapper function
// Outputs a button in the selected language
  function tep_image_submit($image, $alt = '', $parameters = '') {
    global $language;

    $image_submit = '<input type="image" src="' . tep_output_string(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image) . '" alt="' . tep_output_string($alt) . '"';

    if (tep_not_null($alt)) $image_submit .= ' title=" ' . tep_output_string($alt) . ' "';

    if (tep_not_null($parameters)) $image_submit .= ' ' . $parameters;

    $image_submit .= ' />';

    return $image_submit;
  }

////
// Output a function button in the selected language
  function tep_image_button($image, $alt = '', $parameters = '') {
    global $language;

    return tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image, $alt, '', '', $parameters);
  }

////
// Output a separator either through whitespace, or with an image
  function tep_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') {
    return tep_image(DIR_WS_IMAGES . $image, '', $width, $height);
  }

////
// Output a form
  function tep_draw_form($name, $action, $method = 'post', $parameters = '', $tokenize = false) {
    global $sessiontoken;

    $form = '<form name="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '"';

    if (tep_not_null($parameters)) $form .= ' ' . $parameters;

    $form .= '>';

    if ( ($tokenize == true) && isset($sessiontoken) ) {
      $form .= '<input type="hidden" name="formid" value="' . tep_output_string($sessiontoken) . '" />';
    }

    return $form;
  }

////
// Output a form input field
  function tep_draw_input_field($name, $value = '', $parameters = '', $type = 'text', $reinsert_value = true) {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

    if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
      if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
        $value = stripslashes($HTTP_GET_VARS[$name]);
      } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
        $value = stripslashes($HTTP_POST_VARS[$name]);
      }
    }

    if (tep_not_null($value)) {
      $field .= ' value="' . tep_output_string($value) . '"';
    }

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= ' />';

    return $field;
  }

////
// Output a form password field
  function tep_draw_password_field($name, $value = '', $parameters = 'maxlength="40"') {
    return tep_draw_input_field($name, $value, $parameters, 'password', false);
  }

////
// Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field()
  function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $selection = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

    if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"';

    if ( ($checked == true) || (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name]) && (($HTTP_GET_VARS[$name] == 'on') || (stripslashes($HTTP_GET_VARS[$name]) == $value))) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name]) && (($HTTP_POST_VARS[$name] == 'on') || (stripslashes($HTTP_POST_VARS[$name]) == $value))) ) {
      $selection .= ' checked="checked"';
    }

    if (tep_not_null($parameters)) $selection .= ' ' . $parameters;

    $selection .= ' />';

    return $selection;
  }

////
// Output a form checkbox field
  function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') {
    return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters);
  }

////
// Output a form radio field
  function tep_draw_radio_field($name, $value = '', $checked = false, $parameters = '') {
    return tep_draw_selection_field($name, 'radio', $value, $checked, $parameters);
  }

////
// Output a form textarea field
// The $wrap parameter is no longer used in the core xhtml template
  function tep_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<textarea name="' . tep_output_string($name) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

    if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
      if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
      } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
      }
    } elseif (tep_not_null($text)) {
      $field .= tep_output_string_protected($text);
    }

    $field .= '</textarea>';

    return $field;
  }

////
// Output a form hidden field
  function tep_draw_hidden_field($name, $value = '', $parameters = '') {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<input type="hidden" name="' . tep_output_string($name) . '"';

    if (tep_not_null($value)) {
      $field .= ' value="' . tep_output_string($value) . '"';
    } elseif ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) {
      if ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) ) {
        $field .= ' value="' . tep_output_string(stripslashes($HTTP_GET_VARS[$name])) . '"';
      } elseif ( (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) {
        $field .= ' value="' . tep_output_string(stripslashes($HTTP_POST_VARS[$name])) . '"';
      }
    }

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= ' />';

    return $field;
  }

////
// Hide form elements
  function tep_hide_session_id() {
    global $session_started, $SID;

    if (($session_started == true) && tep_not_null($SID)) {
      return tep_draw_hidden_field(tep_session_name(), tep_session_id());
    }
  }

////
// Output a form pull down menu
  function tep_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<select name="' . tep_output_string($name) . '"';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

    if (empty($default) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
      if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
        $default = stripslashes($HTTP_GET_VARS[$name]);
      } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
        $default = stripslashes($HTTP_POST_VARS[$name]);
      }
    }

    for ($i=0, $n=sizeof($values); $i<$n; $i++) {
      $field .= '<option value="' . tep_output_string($values[$i]['id']) . '"';
      if ($default == $values[$i]['id']) {
        $field .= ' selected="selected"';
      }

      $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '&quot;', '\'' => '&#039;', '<' => '&lt;', '>' => '&gt;')) . '</option>';
    }
    $field .= '</select>';

    if ($required == true) $field .= TEXT_FIELD_REQUIRED;

    return $field;
  }

////
// Creates a pull-down list of countries
  function tep_get_country_list($name, $selected = '', $parameters = '') {
    $countries_array = array(array('id' => '', 'text' => PULL_DOWN_DEFAULT));
    $countries = tep_get_countries();

    for ($i=0, $n=sizeof($countries); $i<$n; $i++) {
      $countries_array[] = array('id' => $countries[$i]['countries_id'], 'text' => $countries[$i]['countries_name']);
    }

    return tep_draw_pull_down_menu($name, $countries_array, $selected, $parameters);
  }

////
// Output a jQuery UI Button
  function tep_draw_button($title = null, $icon = null, $link = null, $priority = null, $params = null) {
    static $button_counter = 1;

    $types = array('submit', 'button', 'reset');

    if ( !isset($params['type']) ) {
      $params['type'] = 'submit';
    }

    if ( !in_array($params['type'], $types) ) {
      $params['type'] = 'submit';
    }

    if ( ($params['type'] == 'submit') && isset($link) ) {
      $params['type'] = 'button';
    }

    if (!isset($priority)) {
      $priority = 'secondary';
    }

    $button = '<span class="tdbLink">';

    if ( ($params['type'] == 'button') && isset($link) ) {
      $button .= '<a id="tdb' . $button_counter . '" href="' . $link . '"';

      if ( isset($params['newwindow']) ) {
        $button .= ' target="_blank"';
      }
    } else {
      $button .= '<button id="tdb' . $button_counter . '" type="' . tep_output_string($params['type']) . '"';
    }

    if ( isset($params['params']) ) {
      $button .= ' ' . $params['params'];
    }

    $button .= '>' . $title;

    if ( ($params['type'] == 'button') && isset($link) ) {
      $button .= '</a>';
    } else {
      $button .= '</button>';
    }

    $button .= '</span><script type="text/javascript">$("#tdb' . $button_counter . '").button(';

    $args = array();

    if ( isset($icon) ) {
      if ( !isset($params['iconpos']) ) {
        $params['iconpos'] = 'left';
      }

      if ( $params['iconpos'] == 'left' ) {
        $args[] = 'icons:{primary:"ui-icon-' . $icon . '"}';
      } else {
        $args[] = 'icons:{secondary:"ui-icon-' . $icon . '"}';
      }
    }

    if (empty($title)) {
      $args[] = 'text:false';
    }

    if (!empty($args)) {
      $button .= '{' . implode(',', $args) . '}';
    }

    $button .= ').addClass("ui-priority-' . $priority . '").parent().removeClass("tdbLink");</script>';

    $button_counter++;

    return $button;
  }


////
// Output a form radio menu for product info page maniac101
  function tep_draw_radio_menu($name, $values, $default = '', $parameters = '', $required = false) {
	$field ='<table border="0" cellspacing="0" cellpadding="0"><tr><td class="main">';   
	if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);

    for ($i=0, $n=sizeof($values); $i<$n; $i++) {
	  $value = tep_output_string($values[$i]['id']);
      $field .= '<input type="radio" name="' . $name . '" value="' . $value . '"';
        if ($i == 0) $field .= ' checked';

      $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '&quot;', '\'' => '&#039;', '<' => '&lt;', '>' => '&gt;')) . '<br />';
    }
    $field .= '</td></tr></table>';

    if ($required == true) $field .= TEXT_FIELD_REQUIRED;

    return $field;
  }

////

////
// Creates a pull-down list for dates	
  function tep_draw_pull_down_date($name='date', $day='', $month='', $year='', $full=false, $mnth=false, $starty=''){
    if ($day=='') $day= '0' ;
    if ($month=='') $month = '0';
    if ($year=='') $year= '0';
    
    $endy=date('Y')-8;
    if ($starty=='') {
      $starty=date('Y')-1;$endy=date('Y')+2;
    } 
    $named = $name . 'd';
    $namem = $name . 'm';
    $namey = $name . 'Y';
	
// Array for days
    $defaultday[0] = array('id' => '0',
			  'text' => TEXT_DATE_DAY);        	    
    
    for($i=1; $i<=31; $i++) {
      if(strlen($i)!= 2) {
        $j = '0' . $i;
      } else {
        $j = $i;
      } 

      $days[] = array('id' => $j, 'text' => $j);
    }
    if ( $day == '0' ) 
      $days = array_merge($defaultday, $days);

// Array for months
    $defaultmonth[0] = array('id' => '0',
			  'text' => TEXT_DATE_MONTH);        	    
    if ($mnth) {
      $months = array(array('id' => '01', 'text' => TEXT_DATE_JAN),
      	              array('id' => '02', 'text' => TEXT_DATE_FEB),
      	              array('id' => '03', 'text' => TEXT_DATE_MAR),
      	              array('id' => '04', 'text' => TEXT_DATE_APR),
      	              array('id' => '05', 'text' => TEXT_DATE_MAY),
      	              array('id' => '06', 'text' => TEXT_DATE_JUN),
      	              array('id' => '07', 'text' => TEXT_DATE_JUL),
      	              array('id' => '08', 'text' => TEXT_DATE_AUG),
      	              array('id' => '09', 'text' => TEXT_DATE_SEP),
      	              array('id' => '10', 'text' => TEXT_DATE_OCT),
      	              array('id' => '11', 'text' => TEXT_DATE_NOV),
      	              array('id' => '12', 'text' => TEXT_DATE_DEC));
    } else {
      for($i=1; $i<=12; $i++) {
        if(strlen($i)!= 2){
          $j = '0' . $i;
        } else {
          $j = $i;
        } 
        $months[] = array('id' => $j, 'text' => $j);
      }
    }
    if ( $month == '0' ) 
      $months = array_merge($defaultmonth, $months);

// Array for years
    $defaultyear[0] = array('id' => '0',
			  'text' => TEXT_DATE_YEAR);
    
    for($i=$starty; $i<=$endy; $i++) {
      $j = $i;
      if ($full) {
        $y = $i - 2000;
        if(strlen($y)!= 2) {
          $j = '0' . $y;
        } else {
          $j = $y;
        }
      }
      $years[] = array('id' => $i, 'text' => $j);
    }
    
    if ( $year == '0' ) 
      $years = array_merge($defaultyear, $years);
    
    $field='';

    switch (DATE_FORMAT) {
      case 'd/m/Y':
        $field .= tep_draw_pull_down_menu($named, $days, $day);
        $field .= tep_draw_pull_down_menu($namem, $months, $month);
        $field .= tep_draw_pull_down_menu($namey, $years, $year);
        break;
      case 'm/d/Y':
        $field .= tep_draw_pull_down_menu($named, $months, $month);
        $field .= tep_draw_pull_down_menu($namem, $days, $day);
        $field .= tep_draw_pull_down_menu($namey, $years, $year);
        break;
      case 'Y/m/d':
        $field .= tep_draw_pull_down_menu($named, $years, $year);
        $field .= tep_draw_pull_down_menu($namem, $months, $month);
        $field .= tep_draw_pull_down_menu($namey, $days, $day);
        break;
      default:
        $field .= tep_draw_pull_down_menu($named, $days, $day);
        $field .= tep_draw_pull_down_menu($namem, $months, $month);
        $field .= tep_draw_pull_down_menu($namey, $years, $year);
        break;
    }

    return $field ;
  }

////
?>

thanks,



#233   raiwa

raiwa
  • Community Sponsor
  • 671 posts
  • Real Name:Rainer Schmied
  • Gender:Male
  • Location:Sant Iscle de Vallalta, Barcelona, Spain

Posted 17 February 2015 - 08:25

Hello Robert @kudos,

 

Your tep_image function is ok. It seems a parameter passed to the function is invalid.You may have an error in the page where the function is called (if it happens only on one page) or, if it happens on several pages, you may have an non numeric value in the image sizes defined in Admin : Configuration : images.

Remember you need to use a numeric value for image width and image height.



#234   kudos

kudos
  • Members
  • 20 posts
  • Real Name:Robert

Posted 17 February 2015 - 13:22

Hi

thanks for the reply

happens on any page i try to go to, i tried main page, product_info etc , same error

 

i checked the admin, it does have the defaults in there...

450

600

 

maybe its in a whats new scroll box

ill have a poke around later on see if i can find the problem at least you have me some ideas where to check with a function call.



#235   kudos

kudos
  • Members
  • 20 posts
  • Real Name:Robert

Posted 17 February 2015 - 22:21

i got this to work in the end....

 

i found a older html_output.php file, took the code from that (copy, paste over my backup file) made any mods

and then it all worked, but i cant see what is different only that maybe copying it from the word doc files it has some odd hidden formatting in place?

 

as i had the same issue with the

2334standard_product_info.php

 

line 122 , Syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'

<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) '', 'NONSSL', false) . '" target="_blank" rel="fancybox">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), KISSIT_MAIN_PRODUCT_IMAGE_WIDTH, KISSIT_MAIN_PRODUCT_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '</a>'; ?>
  

but i could not see the error.. took the same line from a different file, and put the kissit mods into the line and all worked

i dont know if its files i have or it is in the release version might be worth a check. thought id give a heads up what my problem was tho might help



#236   queenzukie

queenzukie
  • Members
  • 663 posts
  • Real Name:Rachael
  • Gender:Female
  • Location:USA

Posted 12 March 2015 - 18:10

Just checking my webmaster tools on google and noticed something new. The Blocked Resources link. Sooooo, I clicked on it and I have 7,724 blocked resources and it looks like so far google wants to see my  /includes/modules/kiss_image_thumbnailer/thumbs/ folder to pull out all those little images.

 

Is there a way to allow that particular folder only or do I have to move it and recode to send the images to their new spot?

 

Here's a link to the info on google. https://support.goog.../answer/6153277

 

I do have my includes folder blocked in robots.txt

 

Thanks in advance for your assistance. 


Edited by queenzukie, 12 March 2015 - 18:11.


#237   raiwa

raiwa
  • Community Sponsor
  • 671 posts
  • Real Name:Rainer Schmied
  • Gender:Male
  • Location:Sant Iscle de Vallalta, Barcelona, Spain

Posted 12 March 2015 - 18:25

Just checking my webmaster tools on google and noticed something new. The Blocked Resources link. Sooooo, I clicked on it and I have 7,724 blocked resources and it looks like so far google wants to see my  /includes/modules/kiss_image_thumbnailer/thumbs/ folder to pull out all those little images.

 

Is there a way to allow that particular folder only or do I have to move it and recode to send the images to their new spot?

 

Here's a link to the info on google. https://support.goog.../answer/6153277

 

I do have my includes folder blocked in robots.txt

 

Thanks in advance for your assistance. 

 

Hello Rachael @queenzukie,

 

I believe the best then is to move your thumbnail folder into the images folder and correct the path in the tep_image function in includes/functions/html_output.php:

                                      'thumbs_dir_path'       => DIR_WS_MODULES . 'kiss_image_thumbnailer/thumbs/',

Could be:

                                      'thumbs_dir_path'       => DIR_WS_IMAGES . 'thumbs/',

regards

Rainer



#238   queenzukie

queenzukie
  • Members
  • 663 posts
  • Real Name:Rachael
  • Gender:Female
  • Location:USA

Posted 12 March 2015 - 18:35

Thanks! I'll work on getting it moved.