[PHP教程] DISCUZ技术手册

  [复制链接]
查看4765 | 回复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';
    4 G! C9 c. }+ g% }) z  ?; G/ W& T
  2. document.getElementById('idname').style.display='block';
    5 B- T- A$ z1 a) U! S
  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 c6 Y1 K5 T+ g8 L. E$ [
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );9 x& b+ U; j  M, X( L
  3. $start = ($curpage-1)*$perpage;6 Q( l0 n. s& h" n
  4. $askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));/ f8 f( ]3 p' ]6 \7 c/ Z* E& ]) Z
  5. //$asklist
    , m7 T& y" j+ f; v7 q% F0 y2 P* g
  6. $asklist = array();
    - i+ A2 y! L4 \: }6 T
  7. if ($askcount) {1 O1 E4 Z; a- v1 K! h
  8.         $query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");( I9 n2 I! c1 H0 y6 W0 E! H6 {: i
  9.         while ($value = DB::fetch($query)) {
    4 n& i( Z% R7 g6 ~6 Y
  10.                 $asklist[] = $value;
      }; L8 o4 n% i$ j9 F3 G
  11.         }1 c" R' X/ F8 n+ m. |4 _% n
  12. }2 c" `0 e; h# A* @
  13. $multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
复制代码
多数据表调用:
  1. $perpage = 40;
    % w5 l8 T: g/ n6 d! H
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
    2 u2 X4 q1 `- h" Z4 E. L
  3. $start = ($curpage-1)*$perpage;2 Z; `! C1 I" h. _: o( L6 U( g: ]
  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 != ''"));
    7 D- J$ D5 Q9 j$ Q/ L( H
  5. //$alist
    ' ?/ Z0 `% I% y
  6. $alist = array();
    * K+ C. X5 v; k) z" V
  7. if ($acount) {2 Y4 V+ P+ k$ m; Y1 `5 [
  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");7 w: }/ q4 b2 W7 [
  9.         while ($value = DB::fetch($query)) {
    . j! s5 m% n$ v3 ~( {( o" N
  10.                 $alist[] = $value;) H# h% X8 \1 ~! }3 |+ G; U
  11.         }
    6 j+ f) l; F4 x5 M: u
  12. }
    2 h. A7 ^) j3 z# r9 D9 B& W- x
  13. $multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
复制代码
前台数据显示:
  1. <!--{loop $alist $key $value}-->$ M! |' n+ ?7 t, ?' _2 i8 |
  2. <!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->
    - e4 G" S8 k9 b) I  x0 w0 w
  3. <img src="$tupianfm"><br>$value[authorid]
    - ~: H$ E; \: N# @8 [9 Z4 a* D
  4. <!--{/loop}-->
复制代码
取数据表中符合条件的第一条数据:
  1. $app=array();) g2 D% o% ~( }" Z  J* S
  2. $app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
复制代码
人性化时间戳:
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->
    ; A% J5 q9 M1 b4 \
  2. <!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
复制代码
截取字符字数:
  1. <!--{echo cutstr(这里填写参数,40)}-->
复制代码
写入数据库:
  1. if(submitcheck('tijiao')) {! z' z: z- G" Y
  2.         $setarr = array(1 r4 I0 `2 H% C. K  y2 E8 w
  3.                 'tid' => $_GET['topicid'],& J, e" z+ o8 t
  4.                 'name' => $_POST['name'],
    ( W  ?6 _" [# ]. w# y
  5.                 'position' => $_GET['position'],
    5 f4 E- Y( F" N' X* v- S
  6.                 'dateline' => $_G['timestamp'],
    + k) Y# ?# e# I7 Z8 T. U
  7.         );1 V+ l& |8 ?2 H+ M5 {7 U4 e1 D' \, m
  8.         DB::insert('abc', $setarr, 1);
    # W/ n! d. A0 M" o, D3 X
  9.         $query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");
    9 |. T$ X2 y0 r) F) g
  10.         $query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");7 p3 I" U0 {2 \
  11.         showmessage('成功的提示信息', "跳转地址");" A+ ]0 ?+ X, Z+ |
  12. }
复制代码
表单提交:
  1. <form action="do.php" method="post" autocomplete="off">
    9 ]! r) i2 |0 i, I& T8 a
  2.         <input type="hidden" value="{FORMHASH}" name="formhash" />
    4 U. h! v2 y4 q+ B9 V4 o! @: N/ G
  3.         最低奖金:<input name="qi" type="text" value="" /> & _1 _# O3 h' p/ h
  4.         最高奖金:<input name="end" type="text" value="" />  8 h+ ?6 J$ [& d" u; w  ^: _, E) q
  5.         <button value="true" name="tijiao" type="submit">提交设置</button>
    ( y$ p- C3 a! p* G% F
  6.         <input type="hidden" name="tijiao" value="true" />
    0 \+ ?) [! h( Q6 h# @2 Z
  7. </form>
复制代码
以下两个时间格式是对等关系:
  1. date("Ymd",time());  20150212
    5 y/ E9 n8 v: G% ^/ i6 M8 h4 u
  2. FROM_UNIXTIME(dateline, '%Y%m%d')
复制代码
前者用于PHP,后者用于数据库调用的字段的格式化" j9 C% A7 y' q- {% j% H
$ d+ T, g& y* m# L6 @" f% ]+ N
调用图片附件:
  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");}-->
    " C* N1 B+ E% s, v' q
  2. <!--{loop $slides $slide}-->, q/ W( a& e% E! E9 T
  3. $slide[name]
    5 r9 u! W/ ~  S
  4. <!--{/loop}-->
复制代码
ucenter无法登录:
/ Q% @( i# U& D* B5 ^打开uc_server/model/admin.php
3 s% ^8 L9 j3 a$ V' E) V6 i/ y找到第22行的
  1. $this->cookie_status = 0;
复制代码
改成:
  1. $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
复制代码
无刷新切换li标签并且同时加载框架页面:
  1. <script type="text/javascript"> , J0 n9 k7 i* z- q
  2. var jq = jQuery.noConflict();! t6 h4 I9 S; a& R* C+ k8 }
  3. jq(function(){
    9 B2 Y* f0 D* ?* s
  4. jq("#changemenu>li").mouseover(function(){ ! C9 q! {$ ]! G/ K
  5. jq("#changemenu>li").each(function(i){
    , i8 L9 N3 E& @5 H( ]/ A
  6. jq(this).removeClass("current"); 6 w( X5 y  ^7 l! W( _
  7. }); 5 p3 f1 g) T' {$ [  N+ C
  8. jq(this).addClass("current");
    7 ^3 _; a6 |% P! J! {7 W
  9. document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';
    0 [7 j$ n) b. s
  10. }).mouseout(function(){
    9 r0 I. ]% J/ W4 l+ v1 R
  11. jq(this).addClass("current"); % X) J+ v+ ^1 A0 q
  12. }); $ w/ N1 E; s! `: V
  13. });
    % @( O. q* t4 j7 T3 \
  14. </script>
    ) H* o7 G5 L# I/ m, @7 q& y
  15. <ul id=“changemenu”>
    5 d, _9 j" P+ r: H4 o4 ~
  16.    <li class=“current” dataid=“1”></li>" p" Z) p, m5 C# c' i& J- e. M
  17.    <li dataid=“2”></li>
    . ]7 u" p" _! P4 }
  18. </ul>
    * [+ r+ w: H. P2 A5 r* I& Y
  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";}';7 E  X2 N( ~, l! K0 j/ ]% j
  2. $newstr = str_replace("\","",$str);
    6 S- {  R* m+ m
  3. $data = unserialize($newstr);
    9 t: ?8 p" [/ P& Y: X6 z
  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* B+ D/ c& n. I' r
  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>% Y' }9 P4 v. L
  3. <div class="list">
    4 O# j1 o% M3 W* p# q1 ~8 C
  4.         <ul>
    ( J9 j+ t0 f* l  X0 O: r' E
  5.                     <li>dz班班学院</li>
    # u% w  d% u' i; l3 E
  6.         <li>dz班班学院</li>* T! |# k" h4 b5 E) \; ^, }
  7.         <li>dz班班学院</li>! r# G: t3 s; h5 F- w+ Z6 Z
  8.         <li>dz班班学院</li>
    . @0 p! {9 e5 D- {1 v( p5 f# u
  9.         <li>dz班班学院</li>
    ; l4 w" r1 a" G- U/ b3 N
  10.         <li>dz班班学院</li>
    + m: d( p# ^' v/ P& V: n
  11.     </ul>7 j' w; g6 z, H8 s* `
  12. </div>4 p9 O6 o: d# X6 g+ x4 @7 V3 h
  13. <script type="text/javascript">
    0 t; l; c# f) e. ]! u8 I
  14.     $('.list li:nth-child(3n)').css('marginRight', '0');
    3 E+ |: s  G! R' c" q7 @
  15. </script>
复制代码
常用词汇
  1. select 选择
    % a' B/ v6 @1 C8 @% y# ]) I. G
  2. count 总数
    $ L: j* Z4 r8 V* q2 v0 e
  3. table 表7 Y4 n" p. a2 @5 K  Y
  4. where 条件
    ( t- K- d" ~9 ~) i
  5. result 结果
    ; ~: P  ~$ K1 ^  `  y, x
  6. perpage 每页
      J" q: P6 v$ z% I/ k) [9 h) c
  7. curpage 当前页4 ^! ]9 e2 o/ V4 O
  8. update 更新" i5 I; T/ ^4 ?* H+ {' h
  9. delete 删除
    * h$ E8 }2 D$ [' n* t
  10. insert 写入
    ( X( R2 U/ l4 C' k$ P: W& T1 ^
  11. dateline 日期
    * I# i3 Y, w, B& N1 i8 ^, u/ X+ f
  12. time 时间
    2 n3 n* n4 j" f, e  @
  13. echo 输出   <?php   echo '123';   ?>7 z" F2 H7 p% [1 r- ]$ U* y, M  y
  14. multi 分页函数
    . ], g# Z4 E6 B: n
  15. if 如果
    & D- M( t& d: l! W, W
  16. else 否则" Y/ }' H. c/ T) o* ^" [
  17. elseif 5 Y7 s6 ~( c/ s, J6 I5 X8 @
  18. start 起始
    5 O# s- X; U8 j% C
  19. limit 限制  limit 10# y  [2 C' {$ n, p1 ~" A' {
  20. DESC 倒序
    ) o8 v8 ]/ D" q, B7 [* R9 c/ b( N
  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 d* m  C1 F! T$ g" H1、调用DIY框:& a7 j6 y! i  d4 C( d
  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}
复制代码
% l: s9 \+ r7 E% B8 L. T% C3 r, C" T3 d
文章封面图片
  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]
复制代码
; K; a& Y0 V: Q& D  Z1 H
替代对应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]
复制代码
  Z# u' q9 x6 P: X9 ^/ ]
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. A6 d9 X2 j) g9 S, W$ g
27、网站网址:
  1. $_G['setting']['siteurl']
复制代码
28、网站名称:
  1. $_G['setting']['bbname']
复制代码
29、<a href="$_G['setting']['siteurl']" target="_blank">$_G['setting']['sitename']</a>
打开当前网站的网址
/ U' X6 Z2 ^9 _3 ?" t# _, s30、主页路径:
  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
复制代码
1 M( J$ y8 u* H( ]" B
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:08:46 | 显示全部楼层
Discuz“密码错误次数过多,请15分钟后登陆”解决方法
! a6 K  ^. M1 g7 V" z( Nhttps://www.aurrel.com/forum.php ... 17102&fromuid=1
5 x; y  n: j& R* Z  U& g+ Z6 }2 z, }0 F! n' \; h, P% _
* c: O5 T2 {  Y5 h  k

; f" t" v% B/ r8 u( _
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:21 | 显示全部楼层
DISCUZ论坛做网站轮播图方法! ]4 f* n8 K5 F+ k9 F0 R& {: [. s
https://www.aurrel.com/forum.php ... 17100&fromuid=12 o, p! M( `6 `
9 b% Y6 P. x3 a5 V
1 W' e8 F6 E, C
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:37 | 显示全部楼层
DISCUZ模板制作实用代码集锦& h7 o; t8 X( r. a: O% T* Z  f+ h
https://www.aurrel.com/forum.php ... 17101&fromuid=1! Z: N# h! Y7 r$ A

" K# T: }/ ~% `  }/ m0 a6 q" }+ p+ n( G7 }! C* w; i1 W! ?
7 m+ a# S" V7 j* x1 }( ?
商乾电商学院,中国最大的电商资源交流基地!
北极孤星的泪 | 2021-3-11 10:09:53 | 显示全部楼层
Discuz“密码错误次数过多,请15分钟后登陆”解决方法
* G$ e, g4 a. `% N9 m: @https://www.aurrel.com/forum.php ... 17102&fromuid=1
; x, e% Q: {. z2 N0 r9 D7 n* ^& G9 t! P% w, i9 g" e
* ?) I9 l6 C0 {
) c$ n0 E  ]" r3 L+ P
商乾电商学院,中国最大的电商资源交流基地!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

1691

主题

413

回帖

32万

积分

管理员

积分
320662
学费
276199
QQ