Example #1
0
function showDocuments($pend, $sort, $view_type)
{
    global $_DOCMAN;
    require_once $_DOCMAN->getPath('classes', 'utils');
    global $database, $mainframe, $option, $section;
    global $mosConfig_list_limit, $section, $menutype;
    $catid = $mainframe->getUserStateFromRequest("catidarc{option}{$section}", 'catid', 0);
    $limit = $mainframe->getUserStateFromRequest("viewlistlimit", 'limit', $mosConfig_list_limit);
    $limitstart = $mainframe->getUserStateFromRequest("view{$option}{$section}limitstart", 'limitstart', 0);
    $levellimit = $mainframe->getUserStateFromRequest("view{$option}{$section}limit", 'levellimit', 10);
    $search = $mainframe->getUserStateFromRequest("searcharc{$option}{$section}", 'search', '');
    $search = $database->getEscaped(trim(strtolower($search)));
    $where = array();
    if ($catid > 0) {
        $where[] = "a.catid={$catid}";
    }
    if ($search) {
        $where[] = "LOWER(a.dmname) LIKE '%{$search}%'";
    }
    if ($pend == 'yes') {
        $where[] = "a.approved LIKE '0'";
    }
    // get the total number of records
    $query = "SELECT count(*) " . "\n FROM #__docman AS a" . (count($where) ? "\n WHERE " . implode(' AND ', $where) : "");
    $database->setQuery($query);
    $total = $database->loadResult();
    if ($database->getErrorNum()) {
        echo $database->stderr();
        return false;
    }
    // $where[] = "a.catid=cc.id";
    if ($sort == 'filename') {
        $sorttemp = "a.dmfilename";
    } else {
        if ($sort == 'name') {
            $sorttemp = "a.dmname";
        } else {
            if ($sort == 'date') {
                $sorttemp = "a.dmdate_published";
            } else {
                $sorttemp = "a.catid,a.dmname";
            }
        }
    }
    $query = "SELECT a.*, cc.name AS category, u.name AS editor" . "\n FROM #__docman AS a" . "\n LEFT JOIN #__users AS u ON u.id = a.checked_out" . "\n LEFT JOIN #__categories AS cc ON cc.id = a.catid" . (count($where) ? "\n WHERE " . implode(' AND ', $where) : "") . "\n ORDER BY " . $sorttemp . " ASC";
    $database->setQuery($query);
    $rows = $database->loadObjectList();
    if ($database->getErrorNum()) {
        echo $database->stderr();
        return false;
    }
    require_once $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php';
    $pageNav = new mosPageNav($total, $limitstart, $limit);
    // slice out elements based on limits
    $rows = array_slice($rows, $pageNav->limitstart, $pageNav->limit);
    // add category name
    $list = DOCMAN_utils::categoryArray();
    for ($i = 0, $n = count($rows); $i < $n; $i++) {
        $row =& $rows[$i];
        $row->treename = array_key_exists($row->catid, $list) ? $list[$row->catid]->treename : '(orphan)';
    }
    // get list of categories
    $options = array();
    $options[] = dmHTML::makeOption('0', _DML_SELECT_CAT);
    $options[] = dmHTML::makeOption('-1', _DML_ALL_CATS);
    $lists['catid'] = dmHTML::categoryList($catid, "document.adminForm.submit();", $options);
    // get unpublished documents
    $database->setQuery("SELECT count(*) FROM #__docman WHERE approved=0");
    $number_pending = $database->loadResult();
    if ($database->getErrorNum()) {
        echo $database->stderr();
        return false;
    }
    // get pending documents
    $database->setQuery("SELECT count(*) FROM #__docman WHERE published=0");
    $number_unpublished = $database->loadResult();
    if ($database->getErrorNum()) {
        echo $database->stderr();
        return false;
    }
    HTML_DMDocuments::showDocuments($rows, $lists, $search, $pageNav, $number_pending, $number_unpublished, $view_type);
}