예제 #1
0
function showProfiles($kunena_db, $option, $order)
{
    $kunena_app = JFactory::getApplication();
    $kunena_db = JFactory::getDBO();
    $filter_order = $kunena_app->getUserStateFromRequest($option . 'user_filter_order', 'filter_order', 'id', 'cmd');
    $filter_order_Dir = $kunena_app->getUserStateFromRequest($option . 'user_filter_order_Dir', 'filter_order_Dir', 'asc', 'word');
    if ($filter_order_Dir != 'asc') {
        $filter_order_Dir = 'desc';
    }
    $limit = $kunena_app->getUserStateFromRequest("global.list.limit", 'limit', $kunena_app->getCfg('list_limit'), 'int');
    $limitstart = $kunena_app->getUserStateFromRequest("{$option}.user_limitstart", 'limitstart', 0, 'int');
    $search = $kunena_app->getUserStateFromRequest($option . 'user_search', 'search', '', 'string');
    $order = '';
    if ($filter_order == 'id') {
        $order = ' ORDER BY u.id ' . $filter_order_Dir;
    } else {
        if ($filter_order == 'username') {
            $order = ' ORDER BY u.username ' . $filter_order_Dir;
        } else {
            if ($filter_order == 'name') {
                $order = ' ORDER BY u.name ' . $filter_order_Dir;
            } else {
                if ($filter_order == 'moderator') {
                    $order = ' ORDER BY ku.moderator ' . $filter_order_Dir;
                }
            }
        }
    }
    $where = array();
    if (isset($search) && $search != "") {
        $searchstr = $kunena_db->getEscaped(JString::trim(JString::strtolower($search)));
        $whereid = '';
        if (intval($searchstr) > 0) {
            $whereid = 'OR u.id=' . intval($searchstr);
        }
        $where[] = "(u.username LIKE '%{$searchstr}%' OR u.email LIKE '%{$searchstr}%' OR u.name LIKE '%{$searchstr}%' {$whereid})";
    }
    $where = count($where) ? implode(' AND ', $where) : '1';
    $kunena_db->setQuery("SELECT COUNT(*) FROM #__kunena_users AS ku\n\t\tINNER JOIN #__users AS u ON ku.userid=u.id\n\t\tWHERE {$where}");
    $total = $kunena_db->loadResult();
    KunenaError::checkDatabaseError();
    if ($limitstart >= $total) {
        $limitstart = 0;
    }
    if ($limit == 0 || $limit > 100) {
        $limit = 100;
    }
    $kunena_db->setQuery("SELECT u.id, u.username, u.name, ku.moderator\n\t\tFROM #__kunena_users AS ku\n\t\tINNER JOIN #__users AS u ON ku.userid=u.id\n\t\tWHERE {$where}\n\t\t{$order}", $limitstart, $limit);
    $users = $kunena_db->loadObjectList();
    if (KunenaError::checkDatabaseError()) {
        return;
    }
    // table ordering
    $lists['order_Dir'] = $filter_order_Dir;
    $lists['order'] = $filter_order;
    $lists['search'] = $search;
    jimport('joomla.html.pagination');
    $pageNav = new JPagination($total, $limitstart, $limit);
    html_Kunena::showProfiles($option, $users, $pageNav, $order, $lists);
}
예제 #2
0
function showProfiles($kunena_db, $option, $lang, $order)
{
    $app =& JFactory::getApplication();
    $kunena_db =& JFactory::getDBO();
    //$limit = intval(JRequest::getVar( 'limit', 10));
    //$limitstart = intval(JRequest::getVar( 'limitstart', 0));
    $limit = $app->getUserStateFromRequest("global.list.limit", 'limit', $app->getCfg('list_limit'), 'int');
    $limitstart = $app->getUserStateFromRequest("{$option}.limitstart", 'limitstart', 0, 'int');
    $search = $app->getUserStateFromRequest("{$option}.search", 'search', '', 'string');
    $search = $kunena_db->getEscaped(trim(strtolower($search)));
    $where = array();
    if (isset($search) && $search != "") {
        $where[] = "(u.username LIKE '%{$search}%' OR u.email LIKE '%{$search}%' OR u.name LIKE '%{$search}%')";
    }
    $kunena_db->setQuery("SELECT COUNT(*) FROM #__fb_users AS sbu" . "\n LEFT JOIN #__users AS u" . "\n ON sbu.userid=u.id" . (count($where) ? "\nWHERE " . implode(' AND ', $where) : ""));
    $kunena_db->query() or trigger_dberror('Unable to load user profiles w/o limits.');
    $total = $kunena_db->loadResult();
    if ($limitstart >= $total) {
        $limitstart = 0;
    }
    if ($limit == 0 || $limit > 100) {
        $limit = 100;
    }
    if ($order == 1) {
        $kunena_db->setQuery("select * from #__fb_users AS sbu" . "\n LEFT JOIN #__users AS u" . "\n ON sbu.userid=u.id " . (count($where) ? "\nWHERE " . implode(' AND ', $where) : "") . "\n ORDER BY sbu.moderator DESC", $limitstart, $limit);
    } else {
        if ($order == 2) {
            $kunena_db->setQuery("SELECT * FROM #__fb_users AS sbu" . "\n LEFT JOIN #__users AS u " . "\n ON sbu.userid=u.id " . (count($where) ? "\nWHERE " . implode(' AND ', $where) : "") . "\n ORDER BY u.name ASC ", $limitstart, $limit);
        } else {
            if ($order < 1) {
                $kunena_db->setQuery("SELECT * FROM #__fb_users AS sbu " . "\n LEFT JOIN #__users AS u" . "\n ON sbu.userid=u.id " . (count($where) ? "\nWHERE " . implode(' AND ', $where) : "") . "\n ORDER BY sbu.userid", $limitstart, $limit);
            }
        }
    }
    $profileList = $kunena_db->loadObjectList();
    check_dberror('Unable to load user profiles.');
    $countPL = count($profileList);
    jimport('joomla.html.pagination');
    $pageNavSP = new JPagination($total, $limitstart, $limit);
    html_Kunena::showProfiles($option, $lang, $profileList, $countPL, $pageNavSP, $order, $search);
}