discuz二次开发常用技术手册代码

Discuz开发资料库:https://www.moqu8.com/library/index.htm


登录

  1. <a href="member.php?mod=logging&action=login" title="登录">登录</a>
复制代码



注册
  1. <a href="member.php?mod=register" title="立即注册">立即注册</a>
复制代码



忘记密码
  1. <a href="javascript:;" title="找回密码">找回密码</a>
复制代码



购买邀请码
  1. misc.php?mod=buyinvitecode
复制代码



JS跳转
  1. οnclick="window.location.href='home.php?mod=mobile&do=friend';"
复制代码



JS更换class的名称
  1. document.getElementById('idname').className='a';
  2. document.getElementById('idname').style.display='block';
  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;
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
  3. $start = ($curpage-1)*$perpage;
  4. $askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));
  5. //$asklist
  6. $asklist = array();
  7. if ($askcount) {
  8.         $query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");
  9.         while ($value = DB::fetch($query)) {
  10.                 $asklist[] = $value;
  11.         }
  12. }
  13. $multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
复制代码




多数据表调用
  1. $perpage = 40;
  2. $curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
  3. $start = ($curpage-1)*$perpage;
  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 != ''"));
  5. //$alist
  6. $alist = array();
  7. if ($acount) {
  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");
  9.         while ($value = DB::fetch($query)) {
  10.                 $alist[] = $value;
  11.         }
  12. }
  13. $multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
复制代码





前台数据显示
  1. <!--{loop $alist $key $value}-->
  2. <!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->
  3. <br>$value[authorid]
  4. <!--{/loop}-->
复制代码



取数据表中符合条件的第一条数据
  1. $app=array();
  2. $app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
复制代码



人性化时间戳
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->
  2. <!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
复制代码




截取字符字数
  1. <!--{echo cutstr(这里填写参数,40)}-->
复制代码




过滤DISCUZ代码
  1. preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
复制代码




写入数据库
  1. if(submitcheck('tijiao')) {
  2.         $setarr = array(
  3.                 'tid' => $_GET['topicid'],
  4.                 'name' => $_POST['name'],
  5.                 'position' => $_GET['position'],
  6.                 'dateline' => $_G['timestamp'],
  7.         );
  8.         DB::insert('abc', $setarr, 1);
  9.         $query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");
  10.         $query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");
  11.         showmessage('成功的提示信息', "跳转地址");
  12. }
复制代码






表单提交:
  1. <form action="do.php" method="post" autocomplete="off">
  2.         <input type="hidden" value="{FORMHASH}" name="formhash" />
  3.         最低奖金:<input name="qi" type="text" value="" /> 
  4.         最高奖金:<input name="end" type="text" value="" />  
  5.         <button value="true" name="tijiao" type="submit">提交设置</button>
  6.         <input type="hidden" name="tijiao" value="true" />
  7. </form>
复制代码




以下两个时间格式是对等关系
  1. date("Ymd",time());  20150212
  2. FROM_UNIXTIME(dateline, '%Y%m%d')
复制代码



前者用于PHP,后者用于数据库调用的字段的格式化

调用图片附件
  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");}-->
  2. <!--{loop $slides $slide}-->
  3. $slide[name]
  4. <!--{/loop}-->
复制代码


ucenter无法登录:
打开uc_server/model/admin.php
找到第22行的
  1. $this->cookie_status = 0;
复制代码




改成
  1. $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
复制代码





无刷新切换li标签并且同时加载框架页面:
  1. <script type="text/javascript">
  2. var jq = jQuery.noConflict();
  3. jq(function(){
  4. jq("#changemenu>li").mouseover(function(){
  5. jq("#changemenu>li").each(function(i){
  6. jq(this).removeClass("current");
  7. });
  8. jq(this).addClass("current");
  9. document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';
  10. }).mouseout(function(){
  11. jq(this).addClass("current");
  12. });
  13. });
  14. </script>
  15. <ul id="changemenu">
  16.    <li class="current" dataid="1"></li>
  17.    <li dataid="2"></li>
  18. </ul>
  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:"moqu8.jpg";}';
  2. $newstr = str_replace("\","",$str);
  3. $data = unserialize($newstr);
  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);
复制代码

常用词汇
select 选择
count 总数
table 表
where 条件
result 结果
perpage 每页
curpage 当前页
update 更新
delete 删除
insert 写入
dateline 日期
time 时间
echo 输出   <?php   echo '123';   ?>
multi 分页函数
if 如果
else 否则
elseif 
start 起始
limit 限制  limit 10
DESC 倒序
ASC 正序




活动帖发布页面核心处理文件:
source\class\extend\extend_thread_activity.php


分类信息解析文件
source\function\function_threadsort.php

discuz模版运行php代码
  1. <!--{eval echo'<span style="background-color: rgb(255, 255, 255);">魔趣吧</span>';}-->
复制代码



  1. <!--{eval}-->
  2. echo'魔趣吧';
  3. <!--{/eval}-->
复制代码

标签获得焦点后触发js
  1. οnfοcus="moqu8com()"
复制代码




标签失去焦点后触发js 
  1. οnblur="moqu8com();"
复制代码

为部分模板回帖增加用户组显示:
  1. <div style="margin-top:5px;margin-left: 10%;">
  2. <a href="home.php?mod=spacecp&ac=usergroup&gid=$post[groupid]" target="_blank">{$post[authortitle]}</a>       
  3.                                         </div>
复制代码




密码输出1*****6
//原密码为$_GET['password']
  1. //原密码为$_GET['password']
  2. $password = preg_replace("/^(.{".round(strlen($_GET['password']) / 4)."})(.+?)(.{".round(strlen($_GET['password']) / 6)."})$/s", "\\1***\\3", $_GET['password']);
  3. echo $password;
复制代码

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值