[PHP教程] DISCUZ技术手册

  [复制链接]
查看4515 | 回复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';
    0 N2 p5 V( f8 Y( T! c! L( t% P
  2. document.getElementById('idname').style.display='block';3 d( Q5 \$ n, F) G3 q" K
  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;9 [7 }0 q! M" c
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );# |; U2 K+ c, G0 q0 {
  3. $start = ($curpage-1)*$perpage;
    ) B  u$ P& \6 M. m5 X( U' \
  4. $askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));5 F. T0 i9 p2 n- \- b6 ~8 ]5 j
  5. //$asklist
    $ T! ^9 S8 t& z; J0 m1 |1 k( e
  6. $asklist = array();
    ' E. J4 N% C  l- k8 z
  7. if ($askcount) {2 s0 r5 b2 q0 \: o# i
  8.         $query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");
    & {$ k3 N9 j2 ]- p9 ], i9 L5 q$ ^
  9.         while ($value = DB::fetch($query)) {
    ' }1 _: e( a2 C( ]% f# ?
  10.                 $asklist[] = $value;
    9 X: B8 i1 z6 A: Z* [, |
  11.         }: j/ p/ g) C+ R0 H9 }% X
  12. }
    : N' L! R- V8 G: A' z* ^
  13. $multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
复制代码
多数据表调用:
  1. $perpage = 40;
    + o7 l0 E$ d4 @3 W& b
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );8 G3 U2 ?+ x" |4 B+ G- b
  3. $start = ($curpage-1)*$perpage;
    $ M0 M% k! B$ H& Q. S# e
  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 != ''"));& [; J" V# I" i8 G
  5. //$alist6 p0 p/ I; \. X; S* }7 i7 j# l6 T
  6. $alist = array();
    1 a. G4 U3 Z. p/ K5 N" J. R9 H' R
  7. if ($acount) {8 n* K" e3 q3 t( a& n! q
  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");
    $ N5 }' g# _, o; C
  9.         while ($value = DB::fetch($query)) {2 S! b; S; t! s6 |1 ?# m# I
  10.                 $alist[] = $value;
    0 s& }9 _- S: d# s7 W' f
  11.         }
    . V- w+ f: T4 A4 o; \
  12. }
    * J" u. T* ?7 v
  13. $multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
复制代码
前台数据显示:
  1. <!--{loop $alist $key $value}-->3 |, [* _( X3 e! I" A9 @
  2. <!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->
      _; x7 H/ L% C: j/ U4 A
  3. <img src="$tupianfm"><br>$value[authorid]' ~/ t+ u$ y7 ]" A
  4. <!--{/loop}-->
复制代码
取数据表中符合条件的第一条数据:
  1. $app=array();
    ) F5 j( p2 F& W! j& ^/ H' b5 l
  2. $app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
复制代码
人性化时间戳:
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->) t: [5 ~3 V% g  W0 }$ T
  2. <!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
复制代码
截取字符字数:
  1. <!--{echo cutstr(这里填写参数,40)}-->
复制代码
写入数据库:
  1. if(submitcheck('tijiao')) {
    - D1 v1 V- y( E  h8 \
  2.         $setarr = array(" u  m! ?0 j' }+ ?' g& O$ e
  3.                 'tid' => $_GET['topicid'],3 h3 i5 L, M3 m! r
  4.                 'name' => $_POST['name'],
    + F: x8 w- w' W3 n6 L
  5.                 'position' => $_GET['position'],
    4 }) V- l' ~5 S9 u9 W3 l0 X
  6.                 'dateline' => $_G['timestamp'],
    " J( X2 R6 K2 U" G& u% B
  7.         );
    # s- q3 m: c3 M% A( B- K' B8 Z/ c
  8.         DB::insert('abc', $setarr, 1);5 U7 E. C; y3 g- _
  9.         $query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");
    0 M+ M& k7 ]3 |  B8 S
  10.         $query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");$ z& A* L% s8 Y, |+ B4 h2 M
  11.         showmessage('成功的提示信息', "跳转地址");
    - K8 u9 W$ t: |" }9 ?6 e# C4 A% q( b
  12. }
