', $root_end_string = '', $parent_start_string = '
  • ', $parent_end_string = '
  • ', $parent_group_start_string = '', $child_start_string = '
  • ', $child_end_string = '
  • ', $breadcrumb_separator = '_', $breadcrumb_usage = TRUE, $spacer_string = '', $spacer_multiplier = 1, $follow_cpath = FALSE, $cpath_array = array(), $cpath_start_string = '', $cpath_end_string = '', $banner_image = '', $banner_link = '', $banner_name = ''; public function __construct() { // Get database information $dbconn =& oosDBGetConn(); $oostable =& oosDBGetTables(); $nLanguageID = isset($_SESSION['language_id']) ? intval( $_SESSION['language_id'] ) : DEFAULT_LANGUAGE_ID; $categoriestable = $oostable['categories']; $categories_descriptionstable = $oostable['categories_description']; $sql = "SELECT c.categories_id, cd.categories_name, c.parent_id, c.categories_banner, c.color, c.menu_type, c.categories_status FROM $categoriestable c, $categories_descriptionstable cd WHERE c.categories_status = '2' AND c.categories_id = cd.categories_id AND cd.categories_languages_id = '" . intval($nLanguageID) . "' ORDER BY c.parent_id, c.sort_order, cd.categories_name"; if (USE_CACHE == 'true') { $categories_result = $dbconn->CacheExecute(3600, $sql); } else { $categories_result = $dbconn->Execute($sql); } $this->data = array(); while ($categories = $categories_result->fields) { $this->data[$categories['parent_id']][$categories['categories_id']] = array('name' => $categories['categories_name'], 'banner' => $categories['categories_banner'], 'color' => $categories['color'], 'menu_type' => $categories['menu_type'], 'count' => 0); // Move that ADOdb pointer! $categories_result->MoveNext(); } } public function buildBranch($parent_id, $level = 0, $submenu = 0) { $aContents = oos_get_content(); if (isset($this->data[$parent_id])) { foreach ($this->data[$parent_id] as $category_id => $category) { $this->count++; if ($this->breadcrumb_usage == TRUE) { $category_link = $this->buildBreadcrumb($category_id); } else { $category_link = $category_id; } $sLink = ''; if ($category['banner'] != '') { $this->banner_image = OOS_IMAGES . 'banners/large/' . $category['banner']; $this->banner_link = oos_href_link($aContents['shop'], 'category=' . $category_link); $this->banner_name = $category['name']; } switch ($level) { case 0: $result .= $this->root_start_string; break; case 1: if ($submenu == 0) { $submenu++; $this->count = 0; $this->submenu = 1; $this->count_col++; $result .= '' . "\n"; } $this->submenu = 0; $result .= $this->root_end_string; break; case 1: if ($this->count > 0) { $result .= ''; } break; case 2: if ($this->count > 0) { $result .= $this->parent_end_string; } break; } } } return $result; } public function buildBreadcrumb($category_id, $level = 0) { $breadcrumb = ''; foreach ($this->data as $parent => $categories) { foreach ($categories as $id => $info) { if ($id == $category_id) { if ($level < 1) { $breadcrumb = $id; } else { $breadcrumb = $id . $this->breadcrumb_separator . $breadcrumb; } if ($parent != $this->root_category_id) { $breadcrumb = $this->buildBreadcrumb($parent, $level+1) . $breadcrumb; } } } } return $breadcrumb; } public function build() { return $this->buildBranch($this->root_category_id); } public function setRootCategoryID($root_category_id) { $this->root_category_id = $root_category_id; } public function setMaximumLevel($max_level) { $this->max_level = $max_level; } public function setRootString($root_start_string, $root_end_string) { $this->root_start_string = $root_start_string; $this->root_end_string = $root_end_string; } public function setBreadcrumbSeparator($breadcrumb_separator) { $this->breadcrumb_separator = $breadcrumb_separator; } public function setBreadcrumbUsage($breadcrumb_usage) { if ($breadcrumb_usage === TRUE) { $this->breadcrumb_usage = TRUE; } else { $this->breadcrumb_usage = FALSE; } } public function setCategoryPath($cpath, $cpath_start_string = '', $cpath_end_string = '') { $this->follow_cpath = TRUE; $this->cpath_array = explode($this->breadcrumb_separator, $cpath); $this->cpath_start_string = $cpath_start_string; $this->cpath_end_string = $cpath_end_string; } public function setFollowCategoryPath($follow_cpath) { if ($follow_cpath === TRUE) { $this->follow_cpath = TRUE; } else { $this->follow_cpath = FALSE; } } public function setCategoryPathString($cpath_start_string, $cpath_end_string) { $this->cpath_start_string = $cpath_start_string; $this->cpath_end_string = $cpath_end_string; } public function setCategoryProductCountString($category_product_count_start_string, $category_product_count_end_string) { $this->category_product_count_start_string = $category_product_count_start_string; $this->category_product_count_end_string = $category_product_count_end_string; } }