[PHP教程] DISCUZ技术手册

  [复制链接]
查看4103 | 回复4 | 2021-1-29 10:46:07 | 显示全部楼层 |阅读模式

登录网站,浏览更多精彩内容

您需要 登录 才可以下载或查看,没有账号?加入我们

×
登录
  1. <a href="member.php?mod=logging&action=login" title="登录">登录</a>
复制代码
注册
  1. <a href="member.php?mod=register" title="立即注册">立即注册</a>
复制代码
用户组名称:
  1. $_G[group][grouptitle]
复制代码
用户组ID:
  1. $_G[group][groupid]
复制代码
总积分:
  1. $_G[member][credits]
复制代码
忘记密码:
  1. <a href="javascript:;" title="找回密码">找回密码</a>
复制代码
购买邀请码
  1. misc.php?mod=buyinvitecode
复制代码
JS跳转:
  1. onclick="window.location.href='home.php?mod=mobile&do=friend';"
复制代码
JS更换class的名称:
  1. document.getElementById('idname').className='a';
    ; R) B1 _+ D' s0 Q
  2. document.getElementById('idname').style.display='block';0 u6 x- @2 _; l5 F
  3. document.getElementById("idname").style.marginTop="30px";
复制代码
批量替换超链接:
  1. href="[^"]*"
复制代码
过滤DZ代码:
  1. preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
复制代码
调用单个数据:
  1. $a = DB::result(DB::query("SELECT qi FROM ".DB::table('abc')." WHERE id = '1'"));
复制代码
调用统计数据:
  1. $a = DB::result(DB::query("SELECT count(*) FROM ".DB::table('abc')." WHERE id = '1'"));
复制代码
单数据表调用:
  1. $perpage = 20;: H3 G9 l  Y0 l# l/ I/ [
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );. E2 H  R* b* U3 \$ Q$ e
  3. $start = ($curpage-1)*$perpage;* ?# W% c& d6 D* T
  4. $askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));
    % X5 n  a7 i- d$ F
  5. //$asklist
    $ p* K  k; S: i
  6. $asklist = array();( g0 m3 r. C% \$ m+ X
  7. if ($askcount) {
    : X3 b) X4 M3 b6 H$ l! j# ]- j
  8.         $query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");/ v% u. }& K: L  k$ [
  9.         while ($value = DB::fetch($query)) {' ?( O: D3 Z5 p1 s
  10.                 $asklist[] = $value;& ^+ p' W: J* C
  11.         }8 i% B4 i! b0 X% O; v! Y5 c
  12. }+ z4 g9 j" z0 ]
  13. $multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
复制代码
多数据表调用:
  1. $perpage = 40;6 L# j: c! o6 Q) L
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
    ( g3 k+ o( S8 Y- O5 l: N3 _
  3. $start = ($curpage-1)*$perpage;
    4 R. ]! M$ y. b/ q2 b
  4. $acount = DB::result(DB::query("SELECT count(*) FROM ".DB::table('forum_forum')." b LEFT JOIN ".DB::table('forum_forumfield')." bf ON bf.fid=b.fid WHERE b.type='sub' AND b.status = 3 AND bf.icon != ''"));
    - k. i$ b9 E, ~% w
  5. //$alist3 `8 c1 j0 E  e' P8 G# O& k
  6. $alist = array();
    1 N# g, H% h( W
  7. if ($acount) {0 X& l* b; ~) {
  8.         $query = DB::query("SELECT bf.*, b.* FROM ".DB::table('forum_forum')." b LEFT JOIN ".DB::table('forum_forumfield')." bf ON bf.fid=b.fid WHERE b.type='sub' AND b.status = 3 AND bf.icon != '' ORDER BY bf.shoplevel DESC, b.commoncredits DESC, bf.fid DESC LIMIT $start,$perpage");
    ) Y% T) L  z3 l7 R' L
  9.         while ($value = DB::fetch($query)) {3 u- o* }8 ]' G* m5 G% G% j) R
  10.                 $alist[] = $value;
    9 m9 `  u& n) y% G- C  E* G
  11.         }
    ) p# `$ U$ C  ?
  12. }) M4 l  ?  n7 T
  13. $multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
