【情系根子】论坛's Archiver

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

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

[attach]2126[/attach]
#Ti e!q(a8v/CH FLASH最终还是没能跟上时代的步伐,被各大浏览器抛弃,我们这老破旧论坛连头像也上传不了,lgo {N5i0v
花了一个星期反编译了Discuz7.2的FLASH头像上传逻辑,
(N+e+A-Dy| 外挂了一个HTML5的插件去替代原来的FLASH,终于恢复了头像的上传,
6o a` |P3b$x:F 虽然界面上还有些粗糙,但起嘛能用了,
d,k)B9q*M^*UH 如果各位发现头像上传有什么问题可以跟帖留言,
u Z t:Vi9fq 我再优化一下/:018
)G7vk/G!?
y1UNcjmC
$b'TIT-k^#Jw9~ [quote] kNJ"V^iI9UA
DZ7.2 HTML5 头像插件 v1.0  2026-05-05 浪
qK9l#h([n.A$Ap*Pr ==============================
uv)~Mn$J 'J%nk%[&P:{I v
【适用环境】;Lk4E#G {G8{5z
- Discuz! 7.2 UTF-8
B$S&u$pd q(Q%?m@O - UCenter 1.5Su_H ? ^Z7z
- PHP 5.6
#A3So4h_pf
0D$jBi&a r/|%~8b5v 【安装方法】
rOV;` LC J"?*_ 1. 将 upload 目录下的文件,按路径覆盖到你网站根目录JW5Iu7tL(Ke3r

3L)rO6r{%Ba 2. 特别注意:C[B4m"k$sA
   本修改仅限使用默认模板,路径为:/templates/default/memcp_profile.htmvt_[)N!n%O
   (如果你使用了其它模板,请自行替换文件标注部分代码。) Id!Mq5J K

6EA1J9P@-jS"l 3. 确保目录权限:.I7_;a})}}
   chmod -R 755 uc_server/data/avatar8_B!B:^[)S
'[8XW] o%` zZ`!^X
4. 进入:wV6@*Y'UU
   个人中心 → 个人资料 → 头像
!]TUL(g!o$HcY    即可使用 HTML5 上传 S)V+M_1wO

:o)^Fd9zl"]8F 【说明】
;fJ%kn1m - 会直接替换 Flash 头像入口
Or;X'u[@2|'^? - 无需安装、无需后台开启
G Q*_4j]|Ml.e - 不影响 UCenter 原有逻辑b$KS3As AC:v(E
- 仅新增一个htnl5上传组件
2B,Q\8G9r2y +v'H ?,N p
ij-p@ t%l
[/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个字。其中一个汉字算一个字,一个字母也算一个字,一个数字也算一个字。
f*Ef!p a(tK;j v,o[0OLY'f
要修改的文件有:
@.J4z-F Pz7} 1、include\post.func.php  中有一处  "m1h I3{}Du
if(strlen($subject) > 80) {
'p%Q+r/i#n&VT%z!j
XI y~3vkn 2、include\js\post.js         中有两处   
5bp]w%}` s;q1QGm } else if(mb_strlen(theform.subject.value) > 80) {   
Gy Zx$u2RFTjVn   和           -i_8W`7q2dy
showDialog('您的标题超过 80 个字符的限制。'); X0cU1K#^[/yO
/_'ig0@c lE B
3、include\js\viewthread.js 有两处
_,uGntn\!WR } else if(mb_strlen(theform.subject.value) > 80) {
h-c\!I-h"[0uYh'O
7Wn^ py ?L*h s = '您的标题超过 80 个字符的限制
CqI/d l$~"N P9o6h l;[x0AW,Z
4、modcp\editpost.inc.php    中有一处FO7~]g{
if(strlen($subjectnew) > 80) {
[8F#D Q$L7x
}?'q(L(Q!r}MR)zx 5,数据库执行sql语句:
,HFW!uL*oG ALTER TABLE `cdb_posts` CHANGE `subject` `subject` char(120) NOT NULL;,aO.]*\*m5l7X
CCvy"fM8xS
将以上的 80 改为 较大的数字(比如120)即可!然后更新缓存![/code]

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

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

禁用原BBcode [flash]-g.bSx$g ?z
[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]j.H%Q-L(DAo3Y
改成直接显示链接地址:
6PY s[(K]"NHP [code]if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {
u7sh;?w)HL(F         $message = preg_replace(
X|@(]p[V@                 "/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is",
;} t Li}b]&i                 '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>',
+U6t2d S0C9T)}                 $message'^jj#TG \ pS;l.m
        );r"W[6i.F(r;J
}[/code],OuCHzy/D#@

