【情系根子】论坛's Archiver

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

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

[attach]2126[/attach]
$O.U*la `*w?h FLASH最终还是没能跟上时代的步伐,被各大浏览器抛弃,我们这老破旧论坛连头像也上传不了,UpA [2c0Bj
花了一个星期反编译了Discuz7.2的FLASH头像上传逻辑,
}e p}M%~ 外挂了一个HTML5的插件去替代原来的FLASH,终于恢复了头像的上传,
|l.xX|oQ 虽然界面上还有些粗糙,但起嘛能用了,-z)[Z.@VKY3H
如果各位发现头像上传有什么问题可以跟帖留言,
u {B!T/J @5tB1FB({ 我再优化一下/:018"e5vn.E.VP7c J*D
1iF$w&FMFl Eo
mV3S2BP5fk#I
[quote]
+~*S1Y;K$jX pJh DZ7.2 HTML5 头像插件 v1.0  2026-05-05 浪
~k9l-fS^&C\ ==============================
_j!M~:{'C7k {-BV tZ;x^
【适用环境】"lH#o:s5h+_
- Discuz! 7.2 UTF-8
,F;wo-Bk:V4wX - UCenter 1.5
3ihS4Z _C;hr#W|X - PHP 5.6
L-@$LW!Ze"x Tw t ngy V M\l:e
【安装方法】
$QFt}~ ]%t)M N 1. 将 upload 目录下的文件,按路径覆盖到你网站根目录
hP!kkS[
o0z} [r S 2. 特别注意:r;oo7[t+Z-n
   本修改仅限使用默认模板,路径为:/templates/default/memcp_profile.htm}5t*o owN&?}Z
   (如果你使用了其它模板,请自行替换文件标注部分代码。)
x9JsRY(n
_{7tQug+o9E` 3. 确保目录权限: G+tY;F'W
   chmod -R 755 uc_server/data/avatarg2B)u;g8R?S%J\

\LI T R 4. 进入:"f/@._5]{wS2dv
   个人中心 → 个人资料 → 头像
