function traverse_tree_down(&$mymenu_content, $category_id = '0', $level = '0', $shopper_group_id) { static $ibg = 0; global $Itemid, $urlpath, $sortparam; $db = JFactory::getDbo(); $objhelper = new redhelper(); $Itemid = JRequest::getInt('Itemid'); $level++; $redproduct_menu = new modProMenuHelper(); if ($shopper_group_id) { $shoppergroup_cat = $redproduct_menu->get_shoppergroup_cat($shopper_group_id); } $query = "SELECT category_name as cname, category_id as cid, category_child_id as ccid FROM #__redshop_category as a " . "LEFT JOIN #__redshop_category_xref as b ON a.category_id=b.category_child_id " . "WHERE a.published=1 " . "AND b.category_parent_id=" . (int) $category_id; if ($shopper_group_id && count($shoppergroup_cat) > 0) { $query .= " and category_id in (" . $shoppergroup_cat[0] . ")"; } $query .= " ORDER BY " . $sortparam . ""; $db->setQuery($query); $categories = $db->loadObjectList(); if (!($categories == null)) { $i = 1; $numCategories = count($categories); foreach ($categories as $category) { $ibg++; $Treeid = $ibg; $cItemid = $objhelper->getCategoryItemid($category->cid); if ($cItemid != "") { $tmpItemid = $cItemid; } else { $tmpItemid = $Itemid; } $mymenu_content .= str_repeat("\t", $level - 1); if ($level > 1 && $i == 1) { $mymenu_content .= ","; } $mymenu_content .= "['" . $category->cname; //$mymenu_content.= "','href='".JRoute::_($urlpath.'index.php?option=com_redshop&view=category&layout=detail&cid='.$category->cid.'&Treeid='.$Treeid.$itemid)."\''\n "; $mymenu_content .= "','href=\\'" . JRoute::_('index.php?option=com_redshop&view=category&layout=detail&cid=' . $category->cid . '&Treeid=' . $Treeid . '&Itemid=' . $tmpItemid) . "\\''\n "; /* recurse through the subcategories */ $this->traverse_tree_down($mymenu_content, $category->ccid, $level, $shopper_group_id); $mymenu_content .= str_repeat("\t", $level - 1); /* let's see if the loop has reached its end */ if ($i == sizeof($categories) && $level == 1) { $mymenu_content .= "]\n"; } else { $mymenu_content .= "],\n"; } $i++; } } }
function traverse_tree_down(&$mymenu_content, $category_id = '0', $level = '0', $params = '', $shopper_group_id) { static $ibg = 0; global $urlpath, $redproduct_menu; $db = JFactory::getDbo(); $level++; $redproduct_menu = new modProMenuHelper(); if ($params->get('categorysorttype') == "catnameasc") { $sortparam = "category_name ASC"; } if ($params->get('categorysorttype') == "catnamedesc") { $sortparam = "category_name DESC"; } if ($params->get('categorysorttype') == "newest") { $sortparam = "category_id DESC"; } if ($params->get('categorysorttype') == "catorder") { $sortparam = "ordering ASC"; } if ($shopper_group_id) { $shoppergroup_cat = $redproduct_menu->get_shoppergroup_cat($shopper_group_id); } $query = "SELECT category_name, category_id, category_child_id FROM #__redshop_category AS a " . "LEFT JOIN #__redshop_category_xref as b ON a.category_id=b.category_child_id " . "WHERE a.published='1' " . "AND b.category_parent_id= " . (int) $category_id; if ($shopper_group_id && count($shoppergroup_cat) > 0) { $query .= " and category_id IN(" . $shoppergroup_cat[0] . ")"; } $query .= " ORDER BY " . $sortparam . ""; // ."ORDER BY ".$sortparam.""; $db->setQuery($query); $traverse_results = $db->loadObjectList(); $objhelper = new redhelper(); $Itemid = JRequest::getInt('Itemid'); foreach ($traverse_results as $traverse_result) { $cItemid = $objhelper->getCategoryItemid($traverse_result->category_id); if ($cItemid != "") { $tmpItemid = $cItemid; } else { $tmpItemid = $Itemid; } if ($ibg != 0) { $mymenu_content .= ","; } $mymenu_content .= "\n[ '<img src=\"' + ctThemeXPBase + 'darrow.png\" alt=\"arr\" />','" . $traverse_result->category_name . "','" . JRoute::_('index.php?option=com_redshop&view=category&layout=detail&cid=' . $traverse_result->category_id . '&Itemid=' . $tmpItemid) . "',null,'" . $traverse_result->category_name . "'\n "; $ibg++; /* recurse through the subcategories */ $this->traverse_tree_down($mymenu_content, $traverse_result->category_child_id, $level, $params, $shopper_group_id); /* let's see if the loop has reached its end */ $mymenu_content .= "]"; } }
function loadMenu($shopper_group_id) { global $my, $database, $cur_template, $Itemid, $urlpath; $redproduct_menu = new modProMenuHelper(); if ($this->_params->get('categorysorttype') == "catnameasc") { $sortparam = "category_name ASC"; } if ($this->_params->get('categorysorttype') == "catnamedesc") { $sortparam = "category_name DESC"; } if ($this->_params->get('categorysorttype') == "newest") { $sortparam = "category_id DESC"; } if ($this->_params->get('categorysorttype') == "catorder") { $sortparam = "ordering ASC"; } if ($shopper_group_id) { $shoppergroup_cat = $redproduct_menu->get_shoppergroup_cat($shopper_group_id); } $query = "SELECT category_id as id, category_parent_id as parent, category_name as name, '' as type,\r\n\t\t\t\t\t\t\tCONCAT('index.php?option=com_redshop&view=category&layout=detail&cid=', category_id ) AS link,\r\n\t\t\t\t\t\t\t'-1' as browserNav, ordering\r\n\t\t\t\t\t\t\t\tFROM #__redshop_category, #__redshop_category_xref\r\n\t\t\t\t\t\t\t\tWHERE #__redshop_category.published='1'\r\n\t\t\t\t\t\t\t\tAND #__redshop_category.category_id=#__redshop_category_xref.category_child_id "; if ($shopper_group_id && count($shoppergroup_cat) > 0) { $query .= " and category_id in (" . $shoppergroup_cat[0] . ")"; } $query .= " ORDER BY " . $sortparam . ""; $this->_db->setQuery($query); $rows = $this->_db->loadObjectList('id'); // establish the hierarchy of the menu $this->children = array(); // first pass - collect children foreach ($rows as $v) { $pt = $v->parent; $list = @$this->children[$pt] ? $this->children[$pt] : array(); array_push($list, $v); $this->children[$pt] = $list; } // second pass - collect 'open' menus $this->open = array(@$_REQUEST['cid']); }
// what category_id is selected? $category_id = JRequest::getInt('cid'); if ($params->get('categorysorttype') == "catnameasc") { $sortparam = "category_name ASC"; } if ($params->get('categorysorttype') == "catnamedesc") { $sortparam = "category_name DESC"; } if ($params->get('categorysorttype') == "newest") { $sortparam = "category_id DESC"; } if ($params->get('categorysorttype') == "catorder") { $sortparam = "ordering ASC"; } if ($shopper_group_id) { $shoppergroup_cat = $redproduct_menu->get_shoppergroup_cat($shopper_group_id); } // select menu items from database $query = "SELECT category_id,category_parent_id,category_name FROM #__redshop_category AS c " . "LEFT JOIN #__redshop_category_xref AS cx ON c.category_id=cx.category_child_id " . "WHERE c.published=1 "; if ($shopper_group_id && count($shoppergroup_cat) > 0) { $query .= " and category_id IN(" . $shoppergroup_cat[0] . ")"; } $query .= " ORDER BY " . $sortparam . ""; //."ORDER BY ".$sortparam." "; $db->setQuery($query); $catdatas = $db->loadObjectList(); // how many menu items in this menu? // create a unique tree identifier, in case multiple dtrees are used // (max one per module) $tree = "d" . uniqid("tree_"); // start creating the content