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

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

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

761

主题

775

帖子

3万

积分

董事

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

积分
32815
发表于 19-8-16 18:40:41 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
登录
  1. <a href="member.php?mod=logging&action=login" title="登录">登录</a>
复制代码
' F6 S! B! e/ C  y- M# u- H
注册
  1. <a href="member.php?mod=register" title="立即注册">立即注册</a>
复制代码
9 ]- J, p$ {4 c# Y4 R
忘记密码
  1. <a href="javascript:;" title="找回密码">找回密码</a>
复制代码
8 j3 {/ j: g9 d$ ]/ [
购买邀请码
  1. misc.php?mod=buyinvitecode
复制代码

7 D, ~4 `$ \2 t, EJS跳转
  1. onclick="window.location.href='home.php?mod=mobile&do=friend';"
复制代码

0 P, U8 @( i( A$ L2 ]- S) IJS更换class的名称
  1. document.getElementById('idname').className='a';
    * W) ^3 p* E3 e
  2. document.getElementById('idname').style.display='block';
    6 H# o: f4 ^" o4 ^- x" F" {# z. F3 C
  3. document.getElementById("idname").style.marginTop="30px";
复制代码
% Z0 n: W! q: k
批量替换超链接:
  1. href="[^"]*"
复制代码

' K1 w' s- B, Q# e; }  f过滤DZ代码:
  1. preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
复制代码

( j4 m6 ]( x( S调用单个数据
  1. $a = DB::result(DB::query("SELECT qi FROM ".DB::table('abc')." WHERE id = '1'"));
复制代码
9 c+ t; k2 k' I: v- z! v/ o; a; _1 d
调用统计数据
  1. $a = DB::result(DB::query("SELECT count(*) FROM ".DB::table('abc')." WHERE id = '1'"));
    : Y$ ?- }  U# K1 [2 ]$ O9 Q
复制代码
9 Z) j4 f) _  x4 X- D. Q( e
单数据表调用
  1. $perpage = 20;" R, G1 C" u8 y3 d1 I& K( `* y
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );7 K# r+ c  l% l& g  t
  3. $start = ($curpage-1)*$perpage;5 E9 Z# ]$ ]: {- N$ `% R
  4. $askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));
    ( C3 R9 m" Q1 D
  5. //$asklist
    + S2 m: f8 a0 [+ Q( g" B" P
  6. $asklist = array();
    7 L& L% d! F4 q( O
  7. if ($askcount) {4 W8 w2 Z3 P: V
  8. $query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");* a) C) D1 k# f1 m( V
  9. while ($value = DB::fetch($query)) {+ [, y& e/ x+ Z+ \
  10. $asklist[] = $value;
    9 f$ C& t" k: C7 P
  11. }
    6 b2 O$ N% f& p# D& i; s' v! b
  12. }
    5 c" R' w: U" d" |
  13. $multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
复制代码

' e+ F% r9 f# D6 V8 C; a- K多数据表调用

  1. $ v" H$ F  o! I  F: F
  2. $perpage = 40;
    ' e0 E2 C7 C! s4 ^( a1 B$ w
  3. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
    . `0 x# o6 J" q$ h# Q
  4. $start = ($curpage-1)*$perpage;
    0 y2 X% w5 V6 x3 s% w
  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 != ''"));
    2 U5 Y  a( `4 I% \9 g3 w: N9 ^
  6. //$alist
    , _( D. J% w6 e& M1 `8 r
  7. $alist = array();0 D) ]* g. F% s. J# D
  8. if ($acount) {1 R; O# G* r& U$ Y: X  ^6 d8 c
  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");; y* H& L! U8 F2 f! Z- m+ f
  10. while ($value = DB::fetch($query)) {9 T, i; T/ O4 U, t+ N7 ^
  11. $alist[] = $value;
    7 L4 Q, `# C3 h( u1 ?& @# q
  12. }
      _8 U5 J8 n: W( U8 _( y# d
  13. }8 z# j7 a9 Z( N
  14. $multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
复制代码

" p8 e& X2 ?- [6 h0 L; y前台数据显示
  1. <!--{loop $alist $key $value}-->
    * q% N7 T  N. c1 L
  2. <!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->
    : h! C8 ^% o- }( D4 X% D
  3. <img src="$tupianfm"><br>$value[authorid], N) W- y. ^( P
  4. <!--{/loop}-->
复制代码
& e2 B4 O6 R) Y; H) k( H( k
取数据表中符合条件的第一条数据
  1. $app=array();# |* f+ N; y6 o- h9 h; h+ {" x
  2. $app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
复制代码

% S; r$ ], _" `6 b7 X* `/ t人性化时间戳
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->* A1 ?' F* k! j$ R* ]. z
  2. <!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
    6 i" X0 m( y; P8 w
复制代码

6 [/ E& Z$ O5 t' s* j, H截取字符字数
  1. <!--{echo cutstr(这里填写参数,40)}-->
复制代码

: R* b! d1 O4 H. k8 x过滤DISCUZ代码
  1. preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
复制代码
. t9 p' N# B" t: C. L5 \$ {- H1 z( o
写入数据库
  1. if(submitcheck('tijiao')) {3 k9 _0 b. p7 J1 J$ F4 ^
  2. $setarr = array(
    2 W& W* o, U; J) t; g% J+ s+ Y
  3. 'tid' => $_GET['topicid']," i1 Z! e+ e8 _& R2 P
  4. 'name' => $_POST['name'],. q# b7 V: b) B6 C8 g. O
  5. 'position' => $_GET['position'],7 X. r* c5 L& A
  6. 'dateline' => $_G['timestamp'],
      U4 t% r$ n9 F1 b7 Q
  7. );
    6 y" R5 W8 s# r, @/ ?
  8. DB::insert('abc', $setarr, 1);" b1 I/ x: O0 D+ Z
  9. $query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");
    7 ]9 d6 ]! Z. q
  10. $query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");8 E4 `/ H2 [' z1 _2 B* d! y
  11. showmessage('成功的提示信息', "跳转地址");5 B$ ^1 ]5 @' Q9 f6 y, C( Q( ]
  12. }
复制代码

4 b$ S$ I; j  S" V) z2 S' r表单提交:
  1. <form action="do.php" method="post" autocomplete="off">
    & `, d& a" \* m% K
  2. <input type="hidden" value="{FORMHASH}" name="formhash" />* q. E; r5 s! V  }
  3. 最低奖金:<input name="qi" type="text" value="" /> 
    0 N. f2 ]4 x; `5 u9 I
  4. 最高奖金:<input name="end" type="text" value="" />  $ W& Z" R7 y0 {
  5. <button value="true" name="tijiao" type="submit">提交设置</button>
    3 O% ]! D  g  y+ l' X' D
  6. <input type="hidden" name="tijiao" value="true" />
    9 H$ ~: p4 |8 e: a
  7. </form>
复制代码
! {8 {# x! t) {- r
以下两个时间格式是对等关系
  1. date("Ymd",time());201502121 B# H) ^% r! v. R( r% @) n
  2. FROM_UNIXTIME(dateline, '%Y%m%d')
复制代码
8 D8 ]8 {& @, @; o
前者用于PHP,后者用于数据库调用的字段的格式化! |$ F( G' q8 w4 Y( L4 ]; H, B

' J) s) ?; E1 P4 `( A, K调用图片附件
  1. <!--{eval $biaoid = substr($value[tid], -1); $cover = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_attachment_'.$biaoid.'')." WHERE tid = '$value[tid]'"));}-->
复制代码
9 q; \8 n. z; s, `$ h  I' }
数据库循环嵌套调用
  1. <!--{eval $slides = DB::fetch_all("SELECT * FROM ".DB::table('a')." WHERE `uid`= $_G[uid] ORDER BY `id` DESC");}-->( j+ u- S1 r/ x, {
  2. <!--{loop $slides $slide}-->
    + R6 w- N, n7 _1 N
  3. $slide[name]
    ; q$ K* c3 }  \( [0 M+ ~
  4. <!--{/loop}-->
    2 T1 z. D1 o. a6 y# O+ W
复制代码

& ]# k' @+ R/ O: |* _: K4 Uucenter无法登录:0 K6 j4 @+ W/ k( }3 }
打开uc_server/model/admin.php
6 C) }# j; y7 S" `$ M2 r找到第22行的
  1. $this->cookie_status = 0;
复制代码
改成
  1. $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
复制代码
2 M; K+ |/ f" x& [
无刷新切换li标签并且同时加载框架页面:
  1. <script type="text/javascript">
    6 D. N4 V7 r' D! x" h3 ^
  2. var jq = jQuery.noConflict();1 a2 [* W8 R' B, G- n1 C
  3. jq(function(){ % ?' g  p/ O. ?8 G' Y
  4. jq("#changemenu>li").mouseover(function(){ 7 i. s& f. i7 l  b$ A  p0 Q8 G) z
  5. jq("#changemenu>li").each(function(i){ + v& P  E/ I& n- ]3 M) [( t
  6. jq(this).removeClass("current");
    ! H( h& l2 ?6 c3 g
  7. }); / @: f" @. Y4 }$ J$ x1 Q
  8. jq(this).addClass("current"); # x: Q6 [# L- X+ ]$ b5 B% F% e
  9. document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';, o+ E% k, A' U, P) v( ^: s
  10. }).mouseout(function(){ 4 ]- T' y) T# l5 s! a
  11. jq(this).addClass("current");
      G) w4 k, D6 J. s
  12. }); 1 B9 L0 K+ a1 l0 p
  13. });, g9 p# I3 M/ Z3 k+ K# H
  14. </script>
    + u4 D  {3 c" ~6 A, B7 F
  15. <ul id="changemenu">
    9 @4 c1 j6 C9 M
  16. <li class="current" dataid="1"></li>
    ; }( [6 w6 l: _: V
  17. <li dataid="2"></li>
    " X2 k1 e* ^% v( [
  18. </ul>* C0 m: i) S  \" t
  19. <div id="changenr"></div>
复制代码
* B3 [! S" B2 O. f2 y2 k8 W
快速发帖
  1. <a href="forum.php?mod=misc&action=nav">发布新话题</a>
复制代码
9 w: _5 Q& G8 F* T/ B) l+ f
DISCUZ JSON数据解析获取
  1. $str = 'a:2:{s:8:"sitename";s:8:"球球发";s:3:"pic";s:12:"qiuqiufa.jpg";}';! y3 i1 a5 L% k4 b( K
  2. $newstr = str_replace("","",$str);1 a: \. x* u3 U" K5 c6 q/ \
  3. $data = unserialize($newstr);5 }- @* N4 L% _) ?; d  u3 P! h
  4. echo $data[sitename];//输出结果为球球发
复制代码
( R0 v( D" |0 I) m: ^6 E% P# }3 S6 T2 ~
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);
复制代码
  h. @3 {- n0 k  m
LI标签列表自适应宽度JS实现代码(去除每行最后一个li标签的右边距):
  1. <script type="text/javascript" src="http://www.banban.so/new/bang/uploads/146383669567393.js"></script>
    5 j; n. p! N3 i  ?1 q
  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>& Z7 i$ w# o% S) @: f2 T% y
  3. <div class="list">1 s% ]7 C9 v8 j/ O) p
  4. <ul>
    # m8 `9 j( A3 z( p2 j' x: j
  5. <li>球球发</li>
    3 k% d- b  n3 l/ g$ F/ t
  6. <li>球球发</li>
    " w8 ?6 `1 S* C& g* A: R% i7 p
  7. <li>球球发</li>0 P1 q* m( m* C/ T$ p4 v
  8. <li>球球发</li>
    / q, \" b6 p. U  i
  9. <li>球球发</li>
    2 P$ F7 b' z4 i$ c4 Q
  10. <li>球球发</li>9 k2 c+ p# O& f6 K7 x2 r5 I
  11. </ul>
    3 r" m8 h. t2 l' ^) x
  12. </div>3 }+ @- x7 k3 Y$ Z$ ~, t! C8 ]  y
  13. <script type="text/javascript">
    6 h! C1 b+ S" F+ F% f
  14. $('.list li:nth-child(3n)').css('marginRight', '0');
    - `$ Z; A3 t, A' I( r  o1 L/ I
  15. </script>
复制代码

0 [) }8 c, _* K: H常用词汇
  1. select 选择) Y& }0 i& L3 C; C! ]7 f
  2. count 总数
    7 {! o  p' s9 B$ @
  3. table 表; X, S  L5 Z* b1 z7 u% ?
  4. where 条件
    " S+ i/ o! i1 c1 [3 l0 x4 Q+ c, W
  5. result 结果
    $ t% B) b1 S+ x7 ^) a/ ?  @$ Q- c
  6. perpage 每页
    " T1 y0 }$ `6 K- B' i0 X5 j
  7. curpage 当前页
    1 e3 x* g2 E* i, L+ J
  8. update 更新
    6 _1 s) V, r& B' T3 v
  9. delete 删除
    ' R2 |9 g  g' P3 ]4 u
  10. insert 写入
    ; ~; j7 V+ U' A; N! m2 h. `9 G
  11. dateline 日期$ ?( I9 K- v- q3 h9 x
  12. time 时间
    / T- i8 W4 L" e5 z2 \
  13. echo 输出 <?php echo '123'; ?>
    * [* }/ J) H2 J4 I4 r0 f% G; g9 e/ W
  14. multi 分页函数" N: @# o# s( H% ^: a1 {- R
  15. if 如果
    # N6 _* n. y) [* F+ v9 p
  16. else 否则
    ( ]+ j/ M% |! f4 S+ ]
  17. elseif
    9 a; p" }) C  g$ y
  18. start 起始$ U4 D9 y# L8 O8 Z. P+ ~0 H/ `
  19. limit 限制limit 103 O4 p" V1 j- R: _7 q5 E" A$ Q+ x
  20. DESC 倒序
    9 V6 i' T8 Z3 _4 C4 b1 u
  21. ASC 正序
复制代码

9 M# r, l/ f/ |) [活动帖发布页面核心处理文件:
  1. source\class\extend\extend_thread_activity.php
复制代码
, y$ V0 q7 N* X
分类信息解析文件
  1. source\function\function_threadsort.php
复制代码
, `; ]. \' X, a2 p3 R
Discuz模版运行php代码
  1. <!--{eval echo'球球发';}-->
复制代码
  1. % E8 K' \# B% _  D) d$ P3 A- L
  2. <!--{eval}-->
    - J% G2 M7 T5 A8 }, ]0 D
  3. echo'球球发';& w. F7 C- @! ?2 e- g8 m
  4. <!--{/eval}-->
复制代码
4 S+ s/ ]; J( i) f, R
标签获得焦点后触发js
  1. onfocus="ymgcom()"
复制代码

( s5 N+ s4 f' {: r! [: {5 b+ Y- g标签失去焦点后触发js
  1. onblur="ymgcom();"
复制代码
& U" H$ E/ B: j& D. J

4 _9 ?% S- E+ G1 b* W密码输出1*****6
2 ^3 O. h+ w+ M" v( g6 q3 o

  1. / x$ k( f, E9 T& I) h0 E* k% I- [
  2. //原密码为$_GET['password']
    , j7 z, h0 n. M" A* x
  3. $password = preg_replace("/^(.{".round(strlen($_GET['password']) / 4)."})(.+?)(.{".round(strlen($_GET['password']) / 6)."})$/s", "\\1***\\3", $_GET['password']);& \0 P) x, y' I% l
  4. echo $password;
复制代码
2 g" H/ J% u7 S* ?! A% |- a
网站简介

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