h f:LK.o'r2^H6cej6m    即可使用 HTML5 上传
0Ym@$f.A)oFX
+e:u6{i eQ 【说明】
dP_mm9Pn sj - 会直接替换 Flash 头像入口:u/F!ZH j
- 无需安装、无需后台开启
9D!d*sF5rrZ - 不影响 UCenter 原有逻辑
+m'Q(m1`;~6Qi]g - 仅新增一个htnl5上传组件q g~dF,@

}(r1J7`1W;`k
A:ugg.jJ [/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个字。其中一个汉字算一个字,一个字母也算一个字,一个数字也算一个字。.P%_ aX.V0DBNM:E
`9A6?{[:p'h
要修改的文件有:
5f3F)lj2V%y [J 1、include\post.func.php  中有一处  
{Nx0Z%o;|Fh;N if(strlen($subject) > 80) {9_"l5U)j0@

Kh H3JA%c 2、include\js\post.js         中有两处   GmW9ww6L'x8]pf&a~F
} else if(mb_strlen(theform.subject.value) > 80) {   
&n#kRH&e0RZ   和            ui:N*p'} [L
showDialog('您的标题超过 80 个字符的限制。');
8hq:]%z:g)nn/X
_#q tm&m$N 3、include\js\viewthread.js 有两处:pK+Ax-u+h Z[@ x
} else if(mb_strlen(theform.subject.value) > 80) {
U|i;h(O,FE
J+Fmmpv7P s = '您的标题超过 80 个字符的限制Lax8D4f

"lu&d%aD&| 4、modcp\editpost.inc.php    中有一处n,k9d2EV7G
if(strlen($subjectnew) > 80) {ql3u4DW:J&Pw"L

,wA9\$kU} P 5,数据库执行sql语句:
^P.G~&` ALTER TABLE `cdb_posts` CHANGE `subject` `subject` char(120) NOT NULL;,%N6WO"C ?u%P
lME,E+_5B t k4y
将以上的 80 改为 较大的数字(比如120)即可!然后更新缓存![/code]

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

修改discuzcode.func.php里面的多媒体相关代码为HTML5控件方案

禁用原BBcode [flash]pi9x'`'KQ
[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]qn5^l'm1N
改成直接显示链接地址:
~7B:k;B|[ r(E [code]if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {p9[;|7d5A&M;R
        $message = preg_replace(LaLz-AF@
                "/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", R;RI/` v8d [
                '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>',d R/@zTaN
                $message$B"L4O b*Di+\
        ); q.^d2n PI K$m
}[/code]
(JB:cL!t*nK
h%i^u;[a{#V 顺便禁用 [swf]:
1b&mW_TL:@Y]4s_0e? [code]if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {u}vf,y3T
        $message = preg_replace("/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",
'?2i+`n&p5L8s8~D                 "bbcodeurl('\\1', ' <img src=\"images/attachicons/flash.gif\" ... Flash: %s</a> ')",
G4sbpUx4VS yG                 $message);
p/s z'A]8o b }[/code]S)g1J7Tj1C(C5F"R
替换为链接:#V(yP dWfW
[code]if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) { H3Z~%VzjV/l
        $message = preg_replace(
*s&ajA7C @6Bx'C                 "/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",+YwT5S ?V,J/q
                "'<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>'",P G^p.b&d"wA;u
                $messagetAC9VtP&o5_*|W
        );F0Npu#JBgKZ#E
}[/code];x,}#qB9T
x:Y? Kn*E
原代码 parseaudio()(MP3音频等):[code]function parseaudio($url, $width = 400, $autostart = 0) {
:xB rqD[Rn1n         ...3kE_ ^k,N
        <object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6">
/C}M0Ceb%S:U@A         ...-hk;t7a&jJp]
}[/code]✅ 换成 HTML5[code]function parseaudio($url, $width = 400, $autostart = 0) {
:M.e?C(KI{5On         $url = str_replace('\\"', '"', $url);["e/wT(v(X
        return '<audio controls style="width:100%;max-width:'.$width.'px;border-radius:6px;" src="'.$url.'"></audio>';
-M2_0XT*W8dmKB }[/code]原FALSH多媒体代码:[code]function parsemedia($params, $url) {
@Yf1U$l&sN#`         ..."?Q-HC7j
        AC_FL_RunContent(...)E$`d,R` @Z0i
}[/code]✅ 改成 HTML5 优先:[code]function parsemedia($params, $url) {j S0Z2l%Q5M:B
        $params = explode(',', $params);
t~ [m ]*i`+s         $width  = isset($params[1]) ? min(intval($params[1]), 800) : 400;
9go/nm2v(DQw         $height = isset($params[2]) ? min(intval($params[2]), 600) : 300;b;JZt~6_c9h,x
        $url = str_replace(array('<', '>'), '', str_replace('\\"', '"', $url));
A-J P(tuc\r *rGP%o7mH
        $ext = strtolower(substr(strrchr($url, '.'), 1, 5));p2bfUu8xq"c

*Zbv.v#Ke8L         if(in_array($ext, array('mp3','wav','ogg'))) {4Z$~k;b1u z0J
                return '<audio controls style="width:100%;max-width:'.$width.'px;">'.
/ME'Tw bK2@l                        '<source src="'.$url.'" type="audio/mpeg"></audio>';L*NWo!_,m9a0c(F
        }
3|$Y2zh%n!KH&e         if(in_array($ext, array('mp4','webm'))) { vp3|"t1U.iE
                return '<video controls style="width:100%;max-width:'.$width.'px;">'.
P:\)nLog                        '<source src="'.$url.'" type="video/mp4"></video>';cGN,A#m)K.tm*P#A R
        }
_ QDp Jw PD@d         // 其他一律当链接
!K7L NG$Oq*q"q;fT         return '<a href="'.$url.'" target="_blank" rel="noopener noreferrer">'.$url.'</a>';
3Vx1qShM-Z }[/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.