引用:
覆盖包与官方同步到20081119。
若除了因为该插件外没有修改过member.php,请各位在打了官方补丁后下载覆盖包覆盖。
今天考完一科,闲来打开dz6和6.1F,找找有什么东西需要补回。
说回正题。DZ6中有一个论坛内置头像功能,使用者不需要上传头像就可以使用论坛内置的头像功能。但是在dz6.1和dz6.1F,这个功能完全消失了。
但由于dz6.1f的头像调用机制和dz6一样,这使得在6.1f上寻找回该功能成为了可能。
好的,马上开始改造。
请注意:修改前做好文件的备份,本人不承担因修改导致论坛故障的任何责任。
请先确认您的论坛有如下文件/文件夹存在:
文件:templates\default\member_misc.htm(dz6.1f安装包和dz6均有该文件,而且完全一样)
文件夹:images\avatars(该文件夹存放论坛内置的头像。你可以上传自己所制作的头像为论坛内置头像——请注意,文件大小不要大于20KB,类型只能为gif/jpg/png,长宽不应当大于150*150;或者如果想要回dz6的论坛内置头像,直接上传dz6的同名文件夹下的所有*.gif到该目录)
以下为修改:
1、打开member.php,找到:
复制内容到剪贴板
代码:
$db->query("UPDATE {$tablepre}members SET invisible = !invisible WHERE uid='$discuz_uid'", 'UNBUFFERED');
include language('misc');
showmessage($invisible
? '<a href="member.php?action=switchstatus" title="'.$language['login_switch_invisible_mode'].'" ajaxtarget="loginstatus">'.$language['login_normal_mode'].'</a>'
: '<a href="member.php?action=switchstatus" title="'.$language['login_switch_normal_mode'].'" ajaxtarget="loginstatus">'.$language['login_invisible_mode'].'</a>',
dreferer());在下面加上:
复制内容到剪贴板
代码:
} elseif($action == 'viewavatars') {
$avatarextarray = array('gif', 'jpg', 'png');
if(!submitcheck('avasubmit', 1)) {
$app = 16;
$avatarsdir = DISCUZ_ROOT.'./images/avatars';
$page = max(1, intval($page));
$query = $db->query("SELECT avatar FROM {$tablepre}memberfields WHERE uid='$discuz_uid'");
$member = $db->fetch_array($query);
$avatarlist = '';
$avatars = array('');
if(is_dir($avatarsdir)) {
$adir = dir($avatarsdir);
while($entry = $adir->read()) {
if(in_array(strtolower(fileext($entry)), $avatarextarray) && is_file("$avatarsdir/$entry") && $entry != 'noavatar.gif') {
$avatars[] = $entry;
}
}
$adir->close();
} else {
include language('messages');
showmessage('论坛内置头像目录不存在,或管理员禁止使用该功能。请返回。');
exit;
}
sort($avatars, SORT_REGULAR);
$num = count($avatars);
$start = ($page - 1) * $app;
$end = ($start + $app > $num) ? ($num) : ($start + $app - 1);
$multipage = multi($num, $app, $page, 'member.php?action=viewavatars', 0, 10, FALSE);
for($i = $start; $i <= $end; $i += 4) {
$avatarlist .= "<tr>\n";
for($j = 0; $j < 4; $j++) {
$avatarlist .= '<td width="25%" align="center" style="border-bottom: none;">';
if($avatars[$i + $j] && ($i + $j)) {
$avatarlist .= '<img src="images/avatars/'.$avatars[$i + $j].'" alt="" /></td>';
} else {
if($i == 0) {
$avatarlist .= '<img src="images/avatars/noavatar.gif" alt="" />';
}
$avatarlist .= '</td>';
}
}
$avatarlist .= '</tr><tr>';
for($j = 0; $j < 4; $j++) {
$avatarlist .= '<td class="'.$thisbg.'" width="25%" align="center">';
if($avatars[$i + $j] && ($i + $j)) {
if(strpos($member['avatar'], $avatars[$i + $j])) {
$checked = 'checked="checked"';
} else {
$checked = '';
}
$avatarlist .= '<input type="radio" value="images/avatars/'.$avatars[$i + $j].'" name="systemavatar" '.$checked.' onclick="if($(\'urlavatar\')) { $(\'urlavatar\').value=this.value;previewavatar(this.value); }" />'.$avatars[$i + $j];
} elseif($i + $j == 0) {
if(!$member['avatar']) {
$checked = 'checked="checked"';
}
$avatarlist .= '<input type="radio" value="" name="systemavatar" '.$checked.' onclick="if($(\'urlavatar\')) { $(\'urlavatar\').value=this.value;previewavatar(this.value); }" /><strong>None</strong>';
} else {
$avatarlist .= ' </td>';
}
}
$avatarlist .= '</tr>';
}
include template('member_misc');
}2、打开memcp_profile.htm,在:
复制内容到剪贴板
代码:
{lang memcp_profile_avatar_url}
<br /><input type="text" name="urlavatar" id="urlavatar" onchange="previewavatar(this.value)" size="80" value="{$member[avatar]}" />下面添加:
复制内容到剪贴板
代码:
<br><br>
<a href="member.php?action=viewavatars&page=1" onclick="ajaxget(this.href, 'avatardiv');doane(event);">或者使用论坛内置头像,点击此处打开列表选择。</a>
<div id="avatardiv" style="display: none; margin-top: 10px;"></div>好了,搞定。
附件为方便不懂得修改的人制作。如果你没有修改过dz6.1f,那么就可以覆盖文件。
(附件中的member.php基于以下帖子所附的文件制作:
Discuz! 6.1.0F 20081117 补丁包:
http://www.freediscuz.net/bbs/thread-4406-1-1.html)
P.S:老师不厚道,把这个功能隐藏不给我们用
[
本帖最后由 horseluke 于 2008-11-19 12:51 编辑 ]