复制代码
前台数据显示:
  1. <!--{loop $alist $key $value}-->
    + h8 \. @3 g+ L, u1 Q9 w( O
  2. <!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->
    # y( a; u! u6 F
  3. <img src="$tupianfm"><br>$value[authorid]
    . |! {5 w- D* C( u
  4. <!--{/loop}-->
复制代码
取数据表中符合条件的第一条数据:
  1. $app=array();
    # S; }7 J& K  Z
  2. $app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
复制代码
人性化时间戳:
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->: P& Z: p6 Z+ O/ Z7 m; t9 N
  2. <!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
复制代码
截取字符字数:
  1. <!--{echo cutstr(这里填写参数,40)}-->
复制代码
写入数据库:
  1. if(submitcheck('tijiao')) {
    & i0 K% Y9 M" Z0 _9 i
  2.         $setarr = array(1 F) Z" X" p- [( B3 r
  3.                 'tid' => $_GET['topicid'],. R' A, [2 B; g1 t! v
  4.                 'name' => $_POST['name'],7 g) a" n  h0 Y. W
  5.                 'position' => $_GET['position'],
    / N) Y1 p# }& B5 L
  6.                 'dateline' => $_G['timestamp'],
    6 d; e! ^4 a, n
  7.         );
    , Q+ Q  g: T. U  O  g3 O- [
  8.         DB::insert('abc', $setarr, 1);  p2 ?) b- k+ a0 G4 _+ K) ]2 e
  9.         $query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");1 t8 F( D, b5 L* Y6 {" h- r
  10.         $query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");
    2 Q6 d5 S3 g0 e/ K8 n; t0 r
  11.         showmessage('成功的提示信息', "跳转地址");# n6 ^0 L" H: v+ q, R* g
  12. }
复制代码
表单提交:
  1. <form action="do.php" method="post" autocomplete="off">3 \3 o  F' k/ H9 }2 Z, l
  2.         <input type="hidden" value="{FORMHASH}" name="formhash" />! K! Z) y# v' @( S# E% a6 T! ]
  3.         最低奖金:<input name="qi" type="text" value="" /> 
    3 ?; l: j) ^- }1 i
  4.         最高奖金:<input name="end" type="text" value="" />  
    ) H: g. s  g3 K4 a+ e
  5.         <button value="true" name="tijiao" type="submit">提交设置</button>
    1 ?- H( F  a# c6 F6 _
  6.         <input type="hidden" name="tijiao" value="true" />, V* y- R/ ]& ]( N- ]! S
  7. </form>
