예제 #1
0
/**
* Compiles a list of menumanager items
*/
function showMenu($option)
{
    global $database, $mainframe, $mosConfig_list_limit;
    ## Main Query
    $query = "SELECT a.title, a.params, a.id" . "\n FROM #__modules AS a" . "\n WHERE a.module = 'mod_mainmenu'" . "\n ORDER BY a.title";
    $database->setQuery($query);
    $menus = $database->loadObjectList();
    $total = count($menus);
    ## Query to get menu item count and menutype
    $query = "SELECT a.menutype, count( a.menutype ) as num" . "\n FROM #__menu AS a" . "\n WHERE a.published != -2" . "\n GROUP BY a.menutype" . "\n ORDER BY a.menutype";
    $database->setQuery($query);
    $menutype = $database->loadObjectList();
    for ($i = 0; $i < $total; $i++) {
        $params = mosParseParams($menus[$i]->params);
        // adds menutype to array
        $menus[$i]->type = trim(@$params->menutype);
        foreach ($menutype as $temp) {
            if ($menus[$i]->type == $temp->menutype) {
                // adds item count to array
                $menus[$i]->num = $temp->num;
            }
        }
        if (@(!$menus[$i]->num)) {
            $menus[$i]->num = 0;
        }
    }
    $limit = $mainframe->getUserStateFromRequest("viewlistlimit", 'limit', $mosConfig_list_limit);
    $limitstart = $mainframe->getUserStateFromRequest("view{" . $option . "}limitstart", 'limitstart', 0);
    require_once $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php';
    $pageNav = new mosPageNav($total, $limitstart, $limit);
    HTML_menumanager::show($option, $menus, $pageNav);
}
예제 #2
0
/**
* Compiles a list of menumanager items
*/
function showMenu($option)
{
    global $database, $mainframe, $mosConfig_list_limit;
    $limit = intval($mainframe->getUserStateFromRequest("viewlistlimit", 'limit', $mosConfig_list_limit));
    $limitstart = intval($mainframe->getUserStateFromRequest("view{" . $option . "}limitstart", 'limitstart', 0));
    $menuTypes = mosAdminMenus::menutypes();
    $total = count($menuTypes);
    $i = 0;
    $menus = array();
    foreach ($menuTypes as $a) {
        $menus[$i] = new StdClass();
        $menus[$i]->type = $a;
        // query to get number of modules for menutype
        $query = "SELECT count( id )" . "\n FROM #__modules" . "\n WHERE module = 'mod_mainmenu'" . "\n AND params LIKE '%" . $database->getEscaped($a) . "%'";
        $database->setQuery($query);
        $modules = $database->loadResult();
        if (!$modules) {
            $modules = '-';
        }
        $menus[$i]->modules = $modules;
        $i++;
    }
    // Query to get published menu item counts
    $query = "SELECT a.menutype, count( a.menutype ) as num" . "\n FROM #__menu AS a" . "\n WHERE a.published = 1" . "\n GROUP BY a.menutype" . "\n ORDER BY a.menutype";
    $database->setQuery($query);
    $published = $database->loadObjectList();
    // Query to get unpublished menu item counts
    $query = "SELECT a.menutype, count( a.menutype ) as num" . "\n FROM #__menu AS a" . "\n WHERE a.published = 0" . "\n GROUP BY a.menutype" . "\n ORDER BY a.menutype";
    $database->setQuery($query);
    $unpublished = $database->loadObjectList();
    // Query to get trash menu item counts
    $query = "SELECT a.menutype, count( a.menutype ) as num" . "\n FROM #__menu AS a" . "\n WHERE a.published = -2" . "\n GROUP BY a.menutype" . "\n ORDER BY a.menutype";
    $database->setQuery($query);
    $trash = $database->loadObjectList();
    for ($i = 0; $i < $total; $i++) {
        // adds published count
        foreach ($published as $count) {
            if ($menus[$i]->type == $count->menutype) {
                $menus[$i]->published = $count->num;
            }
        }
        if (@(!$menus[$i]->published)) {
            $menus[$i]->published = '-';
        }
        // adds unpublished count
        foreach ($unpublished as $count) {
            if ($menus[$i]->type == $count->menutype) {
                $menus[$i]->unpublished = $count->num;
            }
        }
        if (@(!$menus[$i]->unpublished)) {
            $menus[$i]->unpublished = '-';
        }
        // adds trash count
        foreach ($trash as $count) {
            if ($menus[$i]->type == $count->menutype) {
                $menus[$i]->trash = $count->num;
            }
        }
        if (@(!$menus[$i]->trash)) {
            $menus[$i]->trash = '-';
        }
    }
    require_once $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php';
    $pageNav = new mosPageNav($total, $limitstart, $limit);
    HTML_menumanager::show($option, $menus, $pageNav);
}