Page 1 of 3 123 LastLast
Results 1 to 10 of 27
  1. #1
    Join Date
    Jul 2005
    Location
    Upstate NY
    Posts
    22,004
    Plugin Contributions
    25

    Default Gallery Category support thread

    The Gallery Category mod is now available in Downloads - Other Modules.
    ########################################____

    Stores with one-of-a-kind products may benefit from a showcase gallery for sold items.

    This mod allows regular products to be simply moved to one or more designated categories when sold; they will then, in product listing and product info pages, appear without price or add to cart/sold out displays.

    Other elements of display can also be turned off or modified following simple coding examples.

    This may also be useful for upcoming items which are not yet available for sale.
    ########################################____

    Please post any problems, comments, or requests for additional functionality here.

  2. #2
    Join Date
    May 2005
    Location
    England
    Posts
    603
    Plugin Contributions
    0

    Default Re: Gallery Category support thread

    Very nice. Everything works as said. I would have liked to have kept my display product listing as columns mod, but it threw an error. Said unexpected 'else' statement. I merged everything carefully. I think it is just a clash between the two mods. But it doesn't matter, I am glad you created this contribution, as it has been in my mind for a while.

    Thanks!

  3. #3
    Join Date
    Aug 2004
    Posts
    1,590
    Plugin Contributions
    1

    Default Re: Gallery Category support thread

    Would it be possible to see a screenshot of this MOD ?

  4. #4
    Join Date
    Jul 2005
    Location
    Upstate NY
    Posts
    22,004
    Plugin Contributions
    25

    Default Re: Gallery Category support thread

    The only difference between this mod's display and a stock display will be the absense of the price, add to cart and quantity in stock elements.
    On the product listing page, the Price and Qty headings will disappear also.
    These effects will only occur in designated gallery categories.

    After looking through the Column Grid version of product_listing.php, it appears that it should be possible to combine the two; but since Column Grid adds a number of manipulations to the data, the gallery code would have to be tailored and extended, not just merged. I will look into doing this, as Column Grid is a popular mod, though I can't give a timetable.

  5. #5

    Default Re: Gallery Category support thread

    I am very slow when it comes to things like this. I tried to download the gallery add on but have no idea what to do. I read the read me text. I cannot open the other section. I had someone put everything together for me but could not finish the job. I don't even know how I would have gotten the cart to work. I got the book which has helped a lot but adding this is very confusing to me. Can someone break it down...barney style for me please?

  6. #6
    Join Date
    Nov 2006
    Location
    Papworth, Cambridgeshire, UK
    Posts
    731
    Plugin Contributions
    3

    Default Re: Gallery Category support thread

    GJH42, I think you need to stress the Gallery CATEGORY! mod side. It ended up right next to the Gallery2 image gallery integration mod.

  7. #7
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,023
    Plugin Contributions
    32

    Default Re: Gallery Category support thread

    I would like to see a working version of this mod.. Anyone got a URL where one could see this in action??

  8. #8
    Join Date
    Jul 2007
    Posts
    12
    Plugin Contributions
    0

    Default Re: Gallery Category support thread

    Any luck with combining the Column and Gallery Mods? I would love to start using the Gallery mod for a sold category but cannot afford to lose the Column mod functionality.

  9. #9
    Join Date
    Jul 2005
    Location
    Upstate NY
    Posts
    22,004
    Plugin Contributions
    25

    Default Re: Gallery Category support thread

    I have added the Gallery Category code to the Column Grid version of product_listing.php with some tweaks to accommodate column mode. I don't have Column Grid installed to test it, so I would appreciate some testers - please try this on a development installation first. Let me know how it works, and when it is verified to be functional I will add it as an alternate option to the download.
    PHP Code:
    <?php
    /**
     * product_listing module
     *
     * @package modules
     * @copyright Copyright 2003-2006 Zen Cart Development Team
     * @copyright Portions Copyright 2003 osCommerce
     * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
     * @version $Id: product_listing.php 4655 2006-10-02 01:02:38Z ajeh $
     * UPDATED TO WORK WITH COLUMNAR PRODUCT LISTING For Zen Cart v1.3.6 - 10/25/2006
     */
    if (!defined('IS_ADMIN_FLAG')) {
      die(
    'Illegal Access');
    }
    // Column Layout Support originally added for Zen Cart v 1.1.4 by Eric Stamper - 02/14/2004
    // Upgraded to be compatible with Zen-cart v 1.2.0d by Rajeev Tandon - Aug 3, 2004
    // Column Layout Support (Grid Layout) upgraded for v1.3.0 compatibility DrByte 04/04/2006
    // modified for Gallery Category v1.0  by Glenn Herbert (gjh42) 2007-11-04
    //
    if (!defined('PRODUCT_LISTING_LAYOUT_STYLE')) define('PRODUCT_LISTING_LAYOUT_STYLE','rows');
    if (!
    defined('PRODUCT_LISTING_COLUMNS_PER_ROW')) define('PRODUCT_LISTING_COLUMNS_PER_ROW',3);
    $row 0;
    $col 0;
    $list_box_contents = array();
    $title '';

    $max_results = (PRODUCT_LISTING_LAYOUT_STYLE=='columns' && PRODUCT_LISTING_COLUMNS_PER_ROW>0) ? (PRODUCT_LISTING_COLUMNS_PER_ROW * (int)(MAX_DISPLAY_PRODUCTS_LISTING/PRODUCT_LISTING_COLUMNS_PER_ROW)) : MAX_DISPLAY_PRODUCTS_LISTING;


    $show_submit zen_run_normal();
    $listing_split = new splitPageResults($listing_sql$max_results'p.products_id''page');
    $how_many 0;
    //gallery category test
    $gallery_skips 0//flag for reducing # of columns
    $not_gallery 1;
    if (
    ereg("(^23$|^23_)",$cPath)) { //this is a gallery category (replace 23 with your cat id)
      
    $not_gallery 0;
    // /gallery category test

    // Begin Row Layout Header
    if (PRODUCT_LISTING_LAYOUT_STYLE == 'rows') {        // For Column Layout (Grid Layout) add on module

      
    $list_box_contents[0] = array('params' => 'class="productListing-rowheading"');

      
    $zc_col_count_description 0;
      
    $lc_align '';

      for (
    $col=0$n=sizeof($column_list); $col<$n$col++) {
      
    $gallery_skip_now 0//reset flag for skipping column write
        
    switch ($column_list[$col]) {
          case 
    'PRODUCT_LIST_MODEL':
            
    $lc_text TABLE_HEADING_MODEL;
            
    $lc_align '';
            
    $zc_col_count_description++;
            break;
          case 
    'PRODUCT_LIST_NAME':
            
    $lc_text TABLE_HEADING_PRODUCTS;
            
    $lc_align '';
            
    $zc_col_count_description++;
            break;
          case 
    'PRODUCT_LIST_MANUFACTURER':
            
    $lc_text TABLE_HEADING_MANUFACTURER;
            
    $lc_align '';
            
    $zc_col_count_description++;
            break;
        case 
    'PRODUCT_LIST_PRICE':
        if(
    $not_gallery) { //delete this line for price to be displayed in gallery
          
    $lc_text TABLE_HEADING_PRICE;
          
    $lc_align 'right' . (PRODUCTS_LIST_PRICE_WIDTH '" width="' PRODUCTS_LIST_PRICE_WIDTH '');
          
    $zc_col_count_description++;
        } else { 
    //delete these 4 lines for price to be displayed in gallery
          
    $gallery_skip_now 1//gallery
          
    $gallery_skips++; //gallery
        
    }  // /not_gallery 
        
    break;
        case 
    'PRODUCT_LIST_QUANTITY':
        if(
    $not_gallery) { //display if not gallery
          
    $lc_text TABLE_HEADING_QUANTITY;
          
    $lc_align 'right';
          
    $zc_col_count_description++;
        } else { 
    //gallery
          
    $gallery_skip_now 1
          
    $gallery_skips++;
        } 
    // /not_gallery
        
    break;
          case 
    'PRODUCT_LIST_WEIGHT':
            
    $lc_text TABLE_HEADING_WEIGHT;
            
    $lc_align 'right';
            
    $zc_col_count_description++;
            break;
          case 
    'PRODUCT_LIST_IMAGE':
            
    $lc_text TABLE_HEADING_IMAGE;
            
    $lc_align 'center';
            
    $zc_col_count_description++;
            break;
        }

        if ( (
    $column_list[$col] != 'PRODUCT_LIST_IMAGE') ) {
          
    $lc_text zen_create_sort_heading($_GET['sort'], $col+1$lc_text);
        }

      
    // skip column in output array for gallery
      
    if ($gallery_skip_now == 1) {
        
    //don't add a column this time
      
    } else {
        
    $list_box_contents[0][$col $gallery_skips] = array('align' => $lc_align,
                                          
    'params' => 'class="productListing-heading"',
                                          
    'text' => $lc_text );
      }
      }

    // End Row Layout Header used in Column Layout (Grid Layout) add on module

    /////////////  HEADER ROW ABOVE /////////////////////////////////////////////////

    $num_products_count $listing_split->number_of_rows;

    if (
    $listing_split->number_of_rows 0) {
      
    $rows 0;
      
    // Used for Column Layout (Grid Layout) add on module
      
    $column 0;    
      if (
    PRODUCT_LISTING_LAYOUT_STYLE == 'columns') {
        if (
    $num_products_count PRODUCT_LISTING_COLUMNS_PER_ROW || PRODUCT_LISTING_COLUMNS_PER_ROW == ) {
          
    $col_width floor(100/$num_products_count) - 0.5;
        } else {
          
    $col_width floor(100/PRODUCT_LISTING_COLUMNS_PER_ROW) - 0.5;
        }
      }
      
    // Used for Column Layout (Grid Layout) add on module


      
    $listing $db->Execute($listing_split->sql_query);
      
    $extra_row 0;
      while (!
    $listing->EOF) {

        if (
    PRODUCT_LISTING_LAYOUT_STYLE == 'rows') { // Used in Column Layout (Grid Layout) Add on module
          
    $rows++;

          if (((
    $rows-$extra_row)/2) == floor(($rows-$extra_row)/2)) {
            
    $list_box_contents[$rows] = array('params' => 'class="productListing-even"');
          } else {
            
    $list_box_contents[$rows] = array('params' => 'class="productListing-odd"');
          }

          
    $cur_row sizeof($list_box_contents) - 1;
        }   
    // End of Conditional execution - only for row (regular style layout)

        
    $product_contents = array(); // Used For Column Layout (Grid Layout) Add on module

        
    $gallery_skips 0//reset flag for reducing # of columns
        
    for ($col=0$n=sizeof($column_list); $col<$n$col++) {
          
    $lc_align '';
          
    $lc_text ''//gallery - needed for column grid mode
          
    $gallery_skip_now 0//reset flag for skipping column write
          
          
    switch ($column_list[$col]) {
            case 
    'PRODUCT_LIST_MODEL':
              
    $lc_align '';
              
    $lc_text $listing->fields['products_model'];
              break;
            case 
    'PRODUCT_LIST_NAME':
              
    $lc_align '';
              if (isset(
    $_GET['manufacturers_id'])) {
                
    $lc_text '<h3 class="itemTitle"><a href="' zen_href_link(zen_get_info_page($listing->fields['products_id']), 'products_id=' $listing->fields['products_id']) . '">' $listing->fields['products_name'] . '</a></h3><div class="listingDescription">' zen_trunc_string(zen_clean_html(stripslashes(zen_get_products_description($listing->fields['products_id'], $_SESSION['languages_id']))), PRODUCT_LIST_DESCRIPTION) . '</div>' ;
              } else {
                
    $lc_text '<h3 class="itemTitle"><a href="' zen_href_link(zen_get_info_page($listing->fields['products_id']), ($_GET['cPath'] > 'cPath=' $_GET['cPath'] . '&' '') . 'products_id=' $listing->fields['products_id']) . '">' $listing->fields['products_name'] . '</a></h3><div class="listingDescription">' zen_trunc_string(zen_clean_html(stripslashes(zen_get_products_description($listing->fields['products_id'], $_SESSION['languages_id']))), PRODUCT_LIST_DESCRIPTION) . '</div>';
              }
              break;
            case 
    'PRODUCT_LIST_MANUFACTURER':
              
    $lc_align '';
              
    $lc_text '<a href="' zen_href_link(FILENAME_DEFAULT'manufacturers_id=' $listing->fields['manufacturers_id']) . '">' $listing->fields['manufacturers_name'] . '</a>';
              break;
            case 
    'PRODUCT_LIST_PRICE':
            if(
    $not_gallery) { //delete this line for price to be displayed in gallery
            
    $lc_price zen_get_products_display_price($listing->fields['products_id']) . '<br />';
            
    $lc_align 'right';
            
    $lc_text =  $lc_price;
            
    // if($not_gallery) {  //uncomment this line for price to be displayed in gallery
            // more info in place of buy now
              
    $lc_button '';
              if (
    zen_has_product_attributes($listing->fields['products_id']) or PRODUCT_LIST_PRICE_BUY_NOW == '0') {
                
    $lc_button '<a href="' zen_href_link(zen_get_info_page($listing->fields['products_id']), ($_GET['cPath'] > 'cPath=' $_GET['cPath'] . '&' '') . 'products_id=' $listing->fields['products_id']) . '">' MORE_INFO_TEXT '</a>';
              } else {
                if (
    PRODUCT_LISTING_MULTIPLE_ADD_TO_CART != 0) {
                if (
                    
    // not a hide qty box product
                    
    $listing->fields['products_qty_box_status'] != &&
                    
    // product type can be added to cart
                    
    zen_get_products_allow_add_to_cart($listing->fields['products_id']) != 'N'
                    
    &&
                    
    // product is not call for price
                    
    $listing->fields['product_is_call'] == 0
                    
    &&
                    
    // product is in stock or customers may add it to cart anyway
                    
    ($listing->fields['products_quantity'] > || SHOW_PRODUCTS_SOLD_OUT_IMAGE == 0) ) {
                        
    $how_many++;
                      }
                
    // hide quantity box
                
    if ($listing->fields['products_qty_box_status'] == 0) {
                  
    $lc_button '<a href="' zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=buy_now&products_id=' $listing->fields['products_id']) . '">' zen_image_button(BUTTON_IMAGE_BUY_NOWBUTTON_BUY_NOW_ALT'class="listingBuyNowButton"') . '</a>';
                } else {
                  
    $lc_button TEXT_PRODUCT_LISTING_MULTIPLE_ADD_TO_CART "<input type=\"text\" name=\"products_id[" $listing->fields['products_id'] . "]\" value=\"0\" size=\"4\" />";
                }
              } else {
    // qty box with add to cart button
                
    if (PRODUCT_LIST_PRICE_BUY_NOW == '2' && $listing->fields['products_qty_box_status'] != 0) {
                  
    $lc_buttonzen_draw_form('cart_quantity'zen_href_link(zen_get_info_page($listing->fields['products_id']), zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' $listing->fields['products_id']), 'post''enctype="multipart/form-data"') . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' zen_draw_hidden_field('products_id'$listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CARTBUTTON_IN_CART_ALT) . '</form>';
                } else {
                  
    $lc_button '<a href="' zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=buy_now&products_id=' $listing->fields['products_id']) . '">' zen_image_button(BUTTON_IMAGE_BUY_NOWBUTTON_BUY_NOW_ALT'class="listingBuyNowButton"') . '</a>';
                }
                }
              }
              
    $the_button $lc_button;
            
    $products_link '<a href="' zen_href_link(zen_get_info_page($listing->fields['products_id']), ($_GET['cPath'] > 'cPath=' $_GET['cPath'] . '&' '') . 'products_id=' $listing->fields['products_id']) . '">' MORE_INFO_TEXT '</a>';
              
    $lc_text .= '<br />' zen_get_buy_now_button($listing->fields['products_id'], $the_button$products_link) . '<br />' zen_get_products_quantity_min_units_display($listing->fields['products_id']);
              
    $lc_text .= '<br />' . (zen_get_show_product_switch($listing->fields['products_id'], 'ALWAYS_FREE_SHIPPING_IMAGE_SWITCH') ? (zen_get_product_is_always_free_shipping($listing->fields['products_id']) ? TEXT_PRODUCT_FREE_SHIPPING_ICON '<br />' '') : '');
            }  else { 
    //gallery
              
    $gallery_skip_now 1
              
    $gallery_skips++;
            } 
    // /not_gallery
            
    break;
            case 
    'PRODUCT_LIST_QUANTITY':
            if(
    $not_gallery) { //display if not gallery
              
    $lc_align 'right';
              
    $lc_text $listing->fields['products_quantity'];
            } else { 
    //gallery
              
    $gallery_skip_now 1;
              
    $gallery_skips++;
            } 
    // /not_gallery
            
    break;
            case 
    'PRODUCT_LIST_WEIGHT':
              
    $lc_align 'right';
              
    $lc_text $listing->fields['products_weight'];
              break;
            case 
    'PRODUCT_LIST_IMAGE':
              
    $lc_align 'center';
            if (
    $listing->fields['products_image'] == '' and PRODUCTS_IMAGE_NO_IMAGE_STATUS == 0) {
              
    $lc_text '';
            } else {
              if (isset(
    $_GET['manufacturers_id'])) {
              
    $lc_text '<a href="' zen_href_link(zen_get_info_page($listing->fields['products_id']), 'products_id=' $listing->fields['products_id']) . '">' zen_image(DIR_WS_IMAGES $listing->fields['products_image'], $listing->fields['products_name'], IMAGE_PRODUCT_LISTING_WIDTHIMAGE_PRODUCT_LISTING_HEIGHT'class="listingProductImage"') . '</a>';
              } else {
              
    $lc_text '<a href="' zen_href_link(zen_get_info_page($listing->fields['products_id']), ($_GET['cPath'] > 'cPath=' $_GET['cPath'] . '&' '') . 'products_id=' $listing->fields['products_id']) . '">' zen_image(DIR_WS_IMAGES $listing->fields['products_image'], $listing->fields['products_name'], IMAGE_PRODUCT_LISTING_WIDTHIMAGE_PRODUCT_LISTING_HEIGHT'class="listingProductImage"') . '</a>';
              }
            }
              break;
          }
          if (
    $lc_text != '') {
          
    $product_contents[] = $lc_text// Used For Column Layout (Grid Layout) Option - (only if there is text to add in gallery mode) 
          
    }
          
    // skip column in output array for gallery
          
    if ($gallery_skip_now == 1) {
            
    //don't add a column this time
          
    } elseif (PRODUCT_LISTING_LAYOUT_STYLE == 'rows') {
            
    $list_box_contents[$rows][$col $gallery_skips] = array('align' => $lc_align,
                                                  
    'params' => 'class="productListing-data"',
                                                  
    'text'  => $lc_text);
          }
        }

        
    // add description and match alternating colors
        //if (PRODUCT_LIST_DESCRIPTION > 0) {
        //  $rows++;
        //  if ($extra_row == 1) {
        //    $list_box_description = "productListing-data-description-even";
        //    $extra_row=0;
        //  } else {
        //    $list_box_description = "productListing-data-description-odd";
        //    $extra_row=1;
        //  }
        //  $list_box_contents[$rows][] = array('params' => 'class="' . $list_box_description . '" colspan="' . $zc_col_count_description . '"',
        //  'text' => zen_trunc_string(zen_clean_html(stripslashes(zen_get_products_description($listing->fields['products_id'], $_SESSION['languages_id']))), PRODUCT_LIST_DESCRIPTION));
        //}

        // Following code will be executed only if Column Layout (Grid Layout) option is chosen
        
    if (PRODUCT_LISTING_LAYOUT_STYLE == 'columns') {
          
    $lc_text implode('<br />'$product_contents);
          
    $list_box_contents[$rows][$column] = array('params' => 'class="centerBoxContentsProducts centeredContent back"' ' ' 'style="width:' $col_width '%;"',
                                                     
    'text'  => $lc_text);
          
    $column ++;
          if (
    $column >= PRODUCT_LISTING_COLUMNS_PER_ROW) {
            
    $column 0;
            
    $rows ++;
          }
        }
        
    // End of Code fragment for Column Layout (Grid Layout) option in add on module
        
    $listing->MoveNext();
      }
      
    $error_categories false;
    } else {
      
    $list_box_contents = array();

      
    $list_box_contents[0] = array('params' => 'class="productListing-odd"');
      
    $list_box_contents[0][] = array('params' => 'class="productListing-data"',
                                      
    'text' => TEXT_NO_PRODUCTS);

      
    $error_categories true;
    }
    //no button for gallery
    if ($not_gallery == and ($how_many and $show_submit == true and $listing_split->number_of_rows 0) and (PRODUCT_LISTING_MULTIPLE_ADD_TO_CART == or  PRODUCT_LISTING_MULTIPLE_ADD_TO_CART == 3) ) {
      
    $show_top_submit_button true;
    } else {
      
    $show_top_submit_button false;
    }
    //no button for gallery
    if ($not_gallery == and ($how_many and $show_submit == true and $listing_split->number_of_rows 0) and (PRODUCT_LISTING_MULTIPLE_ADD_TO_CART >= 2) ) {
      
    $show_bottom_submit_button true;
    } else {
      
    $show_bottom_submit_button false;
    }


      
    //no button for gallery
      
    if ($not_gallery == and $how_many && PRODUCT_LISTING_MULTIPLE_ADD_TO_CART != and $show_submit == true and $listing_split->number_of_rows 0) {
      
    // bof: multiple products
        
    echo zen_draw_form('multiple_products_cart_quantity'zen_href_link(FILENAME_DEFAULTzen_get_all_get_params(array('action')) . 'action=multiple_products_add_product'), 'post''enctype="multipart/form-data"');
      }

    ?>

  10. #10
    Join Date
    Jul 2007
    Posts
    12
    Plugin Contributions
    0

    Default Re: Gallery Category support thread

    Thanks, Glenn! Everything seems to work great. I'm sure others will find this useful, too.

 

 
Page 1 of 3 123 LastLast

Similar Threads

  1. v151 Category Specific Access Restriction (CSAR) - [Support Thread]
    By frank18 in forum All Other Contributions/Addons
    Replies: 187
    Last Post: 12 Sep 2021, 09:41 PM
  2. Category Tab Simple Dropdown Menu 1.3.9 Support Thread
    By dbltoe in forum All Other Contributions/Addons
    Replies: 39
    Last Post: 31 Aug 2021, 10:17 AM
  3. ZX Slideshow support thread
    By balihr in forum All Other Contributions/Addons
    Replies: 679
    Last Post: 3 May 2021, 11:09 PM
  4. Hebrew Support - latest release [Support Thread]
    By eranariel in forum Addon Language Packs
    Replies: 16
    Last Post: 22 Mar 2021, 01:11 AM
  5. v150 Minimum per Category Support Thread
    By purelypoultry in forum All Other Contributions/Addons
    Replies: 8
    Last Post: 22 Dec 2014, 07:47 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR