Forums / Templates, Stylesheets, Page Layout / make "specials" module and "bestsellers" module always display

make "specials" module and "bestsellers" module always display

Started by win8win on 29 May 2012, 12:14 PM · Views: 1,446

Results 1 to 11 of 11
29 May 2012, 12:14 PM
#1
win8win avatar

win8win

Zen Follower

Join Date:
Apr 2012
Location:
beijing
Posts:
258
Plugin Contributions:
1

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:

focus on the open source for online shoping website.
my site: best shop 24h.com

29 May 2012, 1:52 PM
#2
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: 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:

  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:

  } 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) {

Linda McGrath
If you have to think ... you haven't been zenned ...

**Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!**

Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
Officially PayPal-Certified! Just click here

Try our Zen Cart Recommended Services - Hosting, Payment and more ...
Signup for our Announcements Forums to stay up to date on important changes and updates!

30 May 2012, 2:30 AM
#3
win8win avatar

win8win

Zen Follower

Join Date:
Apr 2012
Location:
beijing
Posts:
258
Plugin Contributions:
1

Re: make "specials" module and "bestsellers" module always display

thanks so much for " Ajeh",it works!

focus on the open source for online shoping website.
my site: best shop 24h.com

30 May 2012, 2:54 AM
#4
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: make "specials" module and "bestsellers" module always display

You are most welcome ... thanks for the update that this worked for you ... :smile:

Linda McGrath
If you have to think ... you haven't been zenned ...

**Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!**

Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
Officially PayPal-Certified! Just click here

Try our Zen Cart Recommended Services - Hosting, Payment and more ...
Signup for our Announcements Forums to stay up to date on important changes and updates!

1 Oct 2013, 1:23 AM
#5
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: make "specials" module and "bestsellers" module always display

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??

My Site - Zen Cart & WordPress integration specialist
I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

1 Oct 2013, 2:54 AM
#6
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: 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:

  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:

} else {

see if that gets what you are looking for ...

Linda McGrath
If you have to think ... you haven't been zenned ...

**Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!**

Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
Officially PayPal-Certified! Just click here

Try our Zen Cart Recommended Services - Hosting, Payment and more ...
Signup for our Announcements Forums to stay up to date on important changes and updates!

1 Oct 2013, 6:47 AM
#7
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: 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)com/shop/index.php?main_page=index&cPath=5

but the three subcategories of this are working as expected:
http://eitestsite(dot)eyeitalia(dot)com/shop/index.php?main_page=index&cPath=5_10
http://eitestsite(dot)eyeitalia(dot)com/shop/index.php?main_page=index&cPath=5_12
http://eitestsite(dot)eyeitalia(dot)com/shop/index.php?main_page=index&cPath=5_13

and just to be clear here's the changes to my best sellers 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;
  }
[I][B]
// bof: force best_sellers to always show
    $show_best_sellers= true;
// eof: force best_sellers to always show[/B][/I]

  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);
[I][B]      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;
  }[/B][/I]
    } 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";

My Site - Zen Cart & WordPress integration specialist
I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

1 Oct 2013, 1:49 PM
#8
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: 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:

      $best_sellers = $db->Execute($best_sellers_query);

Linda McGrath
If you have to think ... you haven't been zenned ...

**Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!**

Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
Officially PayPal-Certified! Just click here

Try our Zen Cart Recommended Services - Hosting, Payment and more ...
Signup for our Announcements Forums to stay up to date on important changes and updates!

1 Oct 2013, 2:03 PM
#9
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: make "specials" module and "bestsellers" module always display

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:

  $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!!!

My Site - Zen Cart & WordPress integration specialist
I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

1 Oct 2013, 2:34 PM
#10
ajeh avatar

ajeh

Oba-san

Join Date:
Sep 2003
Location:
Ohio
Posts:
62,757
Plugin Contributions:
1

Re: 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:

Linda McGrath
If you have to think ... you haven't been zenned ...

**Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!**

Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
Officially PayPal-Certified! Just click here

Try our Zen Cart Recommended Services - Hosting, Payment and more ...
Signup for our Announcements Forums to stay up to date on important changes and updates!

1 Oct 2013, 4:26 PM
#11
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: make "specials" module and "bestsellers" module always display

Ajeh:

You are most welcome ... took me a minute to figure out why the simple select didn't work ... silly me ... :cool:

No worries.. You are STILL the best!

My Site - Zen Cart & WordPress integration specialist
I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.