Example #1
0
 /**
  * This function is used for the frontend to display a
  * complete link list of top-level categories
  * 
  * @param int $category_id The category to be highlighted
  * @param string $links_css_class The css class that marks mainlevel links
  * @param string $list_css_class (deprecated)
  * @param string $highlighted_style The css styles that format the hightlighted category
  * @return string HTML code with the link list
  */
 function get_category_tree($category_id = 0, $links_css_class = "mainlevel", $list_css_class = "mm123", $highlighted_style = "font-style:italic;")
 {
     global $sess;
     $categories = ps_product_category::getCategoryTreeArray();
     // Get array of category objects
     $result = ps_product_category::sortCategoryTreeArray($categories);
     // Sort array of category objects
     $row_list = $result['row_list'];
     $depth_list = $result['depth_list'];
     $category_tmp = $result['category_tmp'];
     $nrows = sizeof($category_tmp);
     // Copy the Array into an Array with auto_incrementing Indexes
     $key = array_keys($categories);
     // Array of category table primary keys
     $nrows = $size = sizeOf($key);
     // Category count
     $html = "";
     // Find out if we have subcategories to display
     $allowed_subcategories = array();
     if (!empty($categories[$category_id]["category_parent_id"])) {
         // Find the Root Category of this category
         $root = $categories[$category_id];
         $allowed_subcategories[] = $categories[$category_id]["category_parent_id"];
         // Loop through the Tree up to the root
         while (!empty($root["category_parent_id"])) {
             $allowed_subcategories[] = $categories[$root["category_child_id"]]["category_child_id"];
             $root = $categories[$root["category_parent_id"]];
         }
     }
     // Fix the empty Array Fields
     if ($nrows < count($row_list)) {
         $nrows = count($row_list);
     }
     // Now show the categories
     for ($n = 0; $n < $nrows; $n++) {
         if (!isset($row_list[$n]) || !isset($category_tmp[$row_list[$n]]["category_child_id"])) {
             continue;
         }
         if ($category_id == $category_tmp[$row_list[$n]]["category_child_id"]) {
             $style = $highlighted_style;
         } else {
             $style = "";
         }
         $allowed = false;
         if ($depth_list[$n] > 0) {
             // Subcategory!
             if (isset($root) && in_array($category_tmp[$row_list[$n]]["category_child_id"], $allowed_subcategories) || $category_tmp[$row_list[$n]]["category_parent_id"] == $category_id || $category_tmp[$row_list[$n]]["category_parent_id"] == @$categories[$category_id]["category_parent_id"]) {
                 $allowed = true;
             }
         } else {
             $allowed = true;
         }
         $append = "";
         if ($allowed) {
             if ($style == $highlighted_style) {
                 $append = 'id="active_menu"';
             }
             if ($depth_list[$n] > 0) {
                 $css_class = "sublevel";
             } else {
                 $css_class = $links_css_class;
             }
             $catname = shopMakeHtmlSafe($category_tmp[$row_list[$n]]["category_name"]);
             $html .= '
       <a title="' . $catname . '" style="display:block;' . $style . '" class="' . $css_class . '" href="' . $sess->url(URL . "index.php?page=shop.browse&amp;category_id=" . $category_tmp[$row_list[$n]]["category_child_id"]) . '" ' . $append . '>' . str_repeat("&nbsp;&nbsp;&nbsp;", $depth_list[$n]) . $catname . ps_product_category::products_in_category($category_tmp[$row_list[$n]]["category_child_id"]) . '</a>';
         }
     }
     return $html;
 }
* @subpackage html
* @copyright Copyright (C) 2004-2008 soeren - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details.
*
* http://virtuemart.net
*/
mm_showMyFileName(__FILE__);
global $ps_product_category;
require_once CLASSPATH . "pageNavigation.class.php";
require_once CLASSPATH . "htmlTools.class.php";
$categories = ps_product_category::getCategoryTreeArray(false, $keyword);
// Get array of category objects
$result = ps_product_category::sortCategoryTreeArray($categories);
$nrows = $size = sizeOf($categories);
// Category count
$id_list = $result['id_list'];
$row_list = $result['row_list'];
$depth_list = $result['depth_list'];
$categories = $result['category_tmp'];
// Create the Page Navigation
$pageNav = new vmPageNav($nrows, $limitstart, $limit);
for ($n = $pageNav->limitstart; $n < $nrows; $n++) {
    @$levelcounter[$categories[$row_list[$n]]["category_parent_id"]]++;
}
// Create the List Object with page navigation
$listObj = new listFactory($pageNav);