Page 11 of 17 FirstFirst ... 910111213 ... LastLast
Results 101 to 110 of 169
  1. #101
    Join Date
    Sep 2010
    Posts
    10
    Plugin Contributions
    0

    Default Re: product filter module addon

    Finally, I got it to work. I tested with my dummy data and it worked. I will not be able to answer questions as I do not code. The code to header_php.php is
    (my last post with code had errors)

    <?php
    /**
    * header_php.php
    *
    *Zen Cart product filter module
    *Johnny Ye, Oct 2007
    * update by Jan Cabicar, Apr 2009
    * update by Xzaqus, Sept 2010
    */



    require(DIR_WS_MODULES . zen_get_module_directory('require_languages.php'));
    $error = false;
    $missing_one_input = false;


    if (isset($_GET['categories_id']) && !is_numeric($_GET['categories_id'])){
    $error = true;
    $messageStack->add_session('filter', ERROR_AT_LEAST_ONE_INPUT);
    } else {
    $categories_id ='';
    }

    $available = 'yes';

    $option_ids = array();
    $option_values = array();
    foreach($_GET as $key => $value){
    if(substr_count($key,'options')>0)
    {
    $option_ids[sizeof($option_ids)] = str_replace('options_','',$key);
    $option_values[sizeof($option_values)] = $value;
    }
    }


    if (isset($_GET['categories_id'])) {
    $categories_id = $_GET['categories_id'];
    }
    if (isset($_GET['price_range'])) {
    $price_range = $_GET['price_range'];
    }
    if (isset($_GET['available'])) {
    $available = $_GET['available'];
    }
    if (isset($_GET['sort'])) {
    $sort = $_GET['sort'];
    }

    $price_check_error = false;
    if (zen_not_null($pfrom)) {
    if (!settype($pfrom, 'float')) {
    $error = true;
    $price_check_error = true;

    $messageStack->add_session('filter', ERROR_PRICE_FROM_MUST_BE_NUM);
    }
    }


    $define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
    'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
    'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
    'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
    'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
    'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
    'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE);

    asort($define_list);

    $column_list = array();
    reset($define_list);
    while (list($column, $value) = each($define_list)) {
    if ($value) $column_list[] = $column;
    }

    $select_column_list = '';

    for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
    if (($column_list[$col] == 'PRODUCT_LIST_NAME') || ($column_list[$col] == 'PRODUCT_LIST_PRICE')) {
    continue;
    }

    if (zen_not_null($select_column_list)) {
    $select_column_list .= ', ';
    }

    switch ($column_list[$col]) {
    case 'PRODUCT_LIST_MODEL':
    $select_column_list .= 'p.products_model';
    break;
    case 'PRODUCT_LIST_MANUFACTURER':
    $select_column_list .= 'm.manufacturers_name';
    break;
    case 'PRODUCT_LIST_QUANTITY':
    $select_column_list .= 'p.products_quantity';
    break;
    case 'PRODUCT_LIST_IMAGE':
    $select_column_list .= 'p.products_image';
    break;
    case 'PRODUCT_LIST_WEIGHT':
    $select_column_list .= 'p.products_weight';
    break;
    }
    }

    // always add quantity regardless of whether or not it is in the listing for add to cart buttons
    if (PRODUCT_LIST_QUANTITY < 1) {
    if (empty($select_column_list)) {
    $select_column_list .= ' p.products_quantity ';
    } else {
    $select_column_list .= ', p.products_quantity ';
    }
    }

    if (zen_not_null($select_column_list)) {
    $select_column_list .= ', ';
    }

    // Notifier Point


    $select_str = "SELECT DISTINCT " . $select_column_list .
    " m.manufacturers_id, p.products_id, pd.products_name, p.products_image, p.products_price, p.products_tax_class_id, p.products_price_sorter, p.products_qty_box_status ";


    $from_str = " FROM " . TABLE_PRODUCTS ." p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . znc_categories ." cat , " . TABLE_PRODUCTS_OPTIONS . " po , " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov ";


    $order_str='';

    $listing_sql = $select_str . $from_str . $where_str . $order_str;
    $listing_sql = "select DISTINCT ";
    $listing_sql .= "p.products_id, pd.products_name, p.products_price, p.products_tax_class_id, p.products_image, p.products_price_sorter, p.products_qty_box_status ";


    $where_str = " WHERE (p.products_status = 1 ";

    $enable_attribute_filter = false ;
    if(sizeof($option_ids)>0)
    {
    for($i=0;$i<sizeof($option_ids);$i++)
    {
    if(!(empty($option_values[$i])))
    {
    $where_str .= " AND ((pa.products_id In (SELECT pa.products_id FROM znc_products_attributes pa WHERE (";
    $where_str .= " pa.options_id = ".$option_ids[$i];
    $where_str .= " AND pa.options_values_id = ".$option_values[$i];
    $where_str .= " )))) ";
    $enable_attribute_filter = true;
    }
    }
    }


    if($enable_attribute_filter){
    $where_str .= " AND p.products_id = pa.products_id ";
    }

    $enable_price_filter = true;
    switch($price_range){
    case 0:
    $pfrom = MIN_PRICE;
    $pto = MAX_PRICE;
    break;
    case 1:
    $pfrom = PRANGE1_MIN;
    $pto = PRANGE1_MAX;
    break;
    case 2:
    $pfrom = PRANGE2_MIN;
    $pto = PRANGE2_MAX;
    break;
    case 3:
    $pfrom = PRANGE3_MIN;
    $pto = PRANGE3_MAX;
    break;
    case 4:
    $pfrom = PRANGE4_MIN;
    $pto = PRANGE4_MAX;
    break;
    case 5:
    $pfrom = PRANGE5_MIN;
    $pto = PRANGE5_MAX;
    break;
    }
    if(SHOW_SORT){
    switch($sort){
    case 0:
    $order_str = " order by p.products_date_added DESC, p.products_date_available DESC, products_price ASC ";
    break;
    case 1:
    $order_str = " order by p.products_date_added ASC, p.products_date_available ASC, products_price ASC ";
    break;
    case 2:
    $order_str = " order by p.products_price ASC, p.products_date_added DESC, p.products_date_available DESC ";
    break;
    case 3:
    $order_str = " order by products_price DESC, p.products_date_added DESC, p.products_date_available DESC ";
    break;
    $order_str = " order by p.products_date_added DESC, p.products_date_available DESC, products_price ASC ";
    }
    }


    if($categories_id !=''){
    $where_str .=" AND ( p2c.categories_id = ".$categories_id;
    $where_str .=" OR cat.parent_id = ".$categories_id;
    $where_str .=" ) ";
    }

    if($enable_price_filter){
    $where_str .= " AND p.products_price >= ".$pfrom;
    $where_str .= " AND p.products_price <= ".$pto;
    }


    /*
    $enable_attribute_filter = true ;
    if(sizeof($option_ids)>0){
    for($i=0;$i<sizeof($option_ids);$i++){
    if(!(empty($option_values[$i])))
    {
    $where_str .= " AND pa.options_id = ".$option_ids[$i];
    $where_str .= " AND pa.options_values_id = ".$option_values[$i];
    }
    }

    }

    if($enable_attribute_filter){
    $where_str .= " AND p.products_id = pa.products_id ";
    }
    */


    if($available=='yes'){
    $where_str .= " AND p.products_quantity > 0 ";
    }

    $where_str .=" AND p.products_id = pd.products_id";

    $where_str .=" AND cat.categories_id = p2c.categories_id";

    $where_str .=" AND p.products_id = p2c.products_id) ";


    $listing_sql .= $from_str;
    $listing_sql .= $where_str;
    $listing_sql .= $order_str;

    $listing_sql
    //$breadcrumb->add('title');


    // This should be last line of the script:
    ?>

  2. #102
    Join Date
    Oct 2009
    Location
    Texas
    Posts
    194
    Plugin Contributions
    0

    Default Re: product filter module addon

    xzaqus,
    The first header_php.php edit worked like a charm!

    The most recent one returned the following on my site.
    1146 Table 'sterling_zencart.znc_categories' doesn't exist
    in:
    [select count(distinct p.products_id) as total FROM zen_products p, zen_products_description pd, zen_products_to_categories p2c, zen_products_attributes pa, znc_categories cat , zen_products_options po , zen_products_options_values pov WHERE (p.products_status = 1 AND p.products_price >= 100 AND p.products_price <= 299.99 AND p.products_quantity > 0 AND p.products_id = pd.products_id AND cat.categories_id = p2c.categories_id AND p.products_id = p2c.products_id) ]
    This is awesome!

  3. #103
    Join Date
    Oct 2009
    Location
    Texas
    Posts
    194
    Plugin Contributions
    0

    Default Re: product filter module addon

    I've added 4 extra PRANGE_ values to the following in order to return a wider price range.
    tpl_prodcut_filter.php
    product_filter_defines.php
    header_php.php

    It returns price ranges flawlessly, even for products priced by attributes!
    Excellent.

    The only issue I need to work on is hiding the "Please Select" wording within the attribute dropdowns.

  4. #104
    Join Date
    Sep 2010
    Posts
    10
    Plugin Contributions
    0

    Default Re: product filter module addon

    Quote Originally Posted by jabbawest View Post
    xzaqus,
    The first header_php.php edit worked like a charm!

    The most recent one returned the following on my site.


    This is awesome!
    The earlier one has problems. The latest works but you will need to change znc_ prefix to your tables.
    I did not know how to make it general to all tables. So, I had znc (prefix for my tables). Replace znc with the prefix that your tables have. ou should be able to find that through myPhpAdmin
    Last edited by xzaqus; 24 Sep 2010 at 02:11 AM.

  5. #105
    Join Date
    Oct 2009
    Location
    Texas
    Posts
    194
    Plugin Contributions
    0

    Default Re: product filter module addon

    Quote Originally Posted by xzaqus View Post
    The earlier one has problems. The latest works but you will need to change znc_ prefix to your tables.
    I did not know how to make it general to all tables. So, I had znc (prefix for my tables). Replace znc with the prefix that your tables have. ou should be able to find that through myPhpAdmin
    Using the new header_php.php with the correct table prefix now.

    Go to my site and use the mod to search this range $500 - $700.
    Only one item will be found.
    Now click on All SLJ Jewelry and you'll see that there are 3 additional items within that price range but they are priced by attributes.
    *sigh*

  6. #106
    Join Date
    Jun 2009
    Location
    Kent, UK
    Posts
    347
    Plugin Contributions
    5

    Default Re: product filter module addon

    hi, i just installed this on 1.3.8a and am very hapy with it, although i would like to remove the entry in the dropdown list that reads "items starting with"

    is this possible? thanks

  7. #107
    Join Date
    Apr 2010
    Posts
    23
    Plugin Contributions
    0

    Default Re: product filter module addon

    Quote Originally Posted by spazem View Post
    make it only filter results based on what catorgry you have selected and are currently in. this takes the need for it.

    any help would be appriciated.
    I too would like to get rid of the category filter and have the attribute filters applied to just the currently selected category. If anyone has been able to do this then please advise.

    Thanks in advance

  8. #108
    Join Date
    Oct 2009
    Location
    Texas
    Posts
    194
    Plugin Contributions
    0

    Default Re: product filter module addon

    Quote Originally Posted by jjrmy1 View Post
    I too would like to get rid of the category filter and have the attribute filters applied to just the currently selected category. If anyone has been able to do this then please advise.

    Thanks in advance
    The first part is easy.
    includes/languages/english/extra_definitions/product_filter_defines.php
    set to false the very first entry
    PHP Code:
    define('SHOW_CATEGORIES',true);
    define('SHOW_ATTRIBUTES',true);
    define('SHOW_PRICE_RANGE',true);
    define('SHOW_AVAILABLE',true);
    define('SHOW_SORT',true); 
    As for the second part, someone smarter than I will need to assist.
    Fine Jewelry For Any Budget
    Sterling Leaf Jewelry
    Rolling in the Zen

  9. #109
    Join Date
    Apr 2010
    Posts
    23
    Plugin Contributions
    0

    Default Re: product filter module addon

    Quote Originally Posted by jabbawest View Post
    The first part is easy.
    includes/languages/english/extra_definitions/product_filter_defines.php
    set to false the very first entry
    PHP Code:
    define('SHOW_CATEGORIES',true);
    define('SHOW_ATTRIBUTES',true);
    define('SHOW_PRICE_RANGE',true);
    define('SHOW_AVAILABLE',true);
    define('SHOW_SORT',true); 
    As for the second part, someone smarter than I will need to assist.
    I got he first part, thanks though.

    Well... someone smarter??

  10. #110
    Join Date
    Sep 2010
    Posts
    10
    Plugin Contributions
    0

    Default Re: product filter module addon

    The code I posted allows you to select the category and other criterion.

 

 
Page 11 of 17 FirstFirst ... 910111213 ... LastLast

Similar Threads

  1. Product filter Module: Advanced search results page not working
    By WWRepair in forum All Other Contributions/Addons
    Replies: 0
    Last Post: 5 Mar 2013, 11:51 PM
  2. v139h 1064 SQL error in product filter addon?
    By 4jDesigns in forum All Other Contributions/Addons
    Replies: 12
    Last Post: 17 Jan 2013, 07:59 PM
  3. Product Filter Module - 1109:Unknown table 'p' in field list
    By moesoap in forum All Other Contributions/Addons
    Replies: 1
    Last Post: 28 May 2012, 01:40 PM
  4. modified product filter / alpha filter help please
    By bn17311 in forum General Questions
    Replies: 1
    Last Post: 5 Oct 2011, 09:43 PM
  5. SQL problem with filter by attributes addon
    By daparky in forum All Other Contributions/Addons
    Replies: 0
    Last Post: 6 Jan 2010, 10:16 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