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

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

1
回复
1244
查看
[复制链接]

764

主题

778

帖子

3万

积分

董事

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

积分
32970
发表于 19-8-16 18:40:41 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
登录
  1. <a href="member.php?mod=logging&action=login" title="登录">登录</a>
复制代码

5 M7 _6 J5 h8 {8 S* d注册
  1. <a href="member.php?mod=register" title="立即注册">立即注册</a>
复制代码

* x8 o( b5 Q" I' r" w, o# @忘记密码
  1. <a href="javascript:;" title="找回密码">找回密码</a>
复制代码
  B+ C0 ~4 ~7 p5 u2 w  q' R
购买邀请码
  1. misc.php?mod=buyinvitecode
复制代码
8 {9 H7 T. o7 `1 |" a
JS跳转
  1. onclick="window.location.href='home.php?mod=mobile&do=friend';"
复制代码

7 Q* t: P* g( X6 g! `JS更换class的名称
  1. document.getElementById('idname').className='a';
    9 r4 N; _! G( A$ L  P, w$ x8 k  g) M
  2. document.getElementById('idname').style.display='block';9 H1 G  B5 @) c* P9 z+ ?3 v# D" K% W
  3. document.getElementById("idname").style.marginTop="30px";
复制代码

% \+ {; {% c. h: W9 v: o4 I% y' O- p批量替换超链接:
  1. href="[^"]*"
复制代码

1 Y& c0 z/ W& H- |, G7 I' E" R) t过滤DZ代码:
  1. preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
复制代码

- x+ T' {1 f$ A: G4 \调用单个数据
  1. $a = DB::result(DB::query("SELECT qi FROM ".DB::table('abc')." WHERE id = '1'"));
复制代码
4 H5 I$ I% [* L( O$ b4 F. W
调用统计数据
  1. $a = DB::result(DB::query("SELECT count(*) FROM ".DB::table('abc')." WHERE id = '1'"));7 k* @  t# b/ K; X+ x; ?
复制代码
- N' Z6 P) e' W$ p& c. D
单数据表调用
  1. $perpage = 20;! ^! e) ?) G7 Q
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
    $ W- V) ]- Q) {9 p; M' |" _; b
  3. $start = ($curpage-1)*$perpage;0 Q& X5 @. r' z! n3 j9 Q
  4. $askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));
    1 j( f4 U# N; x; l# Y1 y
  5. //$asklist, w' I0 {) [* }& W, [5 s6 Y
  6. $asklist = array();
    ( j3 v+ H6 N" y
  7. if ($askcount) {
    " n3 H7 S+ \" z+ l# V7 P, P4 e% l
  8. $query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");
    - ^' M- _4 ?2 C( h
  9. while ($value = DB::fetch($query)) {! \! d2 K  T% X, {; e! w5 X5 T
  10. $asklist[] = $value;
    . i& v% ~# h, o# k! O3 U$ X
  11. }, O+ C' e2 K6 Z6 f- G
  12. }" R7 L9 r( c0 J6 s6 K2 T3 P
  13. $multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
复制代码
+ p1 `0 ?3 ]6 _; j8 p  t8 B
多数据表调用
  1.   ^, B3 n: e) x( t
  2. $perpage = 40;
    ) S4 n5 J6 G( [( M7 r. E
  3. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
    ) ?6 M1 s1 E( K' A, E% I5 ]
  4. $start = ($curpage-1)*$perpage;* c# V3 L7 w- m2 A
  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 != ''"));5 z) d# e# @& S6 S5 R- {
  6. //$alist
    . C3 l: U6 \' ~5 l
  7. $alist = array();: P. L" P) g! A- n+ e
  8. if ($acount) {3 O. n9 w; r& ~2 b
  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");
    9 l3 k* U! g" W  e' ]: J( e9 B
  10. while ($value = DB::fetch($query)) {( y, y# U. G& P1 }
  11. $alist[] = $value;
    & ^  N* N$ \( H( ~5 u( C
  12. }
    3 E5 d8 Q1 {% d# b/ |3 Z
  13. }, z4 @7 e4 }- `/ _
  14. $multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
复制代码

( h  J  t) l) @, p; J0 T前台数据显示
  1. <!--{loop $alist $key $value}-->
    ) w& t) ]  W* f- c; c  K
  2. <!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->- A. d- e5 o* q* r
  3. <img src="$tupianfm"><br>$value[authorid]
    ( l" S2 ?8 D- D" I& m  d1 z2 @1 P
  4. <!--{/loop}-->
复制代码

6 \3 V  O; {% V取数据表中符合条件的第一条数据
  1. $app=array();
    ' k8 X! N# Y# b3 T) j( k
  2. $app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
复制代码

1 u3 z. [' }0 \8 d2 G人性化时间戳
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->
    8 y: c- u: {6 K
  2. <!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
    - }) p$ z" Y  ^$ w
复制代码
, a3 L3 x5 ]5 j2 @
截取字符字数
  1. <!--{echo cutstr(这里填写参数,40)}-->
复制代码
% G4 O/ K0 K1 \$ e
过滤DISCUZ代码
  1. preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
复制代码
  A* R, r6 e8 o+ S2 [
写入数据库
  1. if(submitcheck('tijiao')) {' d4 F$ F* ^5 v' q: J6 Q. f/ s
  2. $setarr = array(
    7 F" q8 X+ q" `- W
  3. 'tid' => $_GET['topicid'],  [9 p0 \4 `& k) o- C3 \
  4. 'name' => $_POST['name'],5 {, L2 ]! S5 U4 `
  5. 'position' => $_GET['position'],( K3 @) i0 K- k8 S$ x
  6. 'dateline' => $_G['timestamp'],
    6 T6 w' |1 C/ E( C0 F& U- O
  7. );
    1 r9 D- ]: k& m6 F% \" `
  8. DB::insert('abc', $setarr, 1);  N$ ~, }# s$ x; }+ R( N+ u6 r
  9. $query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");. d3 B* g8 S  ]  H0 H: G
  10. $query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");' z( a/ C8 y0 H" `* m
  11. showmessage('成功的提示信息', "跳转地址");
    7 m+ V1 [9 n( y: p( p  k
  12. }
复制代码
" ^% A$ q8 N5 `  L. s* s! Y7 @( q
表单提交:
  1. <form action="do.php" method="post" autocomplete="off">- z) v% ?5 S8 y2 ^. R
  2. <input type="hidden" value="{FORMHASH}" name="formhash" />' ]* C" X! Y: d% s2 E
  3. 最低奖金:<input name="qi" type="text" value="" /> 3 c! x! v" k5 {# M
  4. 最高奖金:<input name="end" type="text" value="" />  
    * N  v0 e3 }: l# u2 Y) L4 @; o4 f
  5. <button value="true" name="tijiao" type="submit">提交设置</button>
    7 g6 z, k0 K9 c+ h
  6. <input type="hidden" name="tijiao" value="true" />
    * ]3 v7 F6 H, D. r4 t0 s& p8 k
  7. </form>
