【情系根子】论坛's Archiver

Admin 发表于 2026-5-6 10:01

外挂了HTML5插件去替代FLASH上传组件,恢复了头像的上传功能

[attach]2126[/attach])XDcMJ
FLASH最终还是没能跟上时代的步伐,被各大浏览器抛弃,我们这老破旧论坛连头像也上传不了,oU`F$z(Veg;l
花了一个星期反编译了Discuz7.2的FLASH头像上传逻辑,*~,U.rzX,BO
外挂了一个HTML5的插件去替代原来的FLASH,终于恢复了头像的上传,
YvzhH hg \ t 虽然界面上还有些粗糙,但起嘛能用了,
RfX/gG['s!Y 如果各位发现头像上传有什么问题可以跟帖留言,
M2s/n:g9C ap 我再优化一下/:018 ]{ |$Bc lm{9F

4b9m3J [#R3\2~J
ZRDB [S6l%} [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
Y~?.|?G|A^7F8G5K - UCenter 1.5,zte Im3q mT0w
- PHP 5.6
8ls k\:J/efh_:S /b+_&EZ8q2v|1`OG
【安装方法】
3G:M&g QPwmD"r f$W 1. 将 upload 目录下的文件,按路径覆盖到你网站根目录 h d1RGCMIi u
WeS e2G
2. 特别注意:7@#@citO
   本修改仅限使用默认模板,路径为:/templates/default/memcp_profile.htm
ip.m5C"|Lg    (如果你使用了其它模板,请自行替换文件标注部分代码。) RtG$Ym2x*B4H

