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); }
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); }