/** * Generates the category list with formatted subcategories * * @param string $header the joomla component name * @param int $selid array of video data * @param string $nocatsmess no category message * @param int $pub(optional) only list published categories (0/1) * @param int $cname(optional) category select list name value * @param int $checkaccess(optional) only list accessible categories for current user (0/1) * @return $code */ function categoryList( $header, $selid, $nocatsmess, $pub = 0, $cname = "category_id", $checkaccess = 1, $tag_attribs = 'class="inputbox"', $show_uncategorised=false) { global $mainframe; $db =& JFactory::getDBO(); $my = & JFactory::getUser(); $c = hwd_vs_Config::get_instance(); require_once(JPATH_SITE.DS.'administrator'.DS.'components'.DS.'com_hwdvideoshare'.DS.'helpers'.DS.'access.php'); if ($pub) { $where = "\nWHERE published = 1"; } else { $where = null; } $db->setQuery("SELECT id ,parent,category_name, access_u, access_lev_u, access_u_r from #__hwdvidscategories" . $where . "\nORDER BY category_name" ); $mitems = $db->loadObjectList(); // establish the hierarchy of the menu $children = array (); $nocats = 0; // first pass - collect children foreach ($mitems as $v) { $pt = $v->parent; $nocats = 1; $list = @$children[$pt] ? $children[$pt] : array (); array_push($list, $v); $children[$pt] = $list; } // second pass - get an indent list of the items $list = hwd_vs_tools::catTreeRecurse(0, '', array (), $children); // assemble menu items to the array $mitems = array (); if ($nocats == 0) { $mitems[] = JHTML::_('select.option', '0', $nocatsmess); } else { $mitems[] = JHTML::_('select.option', '0', $header); if ($show_uncategorised) { $mitems[] = JHTML::_('select.option', 'none', 'Uncategorized'); } } $this_treename = ''; foreach ($list as $item) { if ($checkaccess) { if (!hwd_vs_access::allowAccess( $item->access_u, $item->access_u_r, hwd_vs_access::userGID( $my->id ))) { continue; } } if ($this_treename) { if ($item->id != $mitems && strpos($item->treename, $this_treename) === false) { $mitems[] = JHTML::makeOption($item->id, $item->treename); } } else { if ($item->id != $mitems) { $mitems[] = JHTML::_('select.option', $item->id, $item->treename); } else { $this_treename = "$item->treename/"; } } } // build the html select list $code = hwd_vs_tools::selectList2($mitems, $cname, $tag_attribs, 'value', 'text', $selid); return $code; }