9o,N:mPf2K%DN 顺便禁用 [swf]:
y6SK7n2_)te] k$mK [code]if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
2D8\"B*pH         $message = preg_replace("/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",M S%C~%n ]oY^
                "bbcodeurl('\\1', ' <img src=\"images/attachicons/flash.gif\" ... Flash: %s</a> ')",#M]Ch+Av7a
                $message);
h+h-QmE {N }[/code]
zg4Fd0E2_Q0Tr1g 替换为链接: w-R(QxA
[code]if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
`)J G,h-G)u0tr         $message = preg_replace(
u'a9b N_Q%n&d                 "/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies", S(F+tp3a#Q(zX7ji
                "'<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>'",O4k5T;eqf_?1A
                $messagey+K~ _tX
        ); `1V2NShs#e~
}[/code]
;fd G A(@:Y
_$_qi'DL'Ci7d.E 原代码 parseaudio()(MP3音频等):[code]function parseaudio($url, $width = 400, $autostart = 0) {q S? ]i&f'Z"R
        ...(lLQ5N4q7^0G4Q
        <object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6">k)V TR^B,rx;i @c
        ...
c8tlk%Zg0T PLL }[/code]✅ 换成 HTML5[code]function parseaudio($url, $width = 400, $autostart = 0) {
9v NR2M2S l\         $url = str_replace('\\"', '"', $url);^.jL:u,` b:YJ[
        return '<audio controls style="width:100%;max-width:'.$width.'px;border-radius:6px;" src="'.$url.'"></audio>';|fFh8ED#E
}[/code]原FALSH多媒体代码:[code]function parsemedia($params, $url) {
D$j#S)X6i-jT-@         ...3u?FJ Tq{
        AC_FL_RunContent(...)],|'[;L(AB!`@
}[/code]✅ 改成 HTML5 优先:[code]function parsemedia($params, $url) {
j1g L7N N*h H-C         $params = explode(',', $params);
.utCIk{e)~9n$H         $width  = isset($params[1]) ? min(intval($params[1]), 800) : 400;f#fK1sN?$V I+Sx
        $height = isset($params[2]) ? min(intval($params[2]), 600) : 300;
G*~:m*{a voS         $url = str_replace(array('<', '>'), '', str_replace('\\"', '"', $url));B/X4av9j.q

'NAx oJ6H4|         $ext = strtolower(substr(strrchr($url, '.'), 1, 5));
aFgtY
V+};R9R Zk;l:h         if(in_array($ext, array('mp3','wav','ogg'))) {#X-Y0_Y.t ]v
                return '<audio controls style="width:100%;max-width:'.$width.'px;">'.T*D.NY'J4V
                       '<source src="'.$url.'" type="audio/mpeg"></audio>';
6E`J:]t bDR         }
v L!Rd.W[         if(in_array($ext, array('mp4','webm'))) {
?p'i$O4Gwrf                 return '<video controls style="width:100%;max-width:'.$width.'px;">'. \i1h,Q5q.o$x|
                       '<source src="'.$url.'" type="video/mp4"></video>';
Ws5VN uO(oK-N         }5zPR5xly
        // 其他一律当链接
^"{k)`x6f S!b         return '<a href="'.$url.'" target="_blank" rel="noopener noreferrer">'.$url.'</a>';/kNg}-yyD B
}[/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.