discuz二次开发常用技术手册代码 [复制链接]
4938
0
登录
注册
忘记密码
购买邀请码
JS跳转
JS更换class的名称
批量替换超链接:
过滤DZ代码:
调用单个数据
调用统计数据
单数据表调用
多数据表调用
前台数据显示
取数据表中符合条件的第一条数据
人性化时间戳
截取字符字数
过滤DISCUZ代码
写入数据库
表单提交:
以下两个时间格式是对等关系
前者用于PHP,后者用于数据库调用的字段的格式化
调用图片附件
数据库循环嵌套调用
ucenter无法登录:
打开uc_server/model/admin.php
找到第22行的
改成
无刷新切换li标签并且同时加载框架页面:
快速发帖
DISCUZ JSON数据解析获取
DISCUZ云平台站点同步提示DNS错误解决方法:打开source\plugin\manyou\Service\Client\Restful.php,找到代码:
修改为:
LI标签列表自适应宽度JS实现代码(去除每行最后一个li标签的右边距):
点击下载 146383669567393.js(大小:90.34K)
常用词汇
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代码
或
标签获得焦点后触发js
标签失去焦点后触发js
密码输出1*****6
//原密码为$_GET['password']
<a href="member.php?mod=logging&action=login" title="登录">登录</a>
注册
<a href="member.php?mod=register" title="立即注册">立即注册</a>
忘记密码
<a href="javascript:;" title="找回密码">找回密码</a>
购买邀请码
misc.php?mod=buyinvitecode
JS跳转
onclick="window.location.href='home.php?mod=mobile&do=friend';"
JS更换class的名称
document.getElementById('idname').className='a';
document.getElementById('idname').style.display='block';
document.getElementById("idname").style.marginTop="30px";
批量替换超链接:
href="[^"]*"
过滤DZ代码:
preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
调用单个数据
$a = DB::result(DB::query("SELECT qi FROM ".DB::table('abc')." WHERE id = '1'"));
调用统计数据
$a = DB::result(DB::query("SELECT count(*) FROM ".DB::table('abc')." WHERE id = '1'"));
单数据表调用
$perpage = 20;
$curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
$start = ($curpage-1)*$perpage;
$askcount = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE fid = '2' AND authorid > 1"));
//$asklist
$asklist = array();
if ($askcount) {
$query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid = '2' AND displayorder > -1 ORDER BY tid ASC LIMIT $start,$perpage");
while ($value = DB::fetch($query)) {
$asklist[] = $value;
}
}
$multi = multi($askcount, $perpage, $curpage, "这里填写跳转地址");
多数据表调用
$perpage = 40;
$curpage = empty ( $_GET['page'] ) ? 1 : intval ( $_GET['page'] );
$start = ($curpage-1)*$perpage;
$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 != ''"));
//$alist
$alist = array();
if ($acount) {
$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");
while ($value = DB::fetch($query)) {
$alist[] = $value;
}
}
$multi = multi($acount, $perpage, $curpage, "这里填写跳转地址");
前台数据显示
<!--{loop $alist $key $value}-->
<!--{eval $tupianfm = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_threadimage')." WHERE tid = '$value[tid]'"));}-->
<br>$value[authorid]
<!--{/loop}-->
取数据表中符合条件的第一条数据
$app=array();
$app=DB::fetch_first("select * from ".DB::table('abc')." where id='{$id}'");
人性化时间戳
<!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->
<!--{echo date("Y-m/d H:i:s",这里填写时间参数)}-->
截取字符字数
<!--{echo cutstr(这里填写参数,40)}-->
过滤DISCUZ代码
preg_replace ("/\[[a-z][^\]]*\]|\[\/[a-z]+\]/i",'',preg_replace("/\[attach\]\d+\[\/attach\]/i",'',$message));
写入数据库
if(submitcheck('tijiao')) {
$setarr = array(
'tid' => $_GET['topicid'],
'name' => $_POST['name'],
'position' => $_GET['position'],
'dateline' => $_G['timestamp'],
);
DB::insert('abc', $setarr, 1);
$query = DB::query("UPDATE ".DB::table('abc')." SET stickreply='1' WHERE tid='$tid'");
$query = DB::query("DELETE FROM ".DB::table('abc')." WHERE pid='$pid'");
showmessage('成功的提示信息', "跳转地址");
}
表单提交:
<form action="do.php" method="post" autocomplete="off">
<input type="hidden" value="{FORMHASH}" name="formhash" />
最低奖金:<input name="qi" type="text" value="" />
最高奖金:<input name="end" type="text" value="" />
<button value="true" name="tijiao" type="submit">提交设置</button>
<input type="hidden" name="tijiao" value="true" />
</form>
以下两个时间格式是对等关系
date("Ymd",time()); 20150212
FROM_UNIXTIME(dateline, '%Y%m%d')
前者用于PHP,后者用于数据库调用的字段的格式化
调用图片附件
<!--{eval $biaoid = substr($value[tid], -1); $cover = DB::result(DB::query("SELECT attachment FROM ".DB::table('forum_attachment_'.$biaoid.'')." WHERE tid = '$value[tid]'"));}-->
数据库循环嵌套调用
<!--{eval $slides = DB::fetch_all("SELECT * FROM ".DB::table('a')." WHERE `uid`= $_G[uid] ORDER BY `id` DESC");}-->
<!--{loop $slides $slide}-->
$slide[name]
<!--{/loop}-->
ucenter无法登录:
打开uc_server/model/admin.php
找到第22行的
$this->cookie_status = 0;
改成
$this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0;
无刷新切换li标签并且同时加载框架页面:
<script type="text/javascript">
var jq = jQuery.noConflict();
jq(function(){
jq("#changemenu>li").mouseover(function(){
jq("#changemenu>li").each(function(i){
jq(this).removeClass("current");
});
jq(this).addClass("current");
document.getElementById("changenr").innerHTML='<iframe src="do.php?id='+jq(this).attr('dataid')+'" height="350" width="1070" frameborder="0" scrolling="no"></iframe>';
}).mouseout(function(){
jq(this).addClass("current");
});
});
</script>
<ul id="changemenu">
<li class="current" dataid="1"></li>
<li dataid="2"></li>
</ul>
<div id="changenr"></div>
快速发帖
<a href="forum.php?mod=misc&action=nav">发布新话题</a>
DISCUZ JSON数据解析获取
$str = 'a:2:{s:8:"sitename";s:8:"魔趣建站";s:3:"pic";s:12:"moqu8.jpg";}';
$newstr = str_replace("\","",$str);
$data = unserialize($newstr);
echo $data[sitename];//输出结果为魔趣建站
DISCUZ云平台站点同步提示DNS错误解决方法:打开source\plugin\manyou\Service\Client\Restful.php,找到代码:
$result = $this->_fsockopen($url, 0, $data, '', false, $ip, 5);
修改为:
$result = $this->_fsockopen($url, 0, $data, '', false, $ip, 30);
LI标签列表自适应宽度JS实现代码(去除每行最后一个li标签的右边距):
点击下载 146383669567393.js(大小:90.34K)
<script type="text/javascript" src="http://we.moqu8.com/new/bang/uploads/146383669567393.js"></script>
<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>
<div class="list">
<ul>
<li>魔趣建站</li>
<li>魔趣建站</li>
<li>魔趣建站</li>
<li>魔趣建站</li>
常用词汇
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代码
<!--{eval echo'<span style="background-color: rgb(255, 255, 255);">魔趣建站</span>';}-->
或
<!--{eval}-->
echo'魔趣建站';
<!--{/eval}-->
标签获得焦点后触发js
onfocus="moqu8com()"
标签失去焦点后触发js
onblur="moqu8com();"
密码输出1*****6
//原密码为$_GET['password']
//原密码为$_GET['password']
$password = preg_replace("/^(.{".round(strlen($_GET['password']) / 4)."})(.+?)(.{".round(strlen($_GET['password']) / 6)."})$/s", "\\1***\\3", $_GET['password']);
echo $password;
历史资源提醒--必看
该页面资源/教程来自原魔趣吧历史资源转移,因发布历史久远,部分资源/教程可能已失效或无法在最新版程序中安装使用!DZ资源建议在Discuz3.4及以下版本使用,PHP版本建议5.6。资源仅提供做代码研究学习使用!
因改版,部分贴内链接将无法正常跳转,如链接失效或未正常跳转,请利用站内搜索功能搜索资源名称获取对应资源!
最新回复 (0)