复制代码
表单提交:
  1. <form action="do.php" method="post" autocomplete="off">
    / h  C: C  D+ W1 J) [+ r4 m% O4 i
  2.         <input type="hidden" value="{FORMHASH}" name="formhash" />5 T7 ~7 ]; X) P
  3.         最低奖金:<input name="qi" type="text" value="" /> 
    ; j  K, G/ m$ ?/ s6 J
  4.         最高奖金:<input name="end" type="text" value="" />  
    . a' Y- o/ |7 F$ n5 S+ y" q
  5.         <button value="true" name="tijiao" type="submit">提交设置</button>8 |) ^* |5 C+ b$ t5 }( E
  6.         <input type="hidden" name="tijiao" value="true" />
    . b# F: L4 V9 G: A% R, y6 l
  7. </form>
复制代码
以下两个时间格式是对等关系:
  1. date("Ymd",time());  20150212) K: E3 y6 m1 P- u; K# B( c1 u
  2. FROM_UNIXTIME(dateline, '%Y%m%d')
复制代码
前者用于PHP,后者用于数据库调用的字段的格式化
* r) I9 z3 @# T4 C1 P: d; F/ B/ [: G4 S! [5 v, b# D
调用图片附件:
  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");}-->. F/ N4 A9 q& N. R  q1 ~7 {; T
  2. <!--{loop $slides $slide}-->
    , {7 C: ]0 ]; z6 k8 Q9 c
  3. $slide[name]
      v% c8 L+ \9 Y& O2 U
  4. <!--{/loop}-->
复制代码
ucenter无法登录:3 G  q  n5 o' j5 O6 L
打开uc_server/model/admin.php
8 C9 V' F9 _1 Z0 G. R; ?  u6 p/ q- Q找到第22行的
  1. $this->cookie_status = 0;
复制代码
改成:
  1. $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
