Ejemplo n.º 1
0
/**
 * show galleries
 * @param database A database connector object
 */
function show()
{
    global $mainframe, $option;
    $database =& JFactory::getDBO();
    $app =& JFactory::getApplication();
    $list_limit = $app->getCfg('list_limit');
    $limit = $mainframe->getUserStateFromRequest("viewlistlimit", 'limit', $list_limit);
    $limitstart = $mainframe->getUserStateFromRequest("view{$option}limitstart", 'limitstart', 0);
    $levellimit = $mainframe->getUserStateFromRequest("view{$option}limit", 'levellimit', 10);
    $search = $mainframe->getUserStateFromRequest("search{$option}", 'search', '');
    $search = $database->getEscaped(trim(strtolower($search)));
    // select the records
    // note, since this is a tree we have to do the limits code-side
    if ($search) {
        $query = "SELECT id" . "\n FROM #__rsgallery2_galleries" . "\n WHERE LOWER( name ) LIKE '%" . strtolower($search) . "%'";
        $database->setQuery($query);
        $search_rows = $database->loadResultArray();
    }
    $query = "SELECT a.*, u.name AS editor" . "\n FROM #__rsgallery2_galleries AS a" . "\n LEFT JOIN #__users AS u ON u.id = a.checked_out" . "\n ORDER BY a.ordering";
    $database->setQuery($query);
    $rows = $database->loadObjectList();
    if ($database->getErrorNum()) {
        echo $database->stderr();
        return false;
    }
    // establish the hierarchy of the menu
    $children = array();
    // first pass - collect children
    foreach ($rows as $v) {
        $pt = $v->parent;
        $list = @$children[$pt] ? $children[$pt] : array();
        array_push($list, $v);
        $children[$pt] = $list;
    }
    // second pass - get an indent list of the items
    $list = JHTML::_('menu.treerecurse', 0, '', array(), $children, max(0, $levellimit - 1));
    // eventually only pick out the searched items.
    if ($search) {
        $list1 = array();
        foreach ($search_rows as $sid) {
            foreach ($list as $item) {
                if ($item->id == $sid) {
                    $list1[] = $item;
                }
            }
        }
        // replace full list with found items
        $list = $list1;
    }
    $total = count($list);
    jimport("joomla.html.pagination");
    $pageNav = new JPagination($total, $limitstart, $limit);
    $lists['levellist'] = JHTML::_("Select.integerlist", 1, 20, 1, 'levellimit', 'size="1" onchange="document.adminForm.submit();"', $levellimit);
    // slice out elements based on limits
    $list = array_slice($list, $pageNav->limitstart, $pageNav->limit);
    html_rsg2_galleries::show($list, $lists, $search, $pageNav);
}