Hallo
Ich poste hier mal
die bekannten Bugfixes für den Junior Admin MOD (evtl. hilft das ja mal, wenn alle Lösungen an einer Stelle zu finden sind).
Und los gehts:
1. Problem: Sobald man im ACP auf den neuen Link: Junior Admin klickt erhält man eine leere rechte Seite.
Lösung:
Öffne admin/admin_jr_admin.php
Suche:
Code: Alles auswählen
define('MOD_VERSION', '2.0.5');
define('MOD_CODE', 1);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include_once($phpbb_root_path."includes/functions_jr_admin.$phpEx");
include_once("pagestart.$phpEx");
find_lang_file_nivisec('lang_jr_admin');
if (!empty($setmodules))
{
$filename = basename(__FILE__);
$module['Users']['Jr_Admin'] = $filename;
return;
}
Ersetze mit:
Code: Alles auswählen
if (!empty($setmodules))
{
$filename = basename(__FILE__);
$module['Users']['Jr_Admin'] = $filename;
return;
}
define('MOD_VERSION', '2.0.5');
define('MOD_CODE', 1);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include_once($phpbb_root_path."includes/functions_jr_admin.$phpEx");
include_once("pagestart.$phpEx");
find_lang_file_nivisec('lang_jr_admin');
Der "setmodules" Bereich muss direkt unter
stehen, dann klappts auch
2. Problem: Der Junior Admin Mod ist installiert und man vergibt einem User verschiedene Rechte für bestimmte Bereiche. Wenn dieser User sich nun eingeloggt hat, steht zwar unten Administrations-Bereich, aber wenn er draufklickt passiert nichts.
Lösung:
Code: Alles auswählen
#-----[ OPEN ]------------------------------------------
#
login.php
#
#-----[ FIND ]------------------------------------------
#
if( !$userdata['session_logged_in'] || (isset($HTTP_GET_VARS['admin']) && $userdata['session_logged_in'] && ($userdata['user_level'] == ADMIN))
#
#-----[ REPLACE WITH ]------------------------------------------
#
include_once($phpbb_root_path . 'includes/functions_jr_admin.' . $phpEx);
$jr_admin_userdata = jr_admin_get_user_info($userdata['user_id']);
if( !$userdata['session_logged_in'] || (isset($HTTP_GET_VARS['admin']) && $userdata['session_logged_in'] && (!empty($jr_admin_userdata['user_jr_admin']) || $userdata['user_level'] == ADMIN)))
#
#-----[ OPEN ]------------------------------------------
#
admin/pagestart.php
#
#-----[ FIND ]------------------------------------------
#
redirect(append_sid("login.$phpEx?redirect=admin/&admin=1", true));
#
#-----[ REPLACE WITH ]------------------------------------------
#
redirect(append_sid("login.$phpEx?redirect=admin/index.$phpEx&admin=1", true));
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
3. Problem: 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. Anmerkung: Dieses Problem kann auch bei zu vielen Posts pro User auftreten.
Autor dieser Änderung/Anpassung: oxpus
Lösung:
Code: Alles auswählen
#-----[ Ö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>
P.S. Ich bin nicht der Urheber dieser Lösungen. Wo mir der Autor bekannt ist, wurde er von mir angegeben. Diese Lösungen wurden allesamt von mir getestet und funktionieren einwandfrei. Ich Danke an dieser Stelle allen Usern die an der Lösung dieser Probleme beteiligt waren.
Grüße: Mahony