Dede二次开发程序详解.docx
- 文档编号:10135103
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:98
- 大小:68.07KB
Dede二次开发程序详解.docx
《Dede二次开发程序详解.docx》由会员分享,可在线阅读,更多相关《Dede二次开发程序详解.docx(98页珍藏版)》请在冰豆网上搜索。
Dede二次开发程序详解
Dede二次开发程序详解
调用说明:
推荐会员(带用户头像)
[quote]
{dede:
sqlsql="SELECTmid,mtype,userid,uname,matt,face
FROMdede_member
wherematt=1andmtype='个人'
LIMIT0,10"}
头像:
facerunphp='yes'] if(! @me)@me=' [/field: face]"/> 用户名: globalname='cfg_cmspath'/]/member/? [field: userid/]/'>[field: uname/] {/dede: sql} [field: facerunphp='yes'] if(! @me)@me=' [/field: face] 为用户头像图片 [img] 是如果用户头像为空的话要显示的图像这个大家自己改吧 [/quote] 调用说明: 会员积分排行 [quote] {dede: sqlsql="Selectmid,userid,uname,scoresFromdede_memberorderbyscoresdesclimit0,10"} globalname='cfg_cmspath'/]/member/? [field: userid/]/'>[field: uname/] scores/] {/dede: sql} 全部测试通过 [/quote] 这时需要通过dedecms后台中的ucenter模块进行Ucenter配置。 然后,在浏览器地址栏输入http: //localhost/dede/login.php,打开后台管理登录界面,输入密码后进入dedecms后台管理。 dedecms后台管理界面的左侧导航栏,点击“模块”标签,注意下面的“UCenter模块”。 点击“UCenter配置”,进入以下页面。 “服务端地址“填: http: //localhost/ucenter(本地机),创始人密码即是你在安装UCenter时设定的创始人密码;服务端IP地址填你的Ucenter安装的空间IP(本地机填127.0.0.1),输入后点“确认安装”。 出现安装成功提示。 退出dedecms管理后台,再次进入UCenter用户管理中心,这时我们会发现在“应用管理”中多了一项“我的网站”,并且显示的是“通信成功”了。 我们再通过浏览器访问http: //localhost/uchome/index.php,用管理员的账号进入Uchome首页,点击“设置”进入另外一页,再点击右上角的“高级管理”,输入密码后点击“进入平台”进入高级管理平台。 在左侧导航栏的“高级设置”中找到一项“UCenter应用”点击进入。 在这里我们可以看到我们加入的三个应用,分别点击三个应用下面的“提交更新“。 退出管理界面,现在我们再回过头去测试一下看就可以同步了。 七、经验总结及疑问 如果没有做到Dedecms、UChome、Discuz! 中同时登录及退出的问题其关键就是在uchome中的“ucenter应用”中没有“提交更新”。 有时候安装dedecms、uchome或ucenter出现问题安装不了或出错等等,有的很多就是环境没有搭载好,所以我建议就安装dedecms提供的DedeAMPZForServer套件,至少在服务器的搭载上我们不需要花费太多的精力。 另外注意的是UCenter的配置。 比如“通信密钥”是否一致。 这个一般是导致UCenter与Dedecms、UChome、Discuz! 等通信失败的主要原因之一。 这个密钥是可以自己随便写的,但要保证UCenter与DIscuz的密钥一致。 又比如“ID”。 查看UCenter后台的应用ID是否与Dedecms、UChome、Discuz! 等后台的ID一致,如不一致,请修改各个应用后台的"UCenter应用ID"。 这个也是导致UCenter与DIscuz通信失败的主要原因之一。 关于UCenter的配置等这一点可以参考UCenter官方提供的说明手册。 功能: 图书封面图片调用,含标题 代码: {dede: sqlsql="Selectid,bookname,author,pubdate,body,litpicFromdede_story_booksorderbyiddesclimit0,10"} idfunction=DedeID2Dir(@me)/]/[field: booknamefunction=GetPinyin(@me)/]-[field: id/].html"> litpic/]"border="0"width="75"height="100"/> idfunction=DedeID2Dir(@me)/]/[field: booknamefunction=GetPinyin(@me)/]-[field: id/].html">[field: booknamefunction="cn_substr(@me,12)"/] {/dede: sql}
功能:
最新连载内容调用,含栏目名称、书名、章节名、发布时间。
代码:
{dede:
bookcontentlistrow=10booktype=0orderby=lastpostauthor=keyword=}
cataloglink/][field:
booklink/]
contentlink/]
lastpostfunction="GetDateMk(@me)"/]
{/dede:
bookcontentlist}
功能:
热门图书调用
代码:
{dede:
booklistrow=5booktype=0titlelen=10imgwidth=80imgheight=100orderby=weekcc}[field:
imglink/]{/dede:
booklist}
功能:
推荐图书调用
代码:
{dede:
booklistrow=5booktype=0titlelen=10imgwidth=80imgheight=100orderby=commend}[field:
imglink/]{/dede:
booklist}
分类信息
功能:
调用地区与类型
代码:
{dede:
infolink}
地区:
[field:
nativeplace/]
类型:
[field:
infotype/]
{/dede:
infolink}
功能:
调用最新信息
代码:
{dede:
arclistsgrow=10titlelen=32orderby=pubdatechannelid=-8idlist=}
[[field:
typelink/]][field:
textlink/][field:
pubdatefunction="MyDate(m-d,@me)"/]
{/dede:
arclistsg}
功能:
分类信息图片调用
代码:
{dede:
arclistsgrow=1titlelen=30flag=c,ainfolen=80orderby=pubdatechannelid=-8typeid=6imgwidth=105imgheight=137}
arcurl/]">[field: image/] arcurl/]">[field: title/]{/dede: arclistsg} 会员模块 功能: 分列显示,按积分排行,带头像。 正确链接到会员个人空间。 代码: {dede: sqlsql="Selectmid,userid,uname,face,scoresFromdede_memberorderbyscoresdesclimit0,2"} globalname="cfg_cmspath"/]/member/index.php? uid=[field: userid/]"target="_blank"> face/]"alt=[field: spacename/]width="52"height="52"/border="0"> uname/] [field: scores/] {/dede: sql} 圈子模块 功能: 调用圈子标题,分10行显示 代码: {dede: sqlsql="SELECTgroupimg,groupid,groupnameFROMdede_groupsWHEREishidden=0ORDERBYthreadsDESCLIMIT0,10"} id=[field: groupid/]"title="[field: groupname/]"target="_blank">[field: groupname/]
[field:
积分:
{/dede:
sql}
功能:
热门圈子,调用图片及标题,分10列显示
代码:
{dede:
sqlsql="SELECTgroupimg,groupid,groupnameFROMdede_groupsWHEREishidden=0ORDERBYthreadsDESCLIMIT0,10"}
id=[field:
groupid/]"_fcksavedurl=""group/group.php?
id=[field:
groupid/]""title="[field:
groupname/]"target="_blank"> groupimg/]"border="0"width="75"height="100"/> groupnamefunction="cn_substr(@me,12)"/]
[field:
{/dede:
sql}
功能:
圈子话题调用。
代码:
{dede:
sqlsql="SELECTsubject,digest,replies,gid,tidFROMdede_group_threadsWHEREclosed=0ORDERBYdatelineDESCLIMIT0,10"}
id=[field:
gid/]&tid=[field:
tid/]"_fcksavedurl=""group/viewthread.php?
id=[field:
gid/]&tid=[field:
tid/]""title="[field:
subject/]"target="_blank">[field:
subject/]
{/dede:
sql}
功能:
最新圈子,调用图片及标题,分10列显示
代码:
{dede:
sqlsql="SELECTgroupimg,groupid,groupnameFROMdede_groupsWHEREishidden=0ORDERBYgroupidDESCLIMIT0,3"}
id=[field:
groupid/]"_fcksavedurl=""group/group.php?
id=[field:
groupid/]""title="[field:
groupname/]"target="_blank"> groupimg/]"border="0"width="75"height="100"/> groupnamefunction="cn_substr(@me,12)"/]
[field:
{/dede:
sql}
下载模块
功能:
显示符号、标题及发布日期
代码:
{dede:
arclistrow=10titlelen=36typeid="120"orderby=pubdate}
arcurl/]">[field: title/] pubdatefunction="MyDate(m-d,@me)"/]
{/dede:
arclist}
问答模块
功能:
包含问答分类及问答标题。
代码:
{dede:
askrow=10qtype=}
typeurl/]>[field: tidname/]] url/]">[field: title/] {/dede: ask} 适用于V5.5版本,其他版本未测试。 先来看一段代码: {dede: sqlsql='SelectA.id,A.title,D.id,D.downloadsfromdede_archivesasALeftJoindede_downloadsasDON A.id=D.idorderbydownloadsDESClimit0,10;'} idrunphp='yes']$id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field: id]">[field: title/]下载次数[field: downloads/] {/dede: sql} 这个就是SQL调用下载排行的,已经实现了静态地址调用。 limit0,10;的意思是调用10调,想调用多少条只要修改“10”为你想要的数字,如过你想实现调用特定版块的下载排行,只需要在limit0,10;的后面加上"wheretypeid=xx"XX就是栏目ID。 比如我想调用栏目10的下载排行,代码就是这样: {dede: sqlsql='SelectA.id,A.title,D.id,D.downloadsfromdede_archivesasALeftJoindede_downloadsasDON A.id=D.idWHEREtypeid=10orderbydownloadsDESClimit0,10;'} idrunphp='yes']$id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field: id]">[field: title/]下载次数[field: downloads/]
{/dede:
sql}
这里有个小技巧:
typeid=后面的值可以用当前栏目ID的标签,这样可以在每个栏目列表页实现当前栏目的下载排行调用,具体的望读者自己探究。
当然也可以用typeid>或者<来限定栏目范围。
特定栏目调用已经解决,那么就剩下分时段调用了,可分为日,周,月,年,甚至自定义天数或者小时,代码如下:
{dede:
sqlsql='SelectA.id,A.title,D.id,D.downloadsfromdede_archivesasALeftJoindede_downloadsasDON
A.id=D.idWHEREtypeid=10andpubdate>UNIX_TIMESTAMP(CURDATE()-INTERVAL7day)orderbydownloadsDESClimit0,10;'}
idrunphp='yes']$id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:
id]">[field:
title/]下载次数[field:
downloads/]
{/dede:
sql}
注意,我这是在上一个特定栏目的前提下再加一个时间条件语句,所以,我用了and,后面蓝色字体部分为所需要的内容,如果不想特定栏目,就把有色字体部分代码和紧跟着的“AND”去掉就行。
pubdate>UNIX_TIMESTAMP(CURDATE()-INTERVAL7day)的意思是取7天内的数据,我们只需要修改数字"7"就可以实现我们的目标,比如10天就是pubdate>UNIX_TIMESTAMP(CURDATE()-INTERVAL10day),如果想调用一个月的数据,那就是pubdate>UNIX_TIMESTAMP(CURDATE()-INTERVAL1month)一年的话只要把"day"改成"year"即可。
标签到这里基本上已经完美了。
希望大家自己多多实验,多探究,多查相关资料。
如果有不懂请留言。
附送另外一个小小的标签,关于调用今日更新情况的调用:
sqlsql="SELECTcount(ID)AScFROMdede_archivesWHEREpubdate>UNIX_TIMESTAMP(CURDATE())andtypeid=特定栏目ID"}今
这个HACK是在现有的两个版本上修改而成的,没有进行完全测试,如有问题请告知。
将以下内容存为CREDIT_DEL.PHP文件
php
if(!
defined("CREDIT_DEL")){
die("AccessDenied");
}
############以下是安装方法############
/*
1.将本文件放到index.php所在目录下
2. 购买人数hack
请用数据库管理工具phpmyadmin在
TABLE:
cdb_threads的最尾
----新增----
栏位 :
buy
型态 :
INT
长度 :
3
预设值 :
0
3.将本文件放到index.php所在目录下
在viewthread.php中的32行左右
在下面代码
if(!
$forum[getattachperm]&&!
$allowgetattach){
showmessage("对不起,您的级别〔{$grouptitle}〕无法下载附件。
");
}elseif($forum[getattachperm]&&!
strstr($forum[getattachperm],"\t$groupid\t")){
showmessage("对不起,只有特定用户可以下载本论坛的附件,请返回。
");
}
的下面加上以下代码
####付款下载限制的帖加/减积分的HACK开始####
if($attach[creditsrequire]&&$attach[creditsrequire]<=$credit&&!
$ismoderator){
if(!
$credit_del_yes)
showmessage("此文件需要支付<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Dede 二次开发 程序 详解