复制代码
无刷新切换li标签并且同时加载框架页面:
  1. <script type="text/javascript">
    : U+ f: m/ e* N3 s4 q, F# _
  2. var jq = jQuery.noConflict();8 R& K( V( r& o* _
  3. jq(function(){ + v. n3 \4 _  q7 A
  4. jq("#changemenu>li").mouseover(function(){
    , `+ ?5 D9 K/ ^/ {* k
  5. jq("#changemenu>li").each(function(i){
    ' W9 [3 W. Z, f! Z! \
  6. jq(this).removeClass("current"); ' L3 n3 B, h6 b+ i
  7. }); ( S3 o% Y9 p; R8 V+ F7 U3 i
  8. jq(this).addClass("current");
    # \! S7 U6 }. o2 L2 i
  9. document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';
    . Q9 y' l% U6 X& e! h. D. X7 u# s
  10. }).mouseout(function(){
    1 C+ u4 _8 v8 a8 I, I* f) z
  11. jq(this).addClass("current");
    + e6 _8 t7 W* _; @
  12. }); % D1 P$ n) A6 J/ {  L
  13. });. q$ w9 x, Z9 f) ]. }+ k* Q
  14. </script>
    ' [' w0 p7 b* `& J
  15. <ul id=“changemenu”>! K" J9 b7 Z' S1 ^
  16.    <li class=“current” dataid=“1”></li>
    1 C- @9 @) x  X, E* @+ N( U
  17.    <li dataid=“2”></li>7 G: a  y* \' z% N" Q4 I, z
  18. </ul>
    2 e7 g" q6 E3 g
  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";}';/ A3 ^; o6 T0 R+ {" J
  2. $newstr = str_replace("\","",$str);7 Z3 h6 ?" Y6 U; H( x, A  w
  3. $data = unserialize($newstr);
    ' Z7 @* w2 n9 X8 q; F
  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>& w* L$ \3 N5 C
  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>" O! ~' O, e- e0 @' J& S/ P( q2 N: G
  3. <div class="list">/ ^+ W; k. ]& d" ~
  4.         <ul>
    ; ^3 v3 q& Q; R
  5.                     <li>dz班班学院</li>$ F0 r; @( G/ J) [& n- D$ @" o4 Q
  6.         <li>dz班班学院</li>: d. `# F$ _8 A3 z( s' [5 I2 x* P% R
  7.         <li>dz班班学院</li>! u/ a- k' G- X+ u1 P: K) i0 ]  O
  8.         <li>dz班班学院</li>
    $ F; _. P* j# j- W9 I
  9.         <li>dz班班学院</li>1 G' U6 b& M# b. K
  10.         <li>dz班班学院</li>
    / [/ x* a8 G5 c+ Q  Z- ^$ L$ ?
  11.     </ul>- \, c: }2 f. d) r" E0 e
  12. </div>* k0 i% c0 e+ t! I8 J
  13. <script type="text/javascript">" L' V& ~# p' V" w" t# O
  14.     $('.list li:nth-child(3n)').css('marginRight', '0');
    9 q$ E1 f( K! X$ g
  15. </script>
复制代码
常用词汇
  1. select 选择
    * C6 Z; T; u$ a. d5 F! T, t
  2. count 总数7 k2 b& \; _+ q# W6 ]: h
  3. table 表
    $ d, j2 Y+ q. y; O% g' g
  4. where 条件1 S* |7 f& ~: F! I0 I
  5. result 结果
    ! f# A  g5 N7 Q& j
  6. perpage 每页
    ; k! a' |1 C/ \: Q! ]: C
  7. curpage 当前页& Q/ ~4 U) x6 g; P6 r
  8. update 更新2 v! J3 M6 Z' r' I
  9. delete 删除
    / T. I5 x! k% x$ k
  10. insert 写入
    # d2 A/ @7 M, e( y) R
  11. dateline 日期! {9 W7 i1 N( \  h& V
  12. time 时间
    # H3 B/ s+ |' W0 [% M; Y3 L: c, a" ~$ X2 F
  13. echo 输出   <?php   echo '123';   ?>
    " q& s5 f: e; X9 T$ l& Y3 ~
  14. multi 分页函数
    ; v4 j& L) ^) z4 i
  15. if 如果
    - ^" Z' Y3 T# k: g" \, t/ q- K8 g
  16. else 否则* B! u8 {& w8 i1 }
  17. elseif
    & R" S4 F4 q, R5 M: w0 k7 h/ X
  18. start 起始7 Z) j$ K# z! @- {8 p! W' S1 x, ?
  19. limit 限制  limit 101 T7 E( S* ]2 Q, n) Y; }2 y
  20. DESC 倒序
    0 O" r' N( R. L. Z# X
  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模板调用标签汇总:0 A: N7 ~1 r/ M
1、调用DIY框:
. E& z! I* |: d  ~- g  f4 X2 M
  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}
复制代码

! d/ P1 `% o6 A+ N, T文章封面图片
  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]
复制代码

: w1 f  H$ y4 k) D+ b/ ]替代对应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 j5 X' N+ M  }7 a16、总浏览数
  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]
' F" D4 c' ]* N0 H8 R$ T27、网站网址:
  1. $_G['setting']['siteurl']
复制代码
28、网站名称:
  1. $_G['setting']['bbname']
复制代码
29、<a href="$_G['setting']['siteurl']" target="_blank">$_G['setting']['sitename']</a>
打开当前网站的网址# \4 r6 ]4 u  R7 d, q3 t
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
复制代码

; Y, Q3 J* ^$ `- c1 @
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:08:46 | 显示全部楼层
Discuz“密码错误次数过多,请15分钟后登陆”解决方法
/ G8 W: J% _, R5 P! A2 Phttps://www.aurrel.com/forum.php ... 17102&fromuid=1( W4 M1 y4 l( n. z# C
! N+ \9 P# Y+ W4 P
0 e3 Y% S% [% K

# C0 J. {: B4 A5 D1 ~5 h' z3 U
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:21 | 显示全部楼层
DISCUZ论坛做网站轮播图方法# r. g# B+ T1 Y) U$ L0 R
https://www.aurrel.com/forum.php ... 17100&fromuid=1; u& @1 f/ K% m3 o2 O; a: a

6 q* y3 \: K. J8 t1 k
* U" ]1 J& c/ n
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:37 | 显示全部楼层
DISCUZ模板制作实用代码集锦
3 O7 Z% t- x  c% g3 U8 Zhttps://www.aurrel.com/forum.php ... 17101&fromuid=1+ i* C* x9 D: Y* H3 z0 ~

! I- [9 D( P( ~5 k# W, n( w- B, @) z6 t! \$ O% u& {# w

4 u" w, ]  e$ O9 M3 H* V0 Q
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:53 | 显示全部楼层
Discuz“密码错误次数过多,请15分钟后登陆”解决方法$ |/ g5 b2 G, @3 K
https://www.aurrel.com/forum.php ... 17102&fromuid=1
0 p% Z( q3 J$ b4 {/ B3 h& u
! D* W/ v0 r. {/ T- `' r
" l( i& ^3 h( K
1 d, B5 n! b% R; K
商乾电商学院,中国最大的电商资源交流基地!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

1689

主题

401

回帖

32万

积分

管理员

积分
320257
学费
275875
QQ