Verfasst: 19.02.2006 02:50
Hallo jaeckel
...und für alle die das gleiche Problem haben....
Für alles gibt es eine Lösung - hier die Lösung für dich (zwar etwas spät - aber besser spät als nie)Hallo Leute,
wir haben ein großes Board mit rund 20 Tsd. Nutzern. Das Anklicken des nützlichen Mods im ACP macht wenig Spaß, da eine riesige Datei anzeiget wird: Alle Nutzer werden aufgelistet!! Wunsch: Suchfunktion oder Paging.
Hat jemand dafür ein Lösung? Danke.
Code: Alles auswählen
###################################################################################
##
## Ab einer gewissen Anzahl an Usern (+1000) gibt es beim Junior MOD Schwierigkeiten
## die Userauflistung, wo man die Junior Admins definieren kann, aufzurufen.
## In dem besagten Bereich werden alle User gleichzeitig aufgelistet, was ab einer
## grösseren Anzahl an Usern zu Fehlern führen kann.
## Mit der folgenden Änderung kann man dies umgehen, in dem man die Auflistung in
## mehrere Seiten aufteilt.
##
## Autor dieser Änderung/Anpassung: oxpus
##
###################################################################################
#
#-----[ ÖFFNE ]-----
#
# admin/admin_jr_admin.php
#
#-----[ FINDE ]-----
#
function jr_admin_make_bookmark_heading($letters_list)
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
function jr_admin_make_bookmark_heading($letters_list, $start)
#
#-----[ FINDE ]-----
#
$start = '[ ';
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
$startb = '[ <a href="'.append_sid("admin_jr_admin.php?sort_item=" . ( ( isset($HTTP_GET_VARS['sort_item']) || isset($HTTP_POST_VARS['sort_item']) ) ? $sort_item : 'username' ) . "&start=$start&alphanum=" . strtoupper(chr($first_link))).'" class="nav">All</a> | ';
#
#-----[ FINDE ]-----
#
$list .= '<a href="#'.strtoupper(chr($first_link)).'" class="nav">'.strtoupper(chr($items[0])).' - '.strtoupper(chr($items[1])).'</a>';
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
$list .= '<a href="'.append_sid("admin_jr_admin.php?sort_item=" . ( ( isset($HTTP_GET_VARS['sort_item']) || isset($HTTP_POST_VARS['sort_item']) ) ? $sort_item : 'username' ) . "&start=$start&alphanum=0").'" class="nav">0 - 9</a>';
#
#-----[ FINDE ]-----
#
$list .= '<a href="#'.strtoupper(chr($i)).'" class="nav">'.strtoupper(chr($i)).'</a>';
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
$list .= '<a href="'.append_sid("admin_jr_admin.php?sort_item=" . ( ( isset($HTTP_GET_VARS['sort_item']) || isset($HTTP_POST_VARS['sort_item']) ) ? $sort_item : 'username' ) . "&start=$start&alphanum=" . strtoupper(chr($i))).'" class="nav">'.strtoupper(chr($i)).'</a>';
#
#-----[ FINDE ]-----
#
$list .= '<a href="#'.strtoupper(chr($ord_value)).'" class="nav">'.strtoupper(chr($ord_value)).'</a>';
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
$list .= '<a href="'.append_sid("admin_jr_admin.php?sort_item=" . ( ( isset($HTTP_GET_VARS['sort_item']) || isset($HTTP_POST_VARS['sort_item']) ) ? $sort_item : 'username' ) . "&start=$start&alphanum=" . strtoupper(chr($ord_value))).'" class="nav">'.strtoupper(chr($ord_value)).'</a>';
#
#-----[ FINDE ]-----
#
return ($start . $list);
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
return ($startb . $list);
#
#-----[ FINDE ]-----
#
$params = array('mode' => '', 'user_id' => '', 'color_group_id' => '', 'order' => 'ASC', 'sort_item' => 'username');
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
$params = array('mode' => '', 'user_id' => '', 'color_group_id' => '', 'order' => 'ASC', 'sort_item' => 'username', 'start' => '0', 'alphanum' => '');
#
#-----[ FINDE ]-----
#
$current_letter = ''; //for alpha links
$assigned_current_letter_link = false; //for alpha links
$letter_list = array(); //hold letters
$SQL = "SELECT $color_group username, user_id, user_rank, user_allow_pm, user_allowavatar, user_active
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
ORDER BY $sort_item $order";
if (!$result = $db->sql_query($SQL))
{
message_die(GENERAL_ERROR, $lang['Error_User_Table'], '', __LINE__, __FILE__, $SQL);
}
while ($row = $db->sql_fetchrow($result))
{
$test_letter = strtoupper(substr($row['username'], 0, 1));
if ($test_letter != $current_letter)
{
//If we have a new letter, get it here.
$current_letter = $test_letter;
$assigned_current_letter_link = false;
$letter_list[ord($current_letter)] = true;
}
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
$proof = '';
for ($i = 97; $i <= 122; $i++)
{
$proof .= " AND username NOT LIKE '" . chr($i) . "%' ";
}
$alpha_where = ( $alphanum == '0' ) ? $proof : (($alphanum != '') ? "AND username LIKE '$alphanum%'" : '');
$per_page = $board_config['topics_per_page'];
$SQL = "SELECT $color_group username, user_id, user_rank, user_allow_pm, user_allowavatar, user_active
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
$alpha_where
ORDER BY $sort_item $order
LIMIT $start, $per_page";
if (!$result = $db->sql_query($SQL))
{
message_die(GENERAL_ERROR, $lang['Error_User_Table'], '', __LINE__, __FILE__, $SQL);
}
while ($row = $db->sql_fetchrow($result))
{
#
#-----[ FINDE ]-----
#
//Make sort image choice and sorting links
#
#-----[ DARÜBER EINFÜGEN ]-----
#
$SQL = "SELECT user_id FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
$alpha_where";
if (!$result = $db->sql_query($SQL))
{
message_die(GENERAL_ERROR, $lang['Error_User_Table'], '', __LINE__, __FILE__, $SQL);
}
$row = $db->sql_numrows($result);
$total_users_count = $row;
$template->assign_vars(array(
'PAGINATION' => generate_pagination("admin_jr_admin.$phpEx?sort_item=$sort_item", $total_users_count, $per_page, $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $per_page ) + 1 ), ceil( $total_users_count / $per_page )))
);
#
#-----[ FINDE ]-----
#
if ($sort_item == 'username')
{
$template->assign_var('LETTER_HEADING', jr_admin_make_bookmark_heading($letter_list));
}
#
#-----[ MIT FOLGENDEM ERSETZEN ]-----
#
$SQL = "SELECT username FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS;
if (!$result = $db->sql_query($SQL))
{
message_die(GENERAL_ERROR, $lang['Error_User_Table'], '', __LINE__, __FILE__, $SQL);
}
while ($row = $db->sql_fetchrow($result))
{
$test_letter = strtoupper(substr($row['username'], 0, 1));
if ($test_letter != $current_letter)
{
//If we have a new letter, get it here.
$current_letter = $test_letter;
$assigned_current_letter_link = false;
$letter_list[ord($current_letter)] = true;
}
}
if ($sort_item == 'username')
{
$template->assign_var('LETTER_HEADING', jr_admin_make_bookmark_heading($letter_list, $start));
}
#
#-----[ ÖFFNE ]-----
#
# templates/subSilver/admin/jr_admin_user_list.tpl
#
#-----[ FINDE ]-----
#
</form>
#
#-----[ DARUNTER EINFÜGEN ]-----
#
<table border="0" cellpadding="3" cellspacing="1" width="96%" class="forumline" align="center">
<tr>
<td><span class="mainmenu"><b>{PAGE_NUMBER}</b></span></td>
<td align="right"><span class="mainmenu"><b>{PAGINATION}</b></span></td>
</table>