[PHP教程] DISCUZ技术手册

  [复制链接]
查看4690 | 回复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 \0 N& R5 x5 Y" e; z2 Z
  2. document.getElementById('idname').style.display='block';, V6 `0 o$ {* _2 L) u
  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;& q! [2 j8 K/ e$ F3 M
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
    ! N$ z8 e( Z+ W2 X
  3. $start = ($curpage-1)*$perpage;
    1 i! z: y8 Z% d/ P& J# i
  4. $askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));
    % Y* w6 d0 _, ?3 m
  5. //$asklist3 v6 ], }* w. J+ u# h( A' W
  6. $asklist = array();8 g! O# V/ _! l) L  m
  7. if ($askcount) {
    ! M4 t) b- \- M8 {
  8.         $query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");
    0 }, c; k0 H+ p
  9.         while ($value = DB::fetch($query)) {
    # n1 U! z2 A$ U
  10.                 $asklist[] = $value;
    7 G* k- ]0 S4 O! a& h
  11.         }; C# I, p( c8 @! Z6 ?
  12. }
    ' c. t$ o! r# O8 }6 A2 X
  13. $multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
复制代码
多数据表调用:
  1. $perpage = 40;
    7 d9 M$ b0 R- i' a- b# `
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
    / J3 _. J8 J. j- q' f; [
  3. $start = ($curpage-1)*$perpage;
    7 t2 d+ h8 X( ]. q4 }$ I! k
  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 != ''"));1 X; V4 n( |) J& p) M9 A- U
  5. //$alist3 u9 c9 \* k& }7 r
  6. $alist = array();$ l) q; I1 j, g. S. s( L
  7. if ($acount) {
    7 J; F# }; ~1 M, I
  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");/ j( e" Q" ]6 J8 n9 v0 @
  9.         while ($value = DB::fetch($query)) {0 L$ }0 \2 s+ T* Z5 q! K
  10.                 $alist[] = $value;
    0 E) x# ?7 V* \5 h+ ?4 A* k; M- E
  11.         }
    2 B: o" n3 Q- C5 l
  12. }! g4 a; k, N! u5 Q$ @% U! F
  13. $multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
复制代码
前台数据显示:
  1. <!--{loop $alist $key $value}-->
    8 g! M- F$ `9 C9 Y% r/ ~( g2 X
  2. <!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->5 y- N! C* I) W9 Q
  3. <img src="$tupianfm"><br>$value[authorid]' _# m% P( d) Q* d: o7 b: U
  4. <!--{/loop}-->
复制代码
取数据表中符合条件的第一条数据:
  1. $app=array();
    & N- n! M4 G0 T. w
  2. $app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
复制代码
人性化时间戳:
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->
    " s2 {! ~9 L& q3 }# Q: ^3 p
  2. <!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
复制代码
截取字符字数:
  1. <!--{echo cutstr(这里填写参数,40)}-->
复制代码
写入数据库:
  1. if(submitcheck('tijiao')) {
    ; ^- w3 q; Y0 w& H( l
  2.         $setarr = array(- O, x8 y- o/ l4 j
  3.                 'tid' => $_GET['topicid'],0 t" ~9 V, ~' F; v" |. M
  4.                 'name' => $_POST['name'],
    . J, a7 K. _/ x+ C
  5.                 'position' => $_GET['position'],
    9 g& m% {  q. A, X4 R
  6.                 'dateline' => $_G['timestamp'],: g/ {: @* z4 }  G% F" [
  7.         );( i* ?' f# r1 C& r7 s- O
  8.         DB::insert('abc', $setarr, 1);
    2 p$ k3 ]. \2 K& n6 X- @
  9.         $query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");
    % r6 d. e7 x2 Q. b  |; D5 l3 K. C
  10.         $query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");
    - {# ~  j2 e4 b* Q; q
  11.         showmessage('成功的提示信息', "跳转地址");
    ' r! u/ Q/ J/ I' K6 B1 x
  12. }
复制代码
表单提交:
  1. <form action="do.php" method="post" autocomplete="off">
    % K& ]7 E) @1 z$ ^
  2.         <input type="hidden" value="{FORMHASH}" name="formhash" />
    ( |8 |9 g; V4 _* j. {0 {6 Z
  3.         最低奖金:<input name="qi" type="text" value="" /> 
    ; r7 y' S6 `, F" c( @
  4.         最高奖金:<input name="end" type="text" value="" />  + T! y  Y% w0 p. j; k+ x- A
  5.         <button value="true" name="tijiao" type="submit">提交设置</button>, ?# a0 Q/ n' n1 \+ ~* z
  6.         <input type="hidden" name="tijiao" value="true" />
    8 o" e% |1 p/ _  M
  7. </form>