k-I z| o&|%_ 3. 确保目录权限:
V%_G M1k!OZg    chmod -R 755 uc_server/data/avatar0U Z1j } a["o6@

do*H T2AJh 4. 进入:
b6qa+l-W/Q2^P(^    个人中心 → 个人资料 → 头像'~C+[.XsJ e]#N
   即可使用 HTML5 上传
Xj!j4e.w4fq+r
"jq#o@ u5i 【说明】
s ia5{H~+K - 会直接替换 Flash 头像入口T g-{eBK.W/o'K-q
- 无需安装、无需后台开启
ocD#K#| _%Y - 不影响 UCenter 原有逻辑nNrsB6dz
- 仅新增一个htnl5上传组件er:E^q V1@ t

f-rd3H fk2S*h(o ^?0HDnI"Gt
[/quote]

Admin 发表于 2026-5-6 10:22

打包放这留档,免得自己哪天老人痴呆忘记了

情系根子 发表于 2026-5-10 23:39

更新V1.1版本,增加图片裁剪功能

longe 发表于 2026-5-13 22:49

修改帖子标题80字符限制,改为120字符!

[code]dz7.2在发新帖的时候 ,新话题标题默认为80字字符,这就可能无法满足一些朋友的需求。我这里有一个办法可以解决,但是通过修改以后,标题字数最多为80个字。其中一个汉字算一个字,一个字母也算一个字,一个数字也算一个字。
o/{Z!m7g@9HmC^s
;b!JSU"RGG7i k1h 要修改的文件有:x,M})n)c-V6@5L A
1、include\post.func.php  中有一处  3W)Z&a*bH!o9Ll"@6W
if(strlen($subject) > 80) {
8Z%A B&l[d#V#KQ
_-Cv d\!E 2、include\js\post.js         中有两处   A%G@)w9f3I'PU
} else if(mb_strlen(theform.subject.value) > 80) {   
na NgoZ8K6e   和           )`T;@m_q8\ V@r h
showDialog('您的标题超过 80 个字符的限制。'); f(LL3pHl-a
QEg$Ka!j_R
3、include\js\viewthread.js 有两处
{ {z:t[s N } else if(mb_strlen(theform.subject.value) > 80) {
d'g*P_*cV#[ 和
/i*|2V+n-{+I C*`&w s = '您的标题超过 80 个字符的限制
&XA.a"W&n+G-@V
UZP2e*od&r(K 4、modcp\editpost.inc.php    中有一处O'pak.W WU.|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]

longe 发表于 2026-5-18 11:38

修改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]
{dsO R 改成直接显示链接地址:
!f#Gf.B+B@3b [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",
qNYp;~)M)n1z                 '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>',Y,|.`/IiPn1cTx.o
                $messagei}k9Lg$Z4Z U&B"kj
        );
yeIvrs)n"b }[/code]
%]2FJ6F%N*A
w'S:]+BF0f 顺便禁用 [swf]:
Pb,Iz |+f(X-S [code]if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
0k&B-If/y+j rb"S         $message = preg_replace("/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",s8J0rlu X-V
                "bbcodeurl('\\1', ' <img src=\"images/attachicons/flash.gif\" ... Flash: %s</a> ')",
`#D6OlqH"N7h2Q!M T                 $message);
%Y+_J8K8@"{[/S#Fd }[/code]%~ H9G%_4O[x
替换为链接:
B8B{A$W il&z [code]if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
IJ'x9d _X)L6m         $message = preg_replace(
8p0~+^j4[-P                 "/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",
/Mz(M Jk                 "'<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>'",t ` kIt)t
                $message,wtv*y6E}"l
        );
S'x%z9u5k]k }[/code] d6c oH\3{C:h+@

2A/ZG q{:D 原代码 parseaudio()(MP3音频等):[code]function parseaudio($url, $width = 400, $autostart = 0) {
P0I"j!V6hfid+A7k         ...
4CwS3J@:rt8A4Z{         <object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6">db'k??
        ...
M{jp^}su }[/code]✅ 换成 HTML5[code]function parseaudio($url, $width = 400, $autostart = 0) {
/R5m,`3?yt:[ s         $url = str_replace('\\"', '"', $url);4aB6d"AU7R
        return '<audio controls style="width:100%;max-width:'.$width.'px;border-radius:6px;" src="'.$url.'"></audio>';
l9l"@(pu'D0X | e }[/code]原FALSH多媒体代码:[code]function parsemedia($params, $url) {
_.B@c*dMM         ...d xD mAiWq U)]
        AC_FL_RunContent(...)
#xp ?RX }[/code]✅ 改成 HTML5 优先:[code]function parsemedia($params, $url) {
+D&h2pJ!P         $params = explode(',', $params);"m ]`*G8M
        $width  = isset($params[1]) ? min(intval($params[1]), 800) : 400;w j B G(~qOk.c
        $height = isset($params[2]) ? min(intval($params[2]), 600) : 300;'lch F6Zn
        $url = str_replace(array('<', '>'), '', str_replace('\\"', '"', $url));'U:Kc3`[B
.~:O|#S%T1Z0W
        $ext = strtolower(substr(strrchr($url, '.'), 1, 5));/Jv0^(G^2Lf2|
-l$G$n Q'SiJB)C
        if(in_array($ext, array('mp3','wav','ogg'))) {
Vsy%j`P                 return '<audio controls style="width:100%;max-width:'.$width.'px;">'.
`/d.w?0b?a                        '<source src="'.$url.'" type="audio/mpeg"></audio>';
9gn(R \0eK%Yt B         }
kfjlRb"rod         if(in_array($ext, array('mp4','webm'))) {"s x b7U2] i
                return '<video controls style="width:100%;max-width:'.$width.'px;">'.
V_HcHK                        '<source src="'.$url.'" type="video/mp4"></video>';9bP^,FG[jf
        }
!`Kpgs*q8lNh         // 其他一律当链接
w~V7K'|9^;Y/|"k         return '<a href="'.$url.'" target="_blank" rel="noopener noreferrer">'.$url.'</a>';(nG.kRAl8\Y9D;x)R
}[/code]

longe 发表于 2026-5-18 11:44

Discuz 7.2 所有视频 / 音频都在用 Flash(ActiveX / AC_FL_RunContent)作为媒介播放。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.