Forums / Setting Up Categories, Products, Attributes / sorted featured products on main page cats and subcats

sorted featured products on main page cats and subcats

Started by eranariel on 8 Feb 2012, 7:20 AM · Views: 796

Results 1 to 1 of 1
8 Feb 2012, 7:20 AM
#1
eranariel avatar

eranariel

Zen Follower

Join Date:
Dec 2010
Location:
NYC
Posts:
104
Plugin Contributions:
4

sorted featured products on main page cats and subcats

Hello Zenners,
I hope someone can help me with the following technical issue… My products are accessed via permutations among categories and subcategories.

I am using Easy Populate to upload the multiple category and sub categories.

I have defined a percentage of those products as "featured", the products appear in the center column. If I drill down to a subcategory, I can view only the relevant featured products in that subcategory and so forth.

My client requested of me the capability to control the sort of all featured products. I was able to add an additional field to the database called "featured_ID", which provides me the ability to sort the products accordingly.

However, once I was able to get to work, relevant "featured products" were not showing up on the subcategories… After some comparison between the current featured_products.php and that of the "featured sort" contributions, Around line 30 and line 47, I added the following string: "'order by featured_id"

I am now able to view all of the featured products on all subcategory pages, however, I lost the ability to view only relevant featured products specific to that subcategory… I used the featured sort contribution for comparison.

Here is my code…

<?php /** * featured_products module - prepares content for display * * @package modules * @copyright Copyright 2003-2007 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: featured_products.php 6424 2007-05-31 05:59:21Z ajeh $ */ if (!defined('IS_ADMIN_FLAG')) { die('Illegal Access'); } // initialize vars $categories_products_id_list = ''; $list_of_products = ''; $featured_products_query = ''; $display_limit = ''; if ( (($manufacturers_id > 0 && $_GET['filter_id'] == 0) || $_GET['music_genre_id'] > 0 || $_GET['record_company_id'] > 0) || (!isset($new_products_category_id) || $new_products_category_id == '0') ) { $featured_products_query = "select distinct p.products_id, p.products_image, pd.products_name, p.master_categories_id from (" . TABLE_PRODUCTS . " p left join " . TABLE_FEATURED . " f on p.products_id = f.products_id left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id ) where p.products_id = f.products_id and p.products_id = pd.products_id and p.products_status = 1 and f.status = 1 and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'order by featured_id"; } else { // get all products and cPaths in this subcat tree $productsInCategory = zen_get_categories_products_list( (($manufacturers_id > 0 && $_GET['filter_id'] > 0) ? zen_get_generated_category_path_rev($_GET['filter_id']) : $cPath), false, true, 0, $display_limit); if (is_array($productsInCategory) && sizeof($productsInCategory) > 0) { // build products-list string to insert into SQL query foreach($productsInCategory as $key => $value) { $list_of_products .= $key . ', '; } $list_of_products = substr($list_of_products, 0, -2); // remove trailing comma $featured_products_query = "select distinct p.products_id, p.products_image, pd.products_name, p.master_categories_id from (" . TABLE_PRODUCTS . " p left join " . TABLE_FEATURED . " f on p.products_id = f.products_id left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id) where p.products_id = f.products_id and p.products_id = pd.products_id and p.products_status = 1 and f.status = 1 and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'order by featured_id and p.products_id in (" . $list_of_products . ")"; } } if ($featured_products_query != '') $featured_products = $db->Execute($featured_products_query, MAX_DISPLAY_SEARCH_RESULTS_FEATURED); $row = 0; $col = 0; $list_box_contents = array(); $title = ''; $num_products_count = ($featured_products_query == '') ? 0 : $featured_products->RecordCount(); // show only when 1 or more if ($num_products_count > 0) { if ($num_products_count < SHOW_PRODUCT_INFO_COLUMNS_FEATURED_PRODUCTS || SHOW_PRODUCT_INFO_COLUMNS_FEATURED_PRODUCTS == 0) { $col_width = floor(100/$num_products_count); } else { $col_width = floor(100/SHOW_PRODUCT_INFO_COLUMNS_FEATURED_PRODUCTS); } while (!$featured_products->EOF) { $products_price = zen_get_products_display_price($featured_products->fields['products_id']); $products_description = zen_trunc_string(zen_clean_html(stripslashes(zen_get_products_description($featured_products->fields['products_id'], $_SESSION['languages_id']))), PRODUCT_LIST_DESCRIPTION); if (!isset($productsInCategory[$featured_products->fields['products_id']])) $productsInCategory[$featured_products->fields['products_id']] = zen_get_generated_category_path_rev($featured_products->fields['master_categories_id']); $list_box_contents[$row][$col] = array('params' =>'class="centerBoxContentsFeatured centeredContent back"' . ' ' . 'style="width:' . $col_width . '%;"', 'text' => '<a href="' . zen_href_link(zen_get_info_page($featured_products->fields['products_id']), 'products_id=' . $featured_products->fields['products_id']) . '">' . zen_image(DIR_WS_IMAGES . $featured_products->fields['products_image'], $featured_products->fields['products_name'], IMAGE_FEATURED_PRODUCTS_LISTING_WIDTH, IMAGE_FEATURED_PRODUCTS_LISTING_HEIGHT) . '</a><br /><a href="' . zen_href_link(zen_get_info_page($featured_products->fields['products_id']), 'products_id=' . $featured_products->fields['products_id']) . '">' . $featured_products->fields['products_name'] . '</a><br />' . $products_price . '<br />' . $products_description . $info_link); $col ++; if ($col > (SHOW_PRODUCT_INFO_COLUMNS_FEATURED_PRODUCTS - 1)) { $col = 0; $row ++; } $featured_products->MoveNext(); } if ($featured_products->RecordCount() > 0) { if (isset($new_products_category_id) && $new_products_category_id !=0) { $category_title = zen_get_categories_name((int)$new_products_category_id); $title = '<h2 class="centerBoxHeading">' . TABLE_HEADING_FEATURED_PRODUCTS . ($category_title != '' ? ' - ' . $category_title : '') . '</h2>'; } else { $title = '<h2 class="centerBoxHeading">' . TABLE_HEADING_FEATURED_PRODUCTS . '</h2>'; } $zc_show_featured = true; } } ?>

Some assistance would be greatly appreciated!!!!!

Thanks in advance,

Eran