- Plaats een extra veld in de profielen (alleen zichtbaar admins en/of moderators), met alle beschikbare informatie over de betreffende gebruiker. It laat zelfs hun IP adressen zien (maar alleen als de gebruiker onlangs heeft ingelogd).
- Plaatst een link naar de Gebruikers Administratie in de profielen van de gebruikers, waar je al hun gegevens kan aanpassen. Deze link is nooit zichtbaar voor moderators.
- Voegt een extra optie toe in de ACP, om de mod aan te zetten voor alleen admins, of admins en moderators, of om de mod uit te schakelen.
- Screenshots:
Admin Control Panel:
Code: Selecteer alles
##############################################################
## MOD Title: Admin Field In Profile Mod
## MOD Author: etncrew < spambots@hotmail.com > (Oker) http://www.etncrew.com/forum
## MOD Description: A very easy to install add-on, which adds an admin-only field to the user profiles, with
## detailed user information, and a link to the Admin User Management.
## MOD Version: 2.0.0
##
## Installation Level: Easy
## Installation Time: 10 Minutes
## Files To Edit: constants.php
## admin/admin_board.php
## includes/usercp_viewprofile.php
## language/lang_english/lang_main.php
## language/lang_english/lang_admin.php
## templates/subSilver/profile_view_body.tpl
## templates/subSilver/admin/board_config_body.tpl
##
## Included Files: n/a
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes:
##
##############################################################
## MOD History:
##
## 2004-11-19 - Version 2.0.3
## - Added disable/admin only/admin & moderator only switch in the ACP
## - Added session history (ip tracking)
## - Small bugfix
##
## 2004-11-17 - Version 2.0.0
## - Added an admin-only field with detaild user information
##
## 2004-10-20 - Version 1.0.0
## - Creation
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ SQL ]------------------------------------------
#
INSERT INTO `phpbb_config` ( `config_name` , `config_value` ) VALUES ('admin_field', '1');
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_board.php
#
#-----[ FIND ]------------------------------------------
#
$prune_no = ( !$new['prune_enable'] ) ? "checked=\"checked\"" : "";
#
#-----[ AFTER, ADD ]------------------------------------------
#
// Begin mod | Admin Field In Profile
// ADD
$admin_field_disabled = ($new['admin_field'] == 0) ? 'checked="checked"' : '';
$admin_field_admin = ($new['admin_field'] == 1) ? 'checked="checked"' : '';
$admin_field_mod = ($new['admin_field'] == 2) ? 'checked="checked"' : '';
// End mod | Admin Field In Profile
#
#-----[ FIND ]------------------------------------------
#
"L_ADMIN" => $lang['Acc_Admin'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
// Begin mod | Admin Field In Profile
// ADD
"L_ADMIN_FIELD" => $lang['Admin_field'],
"L_ADMIN_FIELD_EXPLAIN" => $lang['Admin_field_explain'],
"L_ADMIN_ONLY" => $lang['Admin_only'],
"L_ADMIN_MOD_ONLY" => $lang['Admin_mod_only'],
// End mod | Admin Field In Profile
#
#-----[ FIND ]------------------------------------------
#
"ACTIVATION_NONE_CHECKED" => $activation_none,
#
#-----[ AFTER, ADD ]------------------------------------------
#
// Begin mod | Admin Field In Profile
// ADD
"ADMIN_FIELD_DISABLED" => $admin_field_disabled,
"ADMIN_FIELD_ADMIN" => $admin_field_admin,
"ADMIN_FIELD_MOD" => $admin_field_mod,
// End mod | Admin Field In Profile
#
#-----[ OPEN ]------------------------------------------
#
constants.php
#
#-----[ FIND ]------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Begin mod | Admin Field In Profile
// ADD
define('ADMIN_FIELD_TABLE', $table_prefix.'admin_field');
// End mod | Admin Field In Profile
#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_viewprofile.php
#
#-----[ FIND ]------------------------------------------
#
$template->assign_vars(array(
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Begin mod | Admin Field In Profile
// ADD
if((($userdata['user_level'] == ADMIN) && ($board_config['admin_field'] != 0)) || (($userdata['user_level'] == MOD) && ($board_config['admin_field'] == 2))) {
$user_id = ( isset( $HTTP_POST_VARS[POST_USERS_URL]) ) ? intval( $HTTP_POST_VARS[POST_USERS_URL]) : intval( $HTTP_GET_VARS[POST_USERS_URL]);
$this_userdata = get_userdata($user_id);
$No = "<b>" . $lang['No'] . "</b>";
$Yes = $lang['Yes'];
$timezone = "GMT " . (($this_userdata['user_timezone'] >= 0) ? "+" : "") . round($this_userdata['user_timezone'], 1);
$sql = "SELECT themes_id, style_name
FROM " . THEMES_TABLE . "
ORDER BY template_name, themes_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
if ($row['themes_id'] == $this_userdata['user_style']) {
$style = $row['style_name'];
}
}
$sql = "SELECT session_user_id, session_time, session_ip FROM " . SESSIONS_TABLE . "
WHERE session_user_id = " . $this_userdata['user_id'] . " ORDER BY session_time DESC";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Couldn't obtain guest user/online information.", "", __LINE__, __FILE__, $sql);
}
$onlinerow_reg = $db->sql_fetchrowset($result);
for($i = 0; $i < count($onlinerow_reg); $i++) {
$ip_history .= "<a target='_blank' href='http://network-tools.com/default.asp?host=" . decode_ip($onlinerow_reg[$i]['session_ip']) . "'>" . decode_ip($onlinerow_reg[$i]['session_ip']) . "</a><br/>";
$ip_time .= date("D M j, Y H:i", $onlinerow_reg[$i]['session_time']) . "<br />";
}
if (!$ip_time) {
$ip_time = $lang['No_recent_data'];
}
$template->assign_vars(array(
'L_ADMIN_ONLY' => ($userdata['user_level'] == ADMIN) ? $lang['Admin_only_field'] : $lang['Admin_mod_only_field'],
'L_USER_ADMIN' => $lang['User_admin'],
'U_ADMIN_PROFILE' => "admin/admin_users.$phpEx?mode=edit&" . POST_USERS_URL . '=' . $profiledata['user_id'] . '&sid='. $userdata['session_id'],
'L_IP' => $lang['IP_history'],
'IP_TIME' => $ip_time,
'IP' => $ip_history,
'L_REG_INFO' => $lang['Registration_info'],
'U_EMAIL_ADDRESS' => "<a href='$email_uri'>{$profiledata['user_email']}</a>",
'L_PREFERENCES' => $lang['Preferences'],
'L_PUBLIC_VIEW_EMAIL' => $lang['Public_view_email'],
'VIEW_EMAIL' => ($this_userdata['user_viewemail'] == 0) ? $No : $Yes,
'L_HIDDEN' => $lang['Hide_user'],
'HIDDEN' => ($this_userdata['user_allow_viewonline'] == 1) ? $No : $Yes,
'L_NOTIFY_PM' => $lang['Notify_on_privmsg'],
'NOTIFY_PM' => ($this_userdata['user_notify_pm'] == 0) ? $No : $Yes,
'L_POPUP_PM' => $lang['Popup_on_privmsg'],
'POPUP_PM' => ($this_userdata['user_popup_pm'] == 0) ? $No : $Yes,
'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'],
'ALWAYS_ADD_SIGNATURE' => ($this_userdata['user_attachsig'] == 0) ? $No : $Yes,
'L_NOTIFY_REPLY' => $lang['Always_notify'],
'NOTIFY_REPLY' => ($this_userdata['user_notify'] == 0) ? $No : $Yes,
'L_ALWAYS_ALLOW_BBCODE' => $lang['Always_bbcode'],
'ALWAYS_ALLOW_BBCODE' => ($this_userdata['user_allowbbcode'] == 0) ? $No : $Yes,
'L_ALWAYS_ALLOW_HTML' => $lang['Always_html'],
'ALWAYS_ALLOW_HTML' => ($this_userdata['user_allowhtml'] == 0) ? $No : $Yes,
'L_ALWAYS_ALLOW_SMILIES' => $lang['Always_smile'],
'ALWAYS_ALLOW_SMILIES' => ($this_userdata['user_allowsmile'] == 0) ? $No : $Yes,
'L_LANG' => $lang['Board_lang'],
'LANG' => $this_userdata['user_lang'],
'L_BOARD_STYLE' => $lang['Board_style'],
'BOARD_STYLE' => $style,
'L_TIMEZONE' => $lang['Timezone'],
'TIMEZONE' => $timezone,
'L_SPECIAL_ADMIN' => $lang['User_special'],
'L_USER_ACTIVE' => $lang['User_status'],
'USER_ACTIVE' => ($this_userdata['user_active'] == 0) ? $No : $Yes,
'L_ALLOW_AVATAR' => $lang['User_allowavatar'],
'ALLOW_AVATAR' => ($this_userdata['user_allowavatar'] == 0) ? $No : $Yes,
'L_ALLOW_PM' => $lang['User_allowpm'],
'ALLOW_PM' => ($this_userdata['user_allow_pm'] == 0) ? $No : $Yes)
);
$template->assign_block_vars("switch_user_admin", array());
if($userdata['user_level'] == ADMIN) {
$template->assign_block_vars("switch_user_mod", array());
}
}
// End mod | Admin Field In Profile
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/profile_view_body.tpl
#
#-----[ FIND ]------------------------------------------
# Note: this part is not neccesary (but it looks better), skip it if you can't find it.
<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0" align="center">
#
#-----[ IN-LINE FIND ]------------------------------------------
#
3
#
#-----[ IN-LINE, REPLACE WITH ]------------------------------------------
#
0
#
#-----[ FIND ]------------------------------------------
#
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<!-- Begin MOD | Admin Field In Profile
Add -->
<!-- BEGIN switch_user_admin -->
<tr>
<td colspan="2" class="catLeft" width="100%" height="28" align="center"><b><span class="gen">{L_ADMIN_ONLY}</span></b></td>
</tr>
<tr>
<td colspan="2" class="row1" valign="top"><table width="100%" border="0" cellspacing="1" cellpadding="3">
<!-- END switch_user_admin -->
<!-- BEGIN switch_user_mod -->
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_USER_ADMIN}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen"><a target="_admin" href="{U_ADMIN_PROFILE}">{USERNAME}</a></span></td>
</tr>
<!-- END switch_user_mod -->
<!-- BEGIN switch_user_admin -->
<tr>
<td colspan="2" class="row2" height="6" valign="top" align="center"><span class="gensmall">{L_REG_INFO}</span></td>
</tr>
<tr>
<td class="row1" width="50%" height="6" valign="top" align="right"><span class="gen">{L_EMAIL_ADDRESS}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{U_EMAIL_ADDRESS}</span></td>
</tr>
<tr>
<td colspan="2" class="row2" height="6" valign="top" align="center"><span class="gensmall">{L_PREFERENCES}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_PUBLIC_VIEW_EMAIL}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{VIEW_EMAIL}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_HIDDEN}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{HIDDEN}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_NOTIFY_PM}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{NOTIFY_PM}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_POPUP_PM}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{POPUP_PM}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_HIDDEN}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{HIDDEN}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_ALWAYS_ADD_SIGNATURE}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{ALWAYS_ADD_SIGNATURE}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_NOTIFY_REPLY}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{NOTIFY_REPLY}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_ALWAYS_ALLOW_BBCODE}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{ALWAYS_ALLOW_BBCODE}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_ALWAYS_ALLOW_HTML}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{ALWAYS_ALLOW_HTML}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_ALWAYS_ALLOW_SMILIES}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{ALWAYS_ALLOW_SMILIES}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_LANG}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{LANG}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_BOARD_STYLE}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{BOARD_STYLE}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_TIMEZONE}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{TIMEZONE}</span></td>
</tr>
<tr>
<td colspan="2" class="row2" height="6" valign="top" align="center"><span class="gensmall">{L_SPECIAL_ADMIN}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_USER_ACTIVE}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{USER_ACTIVE}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_ALLOW_PM}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{ALLOW_PM}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{L_ALLOW_AVATAR}:</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{ALLOW_AVATAR}</span></td>
</tr>
<tr>
<td colspan="2" class="row2" height="6" valign="top" align="center"><span class="gensmall">{L_IP}</span></td>
</tr>
<tr>
<td class="row1" height="6" valign="top" align="right"><span class="gen">{IP_TIME}</span></td>
<td class="row2" height="6" valign="top"><span class="gen">{IP}</span></td>
</tr>
</table></td>
</tr>
<!-- END switch_user_admin -->
<!-- End MOD | Admin Field In Profile -->
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<td class="row1">{L_ENABLE_PRUNE}</td>
<td class="row2"><input type="radio" name="prune_enable" value="1" {PRUNE_YES} /> {L_YES} <input type="radio" name="prune_enable" value="0" {PRUNE_NO} /> {L_NO}</td>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<!-- Begin MOD | Admin Field In Profile
Add -->
<tr>
<td class="row1">{L_ADMIN_FIELD}<br /><span class="gensmall">{L_ADMIN_FIELD_EXPLAIN}</span></td>
<td class="row2"><input type="radio" name="admin_field" value="0" {ADMIN_FIELD_DISABLED} />{L_DISABLED} <input type="radio" name="admin_field" value="1" {ADMIN_FIELD_ADMIN} />{L_ADMIN_ONLY} <input type="radio" name="admin_field" value="2" {ADMIN_FIELD_MOD} />{L_ADMIN_MOD_ONLY}</td>
</tr>
<!-- End MOD | Admin Field In Profile -->
#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php
#
#-----[ FIND ]------------------------------------------
#
//
// That's all, Folks!
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Begin mod | Admin Field In Profile
// Add
$lang['Admin_only_field'] = 'Admin Only Field';
$lang['Admin_mod_only_field'] = 'Moderators Only Field';
$lang['User_admin'] = 'User Administration';
$lang['User_status'] = 'User is active';
$lang['User_allowpm'] = 'Can send Private Messages';
$lang['User_allowavatar'] = 'Can display avatar';
$lang['User_special'] = 'Special admin-only fields';
$lang['IP_history'] = 'Session history [ date | ip ]';
$lang['No_recent_data'] = 'No recent data available';
// End mod | Admin Field In Profile
#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_admin.php
#
#-----[ FIND ]------------------------------------------
#
//
// That's all Folks!
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Begin mod | Admin Field In Profile
// Add
$lang['Admin_field'] = "Admin Field In Profile";
$lang['Admin_field_explain'] = "Adds detailed user information to the profiles, only viewable by admins and/or moderators.";
$lang['Admin_only'] = "Admin Only";
$lang['Admin_mod_only'] = "Admins & Moderators";
// End mod | Admin Field In Profile
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Upgrade: version 2.0.3