外挂了HTML5插件去替代FLASH上传组件,恢复了头像的上传功能
[attach]2126[/attach])XDcMJFLASH最终还是没能跟上时代的步伐,被各大浏览器抛弃,我们这老破旧论坛连头像也上传不了,oU`F$z(Veg;l
花了一个星期反编译了Discuz7.2的FLASH头像上传逻辑,*~,U.rzX,BO
外挂了一个HTML5的插件去替代原来的FLASH,终于恢复了头像的上传,
虽然界面上还有些粗糙,但起嘛能用了,
如果各位发现头像上传有什么问题可以跟帖留言,
我再优化一下/:018]{ |$Bc lm{9F
[quote],vlK0r[R
DZ7.2 HTML5 头像插件 v1.0 2026-05-05 浪$[O3tc1[aL
============================== Z$b!c[ ~a(^ J*B/WK
'XTxpf
【适用环境】N({H5m_
- Discuz! 7.2 UTF-8
- UCenter 1.5,zteI m3q mT0w
- PHP 5.6
/b+_&EZ8q2v|1`OG
【安装方法】
1. 将 upload 目录下的文件,按路径覆盖到你网站根目录h d1RGCMIiu
WeS e2G
2. 特别注意:7@#@citO
本修改仅限使用默认模板,路径为:/templates/default/memcp_profile.htm
(如果你使用了其它模板,请自行替换文件标注部分代码。) RtG$Ym2x*B4H
3. 确保目录权限:
chmod -R 755 uc_server/data/avatar0UZ1j } a["o6@
4. 进入:
个人中心 → 个人资料 → 头像'~C+[.X s J e]#N
即可使用 HTML5 上传
【说明】
- 会直接替换 Flash 头像入口T g-{eBK.W/o'K-q
- 无需安装、无需后台开启
- 不影响 UCenter 原有逻辑nNrsB6dz
- 仅新增一个htnl5上传组件er:E^q V1@ t
^?0HDnI"Gt
[/quote] 打包放这留档,免得自己哪天老人痴呆忘记了 更新V1.1版本,增加图片裁剪功能
修改帖子标题80字符限制,改为120字符!
[code]dz7.2在发新帖的时候 ,新话题标题默认为80字字符,这就可能无法满足一些朋友的需求。我这里有一个办法可以解决,但是通过修改以后,标题字数最多为80个字。其中一个汉字算一个字,一个字母也算一个字,一个数字也算一个字。要修改的文件有:x,M})n)c-V6@5L A
1、include\post.func.php 中有一处 3W)Z&a*bH!o9Ll"@6W
if(strlen($subject) > 80) {
2、include\js\post.js 中有两处 A%G@)w9f3I'PU
} else if(mb_strlen(theform.subject.value) > 80) {
和 )`T;@m_q8\V@r h
showDialog('您的标题超过 80 个字符的限制。'); f(LL3pHl-a
QEg$Ka!j_R
3、include\js\viewthread.js 有两处
} else if(mb_strlen(theform.subject.value) > 80) {
和
s = '您的标题超过 80 个字符的限制
4、modcp\editpost.inc.php 中有一处O'pak.WWU.|I\
if(strlen($subjectnew) > 80) {0~2N3{ @*q!]
RB Rg-jE+E
5,数据库执行sql语句:RY[&ny?8Ni
ALTER TABLE `cdb_posts` CHANGE `subject` `subject` char(120) NOT NULL;,K4B^WS5`
(U {Ui0SW}-]
将以上的 80 改为 较大的数字(比如120)即可!然后更新缓存![/code]
修改discuzcode.func.php里面的多媒体相关代码为HTML5控件方案
禁用原BBcode [flash]pAN/t$`iF0n[code]if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) { $message = preg_replace("/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "<script type=\"text/javascript\" reload=\"1\">document.write(AC_FL_RunContent(...));</script>", $message);}[/code]
改成直接显示链接地址:
[code]if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {(A"` z1|Uk+a4w)g
$message = preg_replace(_ }%d/_R$A?,k$M
"/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is",
'<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>',Y,|.`/IiPn1cTx.o
$messagei}k9Lg$Z4ZU&B"kj
);
}[/code]
顺便禁用 [swf]:
[code]if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
$message = preg_replace("/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",s8J0r luX-V
"bbcodeurl('\\1', ' <img src=\"images/attachicons/flash.gif\" ... Flash: %s</a> ')",
$message);
}[/code]%~H9G%_4O[x
替换为链接:
[code]if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
$message = preg_replace(
"/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",
"'<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>'",t `kIt)t
$message,wtv*y6E}"l
);
}[/code]d6c oH\3{C:h+@
原代码 parseaudio()(MP3音频等):[code]function parseaudio($url, $width = 400, $autostart = 0) {
...
<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6">db'k? ?
...
}[/code]✅ 换成 HTML5[code]function parseaudio($url, $width = 400, $autostart = 0) {
$url = str_replace('\\"', '"', $url);4aB6d"AU7R
return '<audio controls style="width:100%;max-width:'.$width.'px;border-radius:6px;" src="'.$url.'"></audio>';
}[/code]原FALSH多媒体代码:[code]function parsemedia($params, $url) {
...d xDmAiWqU)]
AC_FL_RunContent(...)
}[/code]✅ 改成 HTML5 优先:[code]function parsemedia($params, $url) {
$params = explode(',', $params);"m ]`*G8M
$width = isset($params[1]) ? min(intval($params[1]), 800) : 400;