复制代码
以下两个时间格式是对等关系:
  1. date("Ymd",time());  201502124 g( ^0 i9 R7 i  e% Y2 I5 I
  2. FROM_UNIXTIME(dateline, '%Y%m%d')
复制代码
前者用于PHP,后者用于数据库调用的字段的格式化2 j" r% o  S. T1 H/ a. _" r4 e
$ U7 W+ ?, ^& M' ^4 [6 T# x; g8 J- j
调用图片附件:
  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");}-->
    6 x! E% I# m: |& X' D- G
  2. <!--{loop $slides $slide}-->2 o/ z: x" p/ i  U  ]5 M
  3. $slide[name]
    1 f( }  W/ B  N( H7 S
  4. <!--{/loop}-->
复制代码
ucenter无法登录:$ V% R" u' w% L9 l
打开uc_server/model/admin.php
& W5 H% T% o: T1 J找到第22行的
  1. $this->cookie_status = 0;
复制代码
改成:
  1. $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
复制代码
无刷新切换li标签并且同时加载框架页面:
  1. <script type="text/javascript"> ; C/ B  _) M9 U% Q7 z! H
  2. var jq = jQuery.noConflict();/ H5 q  C" Z0 T, x0 }; H
  3. jq(function(){ " \) a% y" z6 v5 v) v9 _
  4. jq("#changemenu>li").mouseover(function(){
    ; D( g0 ^, X9 x7 J+ W( {
  5. jq("#changemenu>li").each(function(i){ ( k3 m# P; ^* ]0 {. H9 M
  6. jq(this).removeClass("current"); # A/ l6 u9 f# V6 K/ H1 F
  7. }); , _3 }% U5 H' C( d. u4 q0 S4 `4 x/ H
  8. jq(this).addClass("current"); ) E8 w0 T* z' N1 X3 B3 a5 l
  9. document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';
    6 M9 c( u) B& d: ]( i* `5 @  I. N% ?. Q
  10. }).mouseout(function(){ 3 i3 h) `" M1 H
  11. jq(this).addClass("current");
    - G2 _3 m9 B" F+ ~% {
  12. }); & \: }% ?8 @' v* C/ M7 z
  13. });
    6 H! T' {/ V# g% g
  14. </script>" C7 R- v7 w: D+ e3 t- v9 l# p
  15. <ul id=“changemenu”>( D7 a& R' H4 g- E
  16.    <li class=“current” dataid=“1”></li>
    ' y6 }$ V. s0 N! @5 W
  17.    <li dataid=“2”></li>
    0 z" n( P' Y" W# D9 b
  18. </ul>
    2 ?* Y( U" Z# _" \7 d* `3 {
  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";}';
    % F, Y0 X8 ^, o5 l; Q
  2. $newstr = str_replace("\","",$str);
      X9 n! e" B9 H3 C/ j9 Z
  3. $data = unserialize($newstr);
    6 w7 }3 k  \+ |' q! R0 D- C/ _
  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>
    . X4 c2 ^" Z) }8 w" E- e2 E6 Z
  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>" U) w6 d8 O+ b; L8 A7 k! y' p
  3. <div class="list">9 f# u6 T1 A! C  h! }% _4 h
  4.         <ul>
    : e, y* g+ ^7 f; `! A+ |  @
  5.                     <li>dz班班学院</li>" E. }3 G+ \: S5 X5 x2 B
  6.         <li>dz班班学院</li>
    ' ]3 X+ T6 h! o" i' o$ y* ~1 Y4 f
  7.         <li>dz班班学院</li>
    ; u( c$ E" I& w3 l# q6 f4 t
  8.         <li>dz班班学院</li>: F4 o; L; g' W
  9.         <li>dz班班学院</li>& n# Z, W1 l; m- V. B5 J  A( F, R7 u
  10.         <li>dz班班学院</li>
    6 u" e4 b6 E# \5 P
  11.     </ul>: V! J! e' J5 d; u# R
  12. </div>3 d( d+ u! q  a! K# Z, A, I
  13. <script type="text/javascript">2 D# a1 p  h& w: C" B6 I+ P& y7 o8 T
  14.     $('.list li:nth-child(3n)').css('marginRight', '0');( a6 a0 u) h% G3 j5 U9 \7 L
  15. </script>
复制代码
常用词汇
  1. select 选择
    : Y1 M( f# D6 A5 M+ m+ q/ U1 u
  2. count 总数: N4 ^1 r3 f& d# n4 @
  3. table 表
    . m! y' X/ D! k7 i7 _+ ~
  4. where 条件
    6 G3 y( ~: o6 c& `
  5. result 结果
    ; F+ J& Y0 L! r3 S
  6. perpage 每页( B3 V: X7 d6 I% o9 @/ i
  7. curpage 当前页- n' K" g: U1 T) h: n" q
  8. update 更新
    ; H$ Z1 d* Y' Y/ `7 D2 Q9 n- Z7 q& p
  9. delete 删除5 O+ t( b4 Z$ U
  10. insert 写入
    ; P# R# `; Z* I( Y; R+ N
  11. dateline 日期
    ; {5 J+ Y8 |6 v" O
  12. time 时间
    0 D; q2 s$ K& ~4 R
  13. echo 输出   <?php   echo '123';   ?>
    3 d+ o4 u4 o5 p5 _
  14. multi 分页函数
    & L& I$ ]/ ~( s( @3 B
  15. if 如果' ?# n( [$ f( o9 E& `* \9 W
  16. else 否则
    6 Y/ J* i0 g) v
  17. elseif
    3 Z$ b" ^( i/ D' m+ X
  18. start 起始3 W+ ~  f- i% S8 N
  19. limit 限制  limit 100 [6 F, D' o# M1 `
  20. DESC 倒序* S1 n9 H7 d2 X6 ]  |& V( e
  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模板调用标签汇总:
4 g: B. V0 e6 V) ~: q. H& D; [8 j1、调用DIY框:% p7 C0 @% u, p2 v! \
  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}
复制代码
2 e4 J2 a0 E5 I5 ~9 D0 i8 ~
文章封面图片
  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]
复制代码

0 j6 q! q, S4 J6 _7 b1 C3 r; r替代对应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]
复制代码
, A% W0 c2 T0 y- ?1 z# G
16、总浏览数
  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], |& y, }; F6 L  B% v9 G
27、网站网址:
  1. $_G['setting']['siteurl']
复制代码
28、网站名称:
  1. $_G['setting']['bbname']
复制代码
29、<a href="$_G['setting']['siteurl']" target="_blank">$_G['setting']['sitename']</a>
打开当前网站的网址2 u+ q, C  K' o8 j0 J" m/ c3 H0 i
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
复制代码
( C# Q% R4 u9 n+ Z  F; E/ D) U: X' ^
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:08:46 | 显示全部楼层
Discuz“密码错误次数过多,请15分钟后登陆”解决方法/ A4 \5 a) d# }+ D, X  _9 x
https://www.aurrel.com/forum.php ... 17102&fromuid=1
5 W# q! W: w! c* \- ?2 Z
3 C0 U; j/ \$ G: n3 `; {, Q. M/ \; j
: q: r; _$ P/ y
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:21 | 显示全部楼层
DISCUZ论坛做网站轮播图方法
* x, d2 {; d5 x! qhttps://www.aurrel.com/forum.php ... 17100&fromuid=1
6 E5 A, O. u) R- K* C' D% H- C
" j$ Y, H% u7 O8 j  w6 Q. X8 q+ T7 d* @6 ^' n& _
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:37 | 显示全部楼层
DISCUZ模板制作实用代码集锦; y0 D9 J" I( e1 P2 \# \& e9 r. L
https://www.aurrel.com/forum.php ... 17101&fromuid=1
& O& U& i" F/ ^4 |1 X0 t; v+ \8 F  Y( j7 d
: D( O  p( h- g
1 v) k/ ]' y* E0 Q
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:53 | 显示全部楼层
Discuz“密码错误次数过多,请15分钟后登陆”解决方法  L( e; Q  e! M0 r8 B5 {
https://www.aurrel.com/forum.php ... 17102&fromuid=1
. ~$ z: L' w$ R+ ^+ P1 p* U/ E0 q0 c) m5 P$ r4 I, \) B
( i, s" B9 c! C2 j. G" E: z3 P  L

: b8 S9 L, L% B- b% W
商乾电商学院,中国最大的电商资源交流基地!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

1691

主题

409

回帖

32万

积分

管理员

积分
320545
学费
276107
QQ