复制代码
以下两个时间格式是对等关系:
  1. date("Ymd",time());  20150212$ A8 i2 l4 x, [% o+ x) f- [7 M
  2. FROM_UNIXTIME(dateline, '%Y%m%d')
复制代码
前者用于PHP,后者用于数据库调用的字段的格式化
" p4 M3 f2 i3 |- ^  J# c# o3 \1 H0 a
调用图片附件:
  1. <!--{eval $biaoid = substr($value[tid], -1); $cover = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_attachment_'.$biaoid.'')." WHERE tid = '$value[tid]'"));}-->
复制代码
数据库循环嵌套调用:
  1. <!--{eval $slides = DB::fetch_all("SELECT * FROM ".DB::table('a')." WHERE `uid`= $_G[uid] ORDER BY `id` DESC");}-->
    8 K" `: `1 X" F* d" v
  2. <!--{loop $slides $slide}-->
    9 M" A; L1 k) h4 I& s/ U
  3. $slide[name]8 q: Z. d! F+ G4 W  m' H
  4. <!--{/loop}-->
复制代码
ucenter无法登录:
1 D% S6 ~$ f. h3 T* r打开uc_server/model/admin.php- a( ^6 d- r+ j0 @  d$ n
找到第22行的
  1. $this->cookie_status = 0;
复制代码
改成:
  1. $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
复制代码
无刷新切换li标签并且同时加载框架页面:
  1. <script type="text/javascript">
    1 L; E0 a! l( g" h- h0 c$ v+ p. v
  2. var jq = jQuery.noConflict();+ d" D  Y. {' O# a0 E* W
  3. jq(function(){ - x" d! X. G6 H  P
  4. jq("#changemenu>li").mouseover(function(){ 5 Q; T1 K0 {/ i: k6 M: s
  5. jq("#changemenu>li").each(function(i){
    ( b  M5 F+ O* c7 Q) d# o0 d
  6. jq(this).removeClass("current"); . w( E, ?3 M( h% T) r
  7. });
    7 }  J2 m* M2 @
  8. jq(this).addClass("current"); 7 w" i* R* r- p
  9. document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';5 Y8 P, E6 J3 m; t
  10. }).mouseout(function(){ ( p8 C, c8 F- j9 ~0 F. ^
  11. jq(this).addClass("current"); 4 n7 e' N/ W  k# S6 n2 b) {8 n' l9 R
  12. });
    ; S/ B/ W& c1 J) S  M' G# F
  13. });6 v' \( M% u% N! l; w
  14. </script>& c2 h. E) E7 h1 q  B6 V
  15. <ul id=“changemenu”>7 S1 f8 K/ s: c
  16.    <li class=“current” dataid=“1”></li>8 J* E; E3 I  o% i8 s
  17.    <li dataid=“2”></li>
    & t" g8 j+ Y1 T0 R- P) W  |6 D7 s
  18. </ul>  z" b7 b  c7 c! U( t3 y& C
  19. <div id=“changenr”></div>
复制代码
快速发帖:
  1. <a href="forum.php?mod=misc&action=nav">发布新话题</a>
复制代码
DISCUZ JSON数据解析获取:
  1. $str = 'a:2:{s:8:"sitename";s:8:"商乾学院";s:3:"pic";s:12:"banbanso.jpg";}';
    1 }( g" g% j1 `4 n. Q  z
  2. $newstr = str_replace("\","",$str);- @6 l! u2 R- l7 j0 Y2 R! J+ }4 Q
  3. $data = unserialize($newstr);3 ]: i3 u( @* [+ W0 P2 M9 W6 M2 r( r
  4. echo $data[sitename];//输出结果为商乾学院
复制代码
DISCUZ云平台站点同步提示DNS错误解决方法:打开source\plugin\manyou\Service\Client\Restful.php,找到代码:
  1. $result = $this->_fsockopen($url, 0, $data, '', false, $ip, 5);
复制代码
修改为:
  1. $result = $this->_fsockopen($url, 0, $data, '', false, $ip, 30);
复制代码
LI标签列表自适应宽度JS实现代码(去除每行最后一个li标签的右边距):
  1. <script type="text/javascript" src="https://www.banban.so/new/bang/uploads/146383669567393.js"></script>8 w2 M; ~: a7 R) a* [& N
  2. <style>ul,li{margin:0; padding:0; list-style:none;}.list{width:100%; margin:0 auto;}.list li{width:32%; float:left; margin-right:2%; background:#0092B9; text-align:center; color:#fff; height:300px; line-height:300px; margin-bottom:10px;}</style>( ^8 }3 y$ M& ~4 L
  3. <div class="list">
    ' q/ m# H/ {4 f$ i
  4.         <ul>  S3 Y5 Y( ?7 |: z8 N
  5.                     <li>dz班班学院</li>
    # Z4 H% B6 r+ x
  6.         <li>dz班班学院</li>
    1 f5 Y% {5 k7 o$ r; p# ^
  7.         <li>dz班班学院</li>, @7 C6 |; Z4 }# J- f
  8.         <li>dz班班学院</li>* f! ^( V# P+ F1 f, h
  9.         <li>dz班班学院</li>9 \9 X5 Q3 b; L& D6 Z/ s
  10.         <li>dz班班学院</li>1 b( ~# Q9 n! i, T6 G! E( d
  11.     </ul>+ \9 I. W6 b' z& R. R" o
  12. </div>
    ! M7 [1 ~: p# n& Z: _/ |
  13. <script type="text/javascript">
    ( g/ s1 v8 d) {
  14.     $('.list li:nth-child(3n)').css('marginRight', '0');
    1 m& O1 e. L  G' U) X
  15. </script>
复制代码
常用词汇
  1. select 选择* F/ j0 J; P1 `& B: K0 g, E
  2. count 总数
    + o, b! C# E6 \+ B
  3. table 表
    3 X5 O- p- C1 Z2 x% V2 R
  4. where 条件; k& Y0 ], q+ ]8 V, N& o6 a8 N; t
  5. result 结果
    : G3 m8 s' ^, w$ `; @; I1 V
  6. perpage 每页
    4 r" {3 z9 P$ m$ E) J3 x% U' j5 E
  7. curpage 当前页
    9 q3 K8 O- d4 n" c- j7 t6 h, m
  8. update 更新; w- f# h, m3 _6 z% n' Q( T5 q
  9. delete 删除
    4 s+ e5 T6 V6 `+ W, |) {
  10. insert 写入
    3 ~" F# d0 m# V8 R
  11. dateline 日期% s+ L% S6 E: _
  12. time 时间
    1 s7 B: U7 `6 ?3 ?/ ]
  13. echo 输出   <?php   echo '123';   ?>
    + y& a5 @$ ?9 K  I7 F0 d  J
  14. multi 分页函数
    + \2 U! u6 R# K0 r( ]: \# m
  15. if 如果
    8 R9 s* P0 Y" p# L0 q  D! y
  16. else 否则
    " b- y  m2 B0 u5 g, s% K
  17. elseif ! I8 ?2 i$ e; l8 M, W2 Q
  18. start 起始! k: B- h! m# y' c
  19. limit 限制  limit 103 b2 k0 p) A- _) b: I
  20. DESC 倒序
    5 N- Q4 p8 {# [* j! o& j
  21. ASC 正序
复制代码
活动帖发布页面核心处理文件:
  1. source\class\extend\extend_thread_activity.php
复制代码
调用分类信息字段名称(仅适用帖子详情页):
  1. $_G['forum_option']['字段变量名']['title']
复制代码
调用分类信息字段的值(仅适用帖子详情页):
  1. $_G['forum_option']['字段变量名']['value']
复制代码
以下是DISCUZ判断当前页面是否为论坛首页代码:
  1. <!--{if $_G['basescript'] == 'forum' && CURMODULE == 'index'}-->……<!--{/if}-->
复制代码
以下是DISCUZ判断当前页面是否为门户首页代码:
  1. <!--{if $_G['basescript'] == 'portal' && CURMODULE == 'index'}-->……<!--{/if}-->
复制代码
就是区分下forum和portal,如要判断home首页代码:
  1. <!--{if $_G['basescript'] == 'home' && CURMODULE == 'index'}-->……<!--{/if}-->
复制代码
如要判断group首页代码:
  1. <!--{if $_G['basescript'] == 'group' && CURMODULE == 'index'}-->……<!--{/if}-->
复制代码
Disucuz模板调用标签汇总(DIV)
以下是Disucuz模板调用标签汇总:
2 W+ ^, K% _. ?; P5 \1、调用DIY框:* G  t8 m; I- k+ J6 F
  1. <!--[diy=diy1]--><div id="diy1" class="area"></div><!--[/diy]-->
复制代码
2、循环
  1. [loop] [/loop]
复制代码
数据ID
  1. {id}
复制代码
作者UID
  1. {uid}
复制代码
作者名
  1. {username}
复制代码
用户头像
  1. {avatar}
复制代码
用户头像(中)
  1. {avatar_middle}
复制代码
用户头像(大)
  1. {avatar_big}
复制代码
文章链接
  1. {url}
复制代码
文章标题
  1. {title}
复制代码
& z, |) }5 H! Z; C$ N6 I
文章封面图片
  1. {pic}
复制代码
文章简介
  1. {summary}
复制代码
发布时间
  1. {dateline}
复制代码
栏目链接
  1. {caturl}
复制代码
栏目名称
  1. {catname}
复制代码
文章数
  1. {articles}
复制代码
查看浏览数
  1. {view}
复制代码
评论数
  1. {commentnum}
复制代码
更多链接
  1. {moreurl}
复制代码
当前数据顺序
  1. {currentorder}
复制代码
当前数据是否在奇数行
  1. {parity}
复制代码
默认循环显示内容
  1. [loop]...[/loop]
复制代码

) ^. P8 b" s) o2 m# C) r. z替代对应loop中指定数据内容,
  1. [order=odd]
复制代码
为奇数行,
  1. [order=even]
复制代码
为偶数行
  1. [order=N]...[/order]
复制代码
特殊指定数据显示内容
  1. [index=N]...[/index]
复制代码
可设置打开方式的链接
  1. <a href="{url}"{target}>{title}</a>
复制代码
可设置缩略图大小的图片
  1. <img src="{pic}" width="{picwidth}" height="{picheight}" />
复制代码
3、帖子图标
  1. {icon}
复制代码
4、版块 URL
  1. {forumurl}
复制代码
5、版块名称
  1. {forumname}
复制代码
6、主题分类名称
  1. {typename}
复制代码
7、主题分类图标
  1. {typeicon}
复制代码
8、主题分类 URL
  1. {typeurl}
复制代码
9、分类信息名称
  1. {sortname}
复制代码
10、分类信息 URL
  1. {sorturl}
复制代码
11、总发帖数
  1. {posts}
复制代码
12、今日发帖数
  1. {todayposts}
复制代码
13、特别后回复时间
  1. {lastpost}
复制代码
14、发帖时间
  1. {dateline}
复制代码
15、回复数
  1. $_G[forum_thread][replies]
复制代码

9 N2 D# y+ q, |: a' p( K16、总浏览数
  1. $_G[forum_thread][views]
复制代码
17、热度值
  1. {heats}
复制代码
18、力荐数
  1. {recommends}
复制代码
19、更多链接
  1. {moreurl}
复制代码
20、当前数据顺序
  1. {currentorder}
复制代码
21、默认循环显示内容
  1. [loop]...[/loop]
复制代码
22、特殊指定数据显示内容
  1. [index=N]...[/index]
复制代码
23、可设置打开方式的链接
  1. <a href="{url}"{target}>{title}</a>
复制代码
24、可设置缩略图大小的图片
  1. <img src="{pic}" width="{picwidth}" height="{picheight}" />
复制代码
25、当前数据是否在奇数行
  1. {parity}
复制代码
替代对应loop中指定数据内容,
  1. [order=odd]
复制代码
为奇数行,
  1. [order=even]
复制代码
为偶数行
  1. [order=N]...[/order]
复制代码
26、[index=1][/index]' v; G. c7 s: l) }6 F
27、网站网址:
  1. $_G['setting']['siteurl']
复制代码
28、网站名称:
  1. $_G['setting']['bbname']
复制代码
29、<a href="$_G['setting']['siteurl']" target="_blank">$_G['setting']['sitename']</a>
打开当前网站的网址
# D3 e( T+ w" ^. `30、主页路径:
  1. {$_G['siteurl']} 如{$_G['siteurl']}forum.php?mobile=yes
复制代码
31、默认图片存放的路径:
  1. {IMGDIR}
复制代码
32、调用网站后台备案信息:
  1. $_G['setting']['icp']
复制代码
33、Dz当用当前时间;
  1. {lang time_now}
复制代码
34、调用当前用户名:
  1. {$_G[member][username]}
复制代码
35、用户头像:
  1. <!--{avatar($_G[uid],small)}-->
复制代码
36、调用后台中的底部导航菜单:
  1. [code]$nav
复制代码

; a2 Q2 A: r* D" |) q2 x- V
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:08:46 | 显示全部楼层
Discuz“密码错误次数过多,请15分钟后登陆”解决方法. N; v3 r3 Z2 {
https://www.aurrel.com/forum.php ... 17102&fromuid=1
# y& K* ?. n  n" H# ^
. M$ B) s2 A4 j, j0 m
" N/ Q3 W3 l+ Q* D6 ^' f6 N* `0 F' I2 ~' ]0 n) p  J
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:21 | 显示全部楼层
DISCUZ论坛做网站轮播图方法
& J7 O4 l0 \% fhttps://www.aurrel.com/forum.php ... 17100&fromuid=1
- \; p" O1 u: E
" b; r; Q& M3 X- b, Z3 z9 c$ m& z7 V3 B$ ~
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:37 | 显示全部楼层
DISCUZ模板制作实用代码集锦
# |! ]- X! f3 Z& _- s; ]https://www.aurrel.com/forum.php ... 17101&fromuid=17 r/ x  E4 I3 T) W# ]

, q# Z% }2 v  |, J( q
6 x$ g* D. r3 H5 V6 P: [/ t0 W
+ W0 u% V8 G+ F/ r, d" }3 R: n
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:53 | 显示全部楼层
Discuz“密码错误次数过多,请15分钟后登陆”解决方法
) Y$ {9 |  T9 G$ |/ y% fhttps://www.aurrel.com/forum.php ... 17102&fromuid=1
7 o" d( W5 `4 d# w. V  F
; a- u3 {* c. ~4 r9 u& G6 o$ z* B5 s. M& m% V) J) \

6 z! |# [" U+ c% i) U  |
商乾电商学院,中国最大的电商资源交流基地!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

1674

主题

398

回帖

31万

积分

管理员

积分
319678
学费
275394
QQ