X-Cart: shopping cart software

X-Cart forums (https://forum.x-cart.com/index.php)
-   Changing design (https://forum.x-cart.com/forumdisplay.php?f=51)
-   -   If ticked, the categories list always shows root categories: (https://forum.x-cart.com/showthread.php?t=44226)

davidsaldana 12-13-2008 07:35 AM

If ticked, the categories list always shows root categories:
 
We would like to use this feature but are running into a problem, at the level when "products.tpl" or "products_t.tpl" kicks in, the entire menu disappears. Would anyone know how to show, just the parent subcategories there, instead of having it disappear.

Thanks,
David

Holub 12-15-2008 12:21 AM

Re: If ticked, the categories list always shows root categories:
 
Hm, it is have sense only in case of two levels menu tree - root categories and one level per root category. Can you confirm that you have only two levels category structure? I'll make some research which allow to show subcategories menu.

davidsaldana 12-15-2008 05:22 AM

Re: If ticked, the categories list always shows root categories:
 
Quote:

Originally Posted by Holub
Hm, it is have sense only in case of two levels menu tree - root categories and one level per root category. Can you confirm that you have only two levels category structure? I'll make some research which allow to show subcategories menu.


Yes, that is correct, there are only two levels on the site.


BTW, Nice Skins!!

Holub 12-15-2008 06:07 AM

Re: If ticked, the categories list always shows root categories:
 
Here is decision, tested on 4.1.9 and 4.1.11:

find this code in include/categories.php

Code:

#
# Gather the array of categories and extract into separated arrays:
# $all_categories, $categories and $subcategories
#
if (($current_area == "C" && defined("GET_ALL_CATEGORIES")) || defined('MANAGE_CATEGORIES')) {
        $_categories = func_get_categories_list($cat);
} elseif($current_area == "C") {
        $_categories = func_get_categories_list($cat, true, "current");
} else {
        $_categories = func_get_categories_list($cat, true, "all");
}


between comments and
Code:

if (($current_area == "C" && defined("GET_ALL_CATEGORIES"))
insert

Code:

$old_cat = $cat;
if ($current_category["parentid"] != 0)
  $cat = $current_category["parentid"];


and find

Code:

if ($cat == 0)
        $subcategories = $categories;


and insert after
Code:

$cat = $old_cat;

You should get something like this

Code:

#
# Gather the array of categories and extract into separated arrays:
# $all_categories, $categories and $subcategories
#

$old_cat = $cat;
if ($current_category["parentid"] != 0)
  $cat = $current_category["parentid"];

if (($current_area == "C" && defined("GET_ALL_CATEGORIES")) || defined('MANAGE_CATEGORIES')) {
        $_categories = func_get_categories_list($cat);
} elseif($current_area == "C") {
        $_categories = func_get_categories_list($cat, true, "current");
} else {
        $_categories = func_get_categories_list($cat, true, "all");
}

extract($_categories);
unset($_categories);

#
# Prepare data for FancyCategories module
#
if ($current_area == "C" && !empty($active_modules["Fancy_Categories"]))
        @include $xcart_dir."/modules/Fancy_Categories/fancy_categories.php";


if (!empty($all_categories))
        $smarty->assign("allcategories", $all_categories);

if (!empty($categories))
        $smarty->assign("categories", $categories);

if ($cat == 0)
        $subcategories = $categories;

$cat = $old_cat;


All done. Just save it and upload file on server.

You will always see subcategories menu (if subcategories exist) in any root category.

davidsaldana 12-15-2008 07:04 AM

Re: If ticked, the categories list always shows root categories:
 
Thank you so much... did the trick.

RJ Michaels 04-06-2011 01:59 PM

Re: If ticked, the categories list always shows root categories:
 
This is exactly what I need - except that I need it for 4.4. This version doesn't seem to have a include/categories.php file and I can't find a reference on a system wide search for the code. Is this fix still applicable?


All times are GMT -8. The time now is 01:20 PM.

Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.