复制代码
: c: g( C: D( E# y, t
以下两个时间格式是对等关系
  1. date("Ymd",time());20150212
    " m" Q  u5 h/ w8 g* q
  2. FROM_UNIXTIME(dateline, '%Y%m%d')
复制代码

7 q; x- b- d  E& [2 O7 _% @; U" `/ x$ K5 P前者用于PHP,后者用于数据库调用的字段的格式化
" o2 @+ H4 `3 R. f+ n
7 d5 o" p. J+ E调用图片附件
  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 c3 e( \+ \4 `4 H, e0 U数据库循环嵌套调用
  1. <!--{eval $slides = DB::fetch_all("SELECT * FROM ".DB::table('a')." WHERE `uid`= $_G[uid] ORDER BY `id` DESC");}-->- F4 P7 h+ {7 i/ y
  2. <!--{loop $slides $slide}-->4 O0 W' @% S' Z: C' A& H4 k+ e
  3. $slide[name]
    1 e2 _+ `) ?7 Y* ]3 d
  4. <!--{/loop}-->1 i  w3 [9 W2 P6 E- O
复制代码

# Z" y3 t2 @$ o# S. W; m3 Cucenter无法登录:5 f. ]5 d; [+ O, x8 _5 s6 `5 p
打开uc_server/model/admin.php
5 P8 B2 n# w* A  Q6 ]6 V找到第22行的
  1. $this->cookie_status = 0;
复制代码
改成
  1. $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
复制代码
2 |" U, H5 I- v: o. v0 W" u6 o$ N2 t
无刷新切换li标签并且同时加载框架页面:
  1. <script type="text/javascript">
    2 p" t7 z/ Y: C. e! S6 V9 H+ ^0 \2 `
  2. var jq = jQuery.noConflict();
    ( z: I4 N# @' \+ ]
  3. jq(function(){
    ( P6 V: y& r- i2 C" w
  4. jq("#changemenu>li").mouseover(function(){
    ; C- x9 n7 t5 E, i% j$ p9 n
  5. jq("#changemenu>li").each(function(i){ ! y! W" Z& k: _! T4 b, P" k
  6. jq(this).removeClass("current"); 1 l" J  C% w  ?- J' f+ S
  7. });
    8 x! e3 u' i. [  d5 U, b" F
  8. jq(this).addClass("current");
    8 C4 `* t- p+ e+ D0 v0 y
  9. document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';% l" M4 \" ^# e% z  y2 o
  10. }).mouseout(function(){   ]- ~$ e, e7 D. ?2 f$ C
  11. jq(this).addClass("current");
    2 T1 Y  L* e5 A2 G! X$ {
  12. });
    . E% Q. Y( s' [2 E) U) i
  13. });
    9 _$ i( R- J% h: @
  14. </script>- k* z- {; q+ ?. ^: s$ f. l. o
  15. <ul id="changemenu">
    # |! f9 `, m& D9 _* M: k: w
  16. <li class="current" dataid="1"></li>% e  i0 e7 N& N$ v
  17. <li dataid="2"></li>
    9 h$ A: C% @  `3 A" D6 A4 p% R8 S' v
  18. </ul>5 R* b) p* y( r  ?" i6 `
  19. <div id="changenr"></div>
复制代码
! O/ I( g" g; Q7 O9 Z8 ^
快速发帖
  1. <a href="forum.php?mod=misc&action=nav">发布新话题</a>
复制代码
8 F; C( G) ?, c+ {8 r% C- k
DISCUZ JSON数据解析获取
  1. $str = 'a:2:{s:8:"sitename";s:8:"球球发";s:3:"pic";s:12:"qiuqiufa.jpg";}';
    7 n9 m/ S$ y; q, m1 p0 R- s
  2. $newstr = str_replace("","",$str);$ J3 }, A4 f0 r  I
  3. $data = unserialize($newstr);/ k1 j5 P" b+ u5 ~. |6 Y3 Y9 v( h
  4. echo $data[sitename];//输出结果为球球发
复制代码

: t) y& j4 S3 ~& F3 kDISCUZ云平台站点同步提示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);
复制代码

# u/ l2 u/ m$ P; y& H2 q8 [LI标签列表自适应宽度JS实现代码(去除每行最后一个li标签的右边距):
  1. <script type="text/javascript" src="http://www.banban.so/new/bang/uploads/146383669567393.js"></script>' H2 m% U6 j; {/ ?6 E
  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>7 V9 d0 f8 d- `
  3. <div class="list">! e" N, f  m" J8 L- a( e
  4. <ul>* ]7 @" f" o4 H  x
  5. <li>球球发</li>* D6 V8 P3 J3 g
  6. <li>球球发</li>
    - ~+ [: D: }  @* R
  7. <li>球球发</li>. x0 @( U: U, `
  8. <li>球球发</li>
    0 u$ B* a. h# A" T2 W
  9. <li>球球发</li>
    + S3 m2 ]2 e+ M/ `) l
  10. <li>球球发</li>6 J$ V4 {% {7 N4 n
  11. </ul>
    ' M$ k2 ?, [. I5 g7 O% m
  12. </div>
    $ p4 n( K) J8 O, D! y5 s1 {
  13. <script type="text/javascript">
    6 U8 X  r6 k  G/ \% O9 H
  14. $('.list li:nth-child(3n)').css('marginRight', '0');
    ( B; G3 Z- ^! ?
  15. </script>
复制代码
7 e" Y/ v6 f0 i: H' c* b' L
常用词汇
  1. select 选择8 a8 j8 i; w; X# g& x
  2. count 总数: |# Y9 E; [/ S$ w
  3. table 表
    9 S5 T- C9 F. k: u: f/ w4 T5 `# H
  4. where 条件- v) T( {( Z* Z" A9 g
  5. result 结果
    , T7 _! `6 a' s* l
  6. perpage 每页
    ! f& R) J  L) ^6 e# M3 _" X8 ?
  7. curpage 当前页' Y. X* N  I& a% j. h; [! \' Z% @
  8. update 更新
    1 @8 T$ |6 x5 \2 L+ v$ W* w
  9. delete 删除  m- l2 \8 j& [) G" Q) s
  10. insert 写入
    9 n  ]  [( h7 F$ }1 W  O
  11. dateline 日期
    & g3 O0 b3 S. X
  12. time 时间! t  H* Q6 Z6 R+ A8 m/ b, j  p
  13. echo 输出 <?php echo '123'; ?>2 B+ \: E, `% i7 C9 v
  14. multi 分页函数, r4 W$ `/ }5 ?) ]5 |5 }
  15. if 如果/ a9 w0 k/ f0 p/ F
  16. else 否则4 O2 f8 T9 i7 W1 j8 `
  17. elseif , s+ s( |1 z: Q* U% i+ Q: V
  18. start 起始3 U: k1 z- o' x! P# K5 m9 [$ X
  19. limit 限制limit 10
    1 U: b5 ]3 B+ v
  20. DESC 倒序. r* r: Z# y- E% `1 _- o, p
  21. ASC 正序
复制代码
7 H( c! N9 N% P2 I- T3 `6 i- G% R
活动帖发布页面核心处理文件:
  1. source\class\extend\extend_thread_activity.php
复制代码
) `( X6 N# K4 h
分类信息解析文件
  1. source\function\function_threadsort.php
复制代码

& W( C; b  K3 t* T$ S; n# j! o4 FDiscuz模版运行php代码
  1. <!--{eval echo'球球发';}-->
复制代码
  1. 6 A3 S" A& N* P* [# i
  2. <!--{eval}-->* p: \$ i8 x8 |; E7 q# q. ?
  3. echo'球球发';
    1 y1 ?2 ~3 n  J
  4. <!--{/eval}-->
复制代码
5 i0 d% G- z' b) {4 S& W
标签获得焦点后触发js
  1. onfocus="ymgcom()"
复制代码
+ E; O6 t  ?1 P6 H  ^) o4 r
标签失去焦点后触发js
  1. onblur="ymgcom();"
复制代码
3 |1 P6 C3 ]0 j5 d1 U  F

5 M8 d2 m- N& T8 |9 A密码输出1*****6
/ y. ]# A! X+ Q/ `
  1. $ P0 b6 D2 s' ~% K: i+ S8 g* E# A! _' k
  2. //原密码为$_GET['password']
    8 u  W% p0 N( {5 y8 o% ~
  3. $password = preg_replace("/^(.{".round(strlen($_GET['password']) / 4)."})(.+?)(.{".round(strlen($_GET['password']) / 6)."})$/s", "\\1***\\3", $_GET['password']);7 s& ]7 _- s7 q' d- S
  4. echo $password;
复制代码

$ o: [$ _& l9 p& s" ?& n

0

主题

7

帖子

36

积分

1°伸手党

Rank: 2

积分
36
发表于 20-5-25 13:01:00 | 显示全部楼层         
有道理。。。
回复

使用道具 举报

网站简介

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