make "specials" module and "bestsellers" module always display
how to make "specials" module and "bestsellers" module always display at the left or right side?
when I go to product page,they auto disappear,:blink:
Re: how to make "specials" module and "bestsellers" module always display
Specials is designed to turn off when there is a products_id in the URL ...
You can change this with your templates and overrides by copying the:
/includes/modules/sideboxes/specials.php
to your templates and overrides directory:
/includes/modules/sideboxes/your_templates_dir/specials.php
and adding the code in RED:
Code:
if (isset($_GET['products_id'])) {
$show_specials= false;
} else {
$show_specials= true;
}
// bof: force specials to always show
$show_specials= true;
// eof: force specials to always show
if ($show_specials == true) {
For the Best Sellers sidebox you can customize it similarly with the code in RED:
Code:
} else {
$show_best_sellers= true;
}
// bof: force best_sellers to always show
$show_best_sellers= true;
// eof: force best_sellers to always show
if ($show_best_sellers == true) {
Re: how to make "specials" module and "bestsellers" module always display
thanks so much for " Ajeh",it works!
Re: how to make "specials" module and "bestsellers" module always display
You are most welcome ... thanks for the update that this worked for you ... :smile:
Re: how to make "specials" module and "bestsellers" module always display
Quote:
Originally Posted by
Ajeh
You are most welcome ... thanks for the update that this worked for you ... :smile:
This is awesome and is pretty close to what it was I wanted to do. The best sellers sidebox displays on most pages, and it looks like it displays best seller in the product category I am viewing.. (which is very cool) However, if there are no bestsellers in a particular product category, the best sellers sidebox won't display.. In the case where the category being viewed has no best sellers, how would I modify this so that it displays ALL the store best sellers??
Re: how to make "specials" module and "bestsellers" module always display
The top of the IF is being used when there is a category set based on the value of:
$current_category_id
If that isn't set, then the bottom half of the IF is used ...
What you want to do is after the $sql is run the add this IF below it to test if anything was found, and if not, run a copy of the same select that would be run had there been no $current_category_id defined with:
Code:
if ($best_sellers->RecordCount () == 0) {
$best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd
where p.products_status = '1'
and p.products_ordered > 0
and p.products_id = pd.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
order by p.products_ordered desc, pd.products_name
limit " . MAX_DISPLAY_BESTSELLERS;
}
You should be able to add that just above the:
see if that gets what you are looking for ...
Re: how to make "specials" module and "bestsellers" module always display
So this fixed the page I was looking at (product info page), but didn't work here:
http://eitestsite(dot)eyeitalia(dot)...=index&cPath=5
but the three subcategories of this are working as expected:
http://eitestsite(dot)eyeitalia(dot)...dex&cPath=5_10
http://eitestsite(dot)eyeitalia(dot)...dex&cPath=5_12
http://eitestsite(dot)eyeitalia(dot)...dex&cPath=5_13
and just to be clear here's the changes to my best sellers code:
Code:
// test if box should display
$show_best_sellers= false;
if (isset($_GET['products_id'])) {
if (isset($_SESSION['customer_id'])) {
$check_query = "select count(*) as count
from " . TABLE_CUSTOMERS_INFO . "
where customers_info_id = '" . (int)$_SESSION['customer_id'] . "'
and global_product_notifications = '1'";
$check = $db->Execute($check_query);
if ($check->fields['count'] > 0) {
$show_best_sellers= true;
}
}
} else {
$show_best_sellers= true;
}
// bof: force best_sellers to always show
$show_best_sellers= true;
// eof: force best_sellers to always show
if ($show_best_sellers == true) {
$limit = (trim(MAX_DISPLAY_BESTSELLERS) == "") ? "" : " LIMIT " . (int)MAX_DISPLAY_BESTSELLERS;
if (isset($current_category_id) && ($current_category_id > 0)) {
$best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, "
. TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c
where p.products_status = '1'
and p.products_ordered > 0
and p.products_id = pd.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and p.products_id = p2c.products_id
and p2c.categories_id = c.categories_id
and '" . (int)$current_category_id . "' in (c.categories_id, c.parent_id)
order by p.products_ordered desc, pd.products_name";
$best_sellers_query .= $limit;
$best_sellers = $db->Execute($best_sellers_query);
if ($best_sellers->RecordCount () == 0) {
$best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd
where p.products_status = '1'
and p.products_ordered > 0
and p.products_id = pd.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
order by p.products_ordered desc, pd.products_name
limit " . MAX_DISPLAY_BESTSELLERS;
}
} else {
$best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd
where p.products_status = '1'
and p.products_ordered > 0
and p.products_id = pd.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
order by p.products_ordered desc, pd.products_name";
Re: how to make "specials" module and "bestsellers" module always display
Sorry ... I forgot a set ... :blush:
Immediately, after your new select statement for the $sql in RED it would be a good idea to run that $sql ... so add the line:
Code:
$best_sellers = $db->Execute($best_sellers_query);
Re: how to make "specials" module and "bestsellers" module always display
Quote:
Originally Posted by
Ajeh
Sorry ... I forgot a set ... :blush:
Immediately, after your new select statement for the $sql in
RED it would be a good idea to run that $sql ... so add the line:
Code:
$best_sellers = $db->Execute($best_sellers_query);
HA! That did the trick!!:cool:
You are soooooooooooo awesome!!!! Gonna add this post to my "Tips & Tricks" folder..
Thanks Linda.. as usual, you are a doll!!!
Re: how to make "specials" module and "bestsellers" module always display
You are most welcome ... took me a minute to figure out why the simple select didn't work ... silly me ... :cool: