腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

Discuz二次开发必备技术手册(持续更新)

0
回复
1050
查看
[复制链接]

761

主题

775

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
32849
发表于 19-8-16 18:40:41 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
登录
  1. <a href="member.php?mod=logging&action=login" title="登录">登录</a>
复制代码
+ [  F9 M" ^0 B$ t& A) Y! W9 P
注册
  1. <a href="member.php?mod=register" title="立即注册">立即注册</a>
复制代码

' i- i3 j7 {" }忘记密码
  1. <a href="javascript:;" title="找回密码">找回密码</a>
复制代码

6 a5 F9 J: L1 R- c购买邀请码
  1. misc.php?mod=buyinvitecode
复制代码

& ^$ r4 P2 D) ]4 k4 h- ?% |JS跳转
  1. onclick="window.location.href='home.php?mod=mobile&do=friend';"
复制代码
! ^8 r+ R+ F) a2 Y7 x; w" p) K
JS更换class的名称
  1. document.getElementById('idname').className='a';$ E& H9 n' n9 M; h) D' X
  2. document.getElementById('idname').style.display='block';) K0 |  m% N* Q, {# j0 D" C
  3. document.getElementById("idname").style.marginTop="30px";
复制代码

% A+ L; u3 o  z2 e& r3 u批量替换超链接:
  1. href="[^"]*"
复制代码
0 S' y: a1 b" Q& q9 ]
过滤DZ代码:
  1. preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
复制代码

; {- H# i1 Y2 X8 R7 U7 \) ~调用单个数据
  1. $a = DB::result(DB::query("SELECT qi FROM ".DB::table('abc')." WHERE id = '1'"));
复制代码
) }( I+ H! H- q) x% j, `2 X0 n4 O
调用统计数据
  1. $a = DB::result(DB::query("SELECT count(*) FROM ".DB::table('abc')." WHERE id = '1'"));
    - E8 O9 E0 P2 [/ W0 K) K% n. W
复制代码
$ {  o7 i# U7 Y1 \
单数据表调用
  1. $perpage = 20;
    : S1 }* Y/ z! K0 |- d- ]6 @7 |
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
      F+ D* B2 o% w" I9 p9 X0 P7 p4 u# X" I
  3. $start = ($curpage-1)*$perpage;2 m' ?' c  e6 U
  4. $askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));. E: x- q1 K3 d
  5. //$asklist1 I8 h0 H3 y; ]+ d
  6. $asklist = array();
    0 Q+ s, N9 W( Q2 g, k. d
  7. if ($askcount) {# \* I3 u, b) H/ O+ y
  8. $query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");
    / ~9 N0 D  y' H8 ?3 ~; M/ J/ [  r
  9. while ($value = DB::fetch($query)) {# Z1 m1 O  B1 {' ^& f
  10. $asklist[] = $value;
    & \$ A! k6 G) S/ p8 U" R
  11. }
    7 T# i7 W# _: v; w5 Z: Y3 w. T
  12. }, v2 N+ U4 q' m1 a+ Z4 n+ K% n; \
  13. $multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
复制代码
7 y. O/ M. @+ l* F
多数据表调用

  1. 1 i0 F' h6 c" G; Z" z
  2. $perpage = 40;
    8 j$ Q# x7 s6 u( S9 H! f
  3. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
    ; l! Z2 r- Y0 ]3 d# F! _- i
  4. $start = ($curpage-1)*$perpage;
      Q% h$ x5 ]" G2 n* B% g; B4 k
  5. $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 != ''"));
    ' V6 R, j1 J" a/ c% `: c, \
  6. //$alist# s3 z8 |0 }, Q' {) ]
  7. $alist = array();8 c' k7 _6 z! }) j5 I1 {4 j$ E
  8. if ($acount) {& b, x4 C) L2 q9 `- A
  9. $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");: f2 O, V% x- m" I6 n2 |
  10. while ($value = DB::fetch($query)) {/ J  J( S# S3 G) J" S# ~. @
  11. $alist[] = $value;
    + c/ x2 a1 _( ^- ^. r  ]
  12. }; F- p! ?) J- w
  13. }
    8 P0 s7 [  A0 [8 o  |; n
  14. $multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
复制代码
9 u/ f7 j9 l' e' j  z
前台数据显示
  1. <!--{loop $alist $key $value}-->
    - r/ j' C' ?+ a, f
  2. <!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->3 }7 v' `% ~2 {1 E/ n
  3. <img src="$tupianfm"><br>$value[authorid]) N/ Y4 h6 v0 j8 N! q" d5 g- A
  4. <!--{/loop}-->
复制代码
1 }# w; x9 t# P  Z: X
取数据表中符合条件的第一条数据
  1. $app=array();, w" c0 G  _, L' D2 b/ Z
  2. $app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
复制代码

- R" W* ^& D: E! K% r8 J人性化时间戳
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->
    , b3 E" _  m" W. L) v
  2. <!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
    ) d+ f' B) c8 C" _! [
复制代码
5 |% y: e& Y* ~9 y- _2 w9 G
截取字符字数
  1. <!--{echo cutstr(这里填写参数,40)}-->
复制代码

% \# Q6 Y( A% D6 l7 o过滤DISCUZ代码
  1. preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
复制代码
7 m8 ]5 U  l( n. z+ |' u- ~# s
写入数据库
  1. if(submitcheck('tijiao')) {
    6 X' f: q) j* l) F  M! \3 i! z: J
  2. $setarr = array(
    4 a+ b% ]- s* x5 R# z" }. J
  3. 'tid' => $_GET['topicid'],
    1 u" U( {3 V& I
  4. 'name' => $_POST['name'],( l; _4 x7 g( D/ B
  5. 'position' => $_GET['position'],9 a/ a4 N* r+ U; J/ T# @
  6. 'dateline' => $_G['timestamp'],0 O8 L- J$ H2 a* B0 P# a
  7. );
    ' ?. ^% r) {0 `6 Q
  8. DB::insert('abc', $setarr, 1);
    * ~) o" z1 `0 Y4 Y" M: r
  9. $query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");
    . @0 f( c/ a9 q! Z0 K" S
  10. $query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");: J3 h* b3 c/ ?; ?4 h0 i
  11. showmessage('成功的提示信息', "跳转地址");' I- g+ e4 b  K
  12. }
复制代码

7 M- |. a. n3 h. @% T5 G) g表单提交:
  1. <form action="do.php" method="post" autocomplete="off">
      D! j% m, {- g* n* K: J/ \7 Q
  2. <input type="hidden" value="{FORMHASH}" name="formhash" />7 Q$ m: b, ]: f( K5 i6 G  z* @
  3. 最低奖金:<input name="qi" type="text" value="" /> : H* a! h! u6 W9 Q+ v/ T& F
  4. 最高奖金:<input name="end" type="text" value="" />  3 L' V2 j" I; U( s1 x- t" w
  5. <button value="true" name="tijiao" type="submit">提交设置</button># z  ?, X) t8 i3 M: d' l5 j$ P9 i6 G
  6. <input type="hidden" name="tijiao" value="true" />
    ) O0 o" o  X3 w& z) }6 S5 {
  7. </form>
复制代码

! Z; B1 b4 I) C" i6 X- R2 u以下两个时间格式是对等关系
  1. date("Ymd",time());20150212& Q& |6 p8 N. w- ~. k, l' R! _
  2. FROM_UNIXTIME(dateline, '%Y%m%d')
复制代码
' V0 w/ u$ N) R
前者用于PHP,后者用于数据库调用的字段的格式化3 a: P, y8 _, Z% l0 C( A3 }
! w6 J/ ?' ?. T5 }' [2 J& C& O
调用图片附件
  1. <!--{eval $biaoid = substr($value[tid], -1); $cover = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_attachment_'.$biaoid.'')." WHERE tid = '$value[tid]'"));}-->
复制代码
$ E( t! Q: V( B- E
数据库循环嵌套调用
  1. <!--{eval $slides = DB::fetch_all("SELECT * FROM ".DB::table('a')." WHERE `uid`= $_G[uid] ORDER BY `id` DESC");}-->( {! K/ ~3 k9 D: v. Q$ t3 _. y5 t
  2. <!--{loop $slides $slide}-->. t( X* ?; M6 l& v' U0 ]
  3. $slide[name]
    9 J1 Z  D3 D$ F9 q0 X
  4. <!--{/loop}-->/ e' v( c- h/ _1 D0 U
复制代码

1 d4 j4 F" e( l, z+ r" i# F7 z* j0 Zucenter无法登录:+ Y8 e! y8 H; @' \/ _
打开uc_server/model/admin.php
& @* _4 v; {; b找到第22行的
  1. $this->cookie_status = 0;
复制代码
改成
  1. $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
复制代码
7 G: B9 d5 z5 Y  |; @
无刷新切换li标签并且同时加载框架页面:
  1. <script type="text/javascript"> 2 h) P, A* M' k" X' \
  2. var jq = jQuery.noConflict();! Q6 R! ]/ u' a/ a: g) V
  3. jq(function(){
    / H( {' D3 z, z, A4 h6 f" y
  4. jq("#changemenu>li").mouseover(function(){ " `3 H8 G, {" V* D# b3 e
  5. jq("#changemenu>li").each(function(i){ 8 c" ~$ u9 p! b% O+ C; M: Z
  6. jq(this).removeClass("current"); + w% I7 B* e. L
  7. }); / g7 }( A1 G8 v. L, U) q# e
  8. jq(this).addClass("current"); / h5 e3 X6 R4 c" r8 z) y
  9. document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';4 z3 ^# ?9 }& E$ C" W! ?& W( j" {
  10. }).mouseout(function(){
    , E. N0 i3 Y% {
  11. jq(this).addClass("current");
    $ i, j% q, J* [
  12. });
    4 s, v' l5 D) n& b+ h+ a3 i6 m+ J; v
  13. });
    2 A- v' N$ U- [* M
  14. </script>
    1 K! x4 _# N" x
  15. <ul id="changemenu">' w7 B0 ]( l( `, Y
  16. <li class="current" dataid="1"></li>
      l+ B6 e  I- L, n  J9 r
  17. <li dataid="2"></li>5 {2 P# t/ j- O. x) x/ i7 m; C' U- T
  18. </ul># C' o6 `' B* ^) K
  19. <div id="changenr"></div>
复制代码
  ~4 x" O4 J$ M
快速发帖
  1. <a href="forum.php?mod=misc&action=nav">发布新话题</a>
复制代码
% x' j# |  c' n( l$ o
DISCUZ JSON数据解析获取
  1. $str = 'a:2:{s:8:"sitename";s:8:"球球发";s:3:"pic";s:12:"qiuqiufa.jpg";}';1 w* }8 g* V8 e; G
  2. $newstr = str_replace("","",$str);
    , q& @# Z3 ]) C
  3. $data = unserialize($newstr);
    2 T. E3 r, ~: e! l  t" U- {& z
  4. echo $data[sitename];//输出结果为球球发
复制代码

' s2 Y% X; o/ h( @& U9 {+ W; lDISCUZ云平台站点同步提示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);
复制代码

) b. d0 V0 ?+ {) ?0 v' Z0 K$ FLI标签列表自适应宽度JS实现代码(去除每行最后一个li标签的右边距):
  1. <script type="text/javascript" src="http://www.banban.so/new/bang/uploads/146383669567393.js"></script>% x8 B9 M1 W6 a2 u7 E. v, P5 _
  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>) Z+ z( G4 S9 s) Y% G0 ^) p; I
  3. <div class="list">9 m* _% A$ h1 ?
  4. <ul>
    2 a0 Q+ M4 D! Z  W  X
  5. <li>球球发</li>& ^1 v0 B! Y6 E9 X7 H! r
  6. <li>球球发</li>! c" w: S+ O) R( N, _
  7. <li>球球发</li>
    1 z- V3 e8 F( V- ]
  8. <li>球球发</li>* m' F$ B7 _) s9 ^
  9. <li>球球发</li>
    8 V# A  H. g; ?3 E
  10. <li>球球发</li>( s: V4 ^1 _# Z
  11. </ul># |* }, X  ^2 G" D# E
  12. </div>
    $ H( K' |4 y: F
  13. <script type="text/javascript">/ d- \4 v2 y" e/ A& E
  14. $('.list li:nth-child(3n)').css('marginRight', '0');1 o7 g2 X4 L1 |9 M  o( l
  15. </script>
复制代码
. i& A  |0 G# H6 j
常用词汇
  1. select 选择
    5 v8 X) R4 E# l% {' z; o, `1 V, [
  2. count 总数
    8 W% e9 Q2 s6 |+ X: k
  3. table 表
    ! U2 _, R" l% N8 P/ s, ~( i/ S# X
  4. where 条件
    ; T9 H& ]" ?  c% A2 q8 w' O
  5. result 结果4 d) j: F; x6 r! F) Z2 g3 a5 i
  6. perpage 每页7 c6 K8 ], E1 I" y- m
  7. curpage 当前页
    ) q3 Y0 d0 M. `
  8. update 更新' J& X6 X2 b0 X1 R
  9. delete 删除, O/ s& f/ A( F) H4 t. V
  10. insert 写入
    4 r% w$ ~! ?! R
  11. dateline 日期! Z2 J. E- R; F1 z4 }+ `
  12. time 时间
    * i" s2 J' H& Y! H& s. ~9 Y
  13. echo 输出 <?php echo '123'; ?>
    , a" G; m! t/ r" W5 ]' |1 n
  14. multi 分页函数) s/ \  A7 f! n4 Z3 s# y
  15. if 如果2 c3 ?4 M( S- G- l
  16. else 否则
    $ X% o& \$ K1 T: ]4 |9 O$ T
  17. elseif
    & ^7 M" S3 Y1 @3 ^7 b
  18. start 起始
    " \) f2 k; M. o" b0 s2 p9 l
  19. limit 限制limit 10
    ' y( T* q: m3 I
  20. DESC 倒序
    & f' I$ |! H( C& V+ T+ v5 P0 n
  21. ASC 正序
复制代码
# h+ w2 `! d; o; o9 k; ~
活动帖发布页面核心处理文件:
  1. source\class\extend\extend_thread_activity.php
复制代码
( K; A& O! w: r4 d% C/ F+ G
分类信息解析文件
  1. source\function\function_threadsort.php
复制代码

0 F9 i6 R+ z# k0 X. oDiscuz模版运行php代码
  1. <!--{eval echo'球球发';}-->
复制代码

  1. ! _8 i1 {% d! i/ g; N" g
  2. <!--{eval}-->3 `- b9 h. Y  }
  3. echo'球球发';
    ; G4 p% r# O# l6 A7 L
  4. <!--{/eval}-->
复制代码
, E) w, n- @; [2 }
标签获得焦点后触发js
  1. onfocus="ymgcom()"
复制代码
& J) x6 q4 ]# E4 A9 |  G- U
标签失去焦点后触发js
  1. onblur="ymgcom();"
复制代码
% t; A1 @  A# V  a' o1 _# Q, N
! S1 R& M; T, H7 X2 ]" j
密码输出1*****6: X  F& X" x1 q2 t4 L
  1. / O9 M% M- P2 Z+ r/ |
  2. //原密码为$_GET['password']8 x& c. u% F& J! C2 ~0 a
  3. $password = preg_replace("/^(.{".round(strlen($_GET['password']) / 4)."})(.+?)(.{".round(strlen($_GET['password']) / 6)."})$/s", "\\1***\\3", $_GET['password']);' y6 n$ ?8 R3 X% ~+ S2 Y: m1 V1 |
  4. echo $password;
复制代码
/ r. u( x+ Z6 {/ A& O
网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除