文章介绍
调用说明:推荐会员(带用户头像)
[quote]
{dede:sql sql=”SELECT mid,mtype,userid,uname,matt,face
FROM dede_member
where matt=1 and mtype=’个人’
LIMIT 0 , 10″}
头像:[field:tidname/]]
amp;$lt;a [field:url/]”>[field:title/]amp;$lt;/span$amp;>amp;$lt;br />
{/dede:ask}适用于V5.5版本,其他版本未测试。
先来看一段代码:{dede:sql sql=’Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON
A.id=D.id order by downloads DESC limit 0,10; ‘}
amp;$lt;a [field:id runphp=’yes’] $id=@me;@me=”;$url=GetOneArchive($id);@me=$url[‘arcurl’];[/field:id] “>[field:title/]下载次数[field:downloads/]
{/dede:sql}这个就是SQL调用下载排行的,已经实现了静态地址调用。limit 0,10; 的意思是调用10调,想调用多少条只要修改“10”为你想要的数字,如过你想实现调用特定版块的下载排行,只需要在limit 0,10; 的后面加上”where typeid=xx ” XX就是栏目ID。比如我想调用栏目10的下载排行,代码就是这样:
{dede:sql sql=’Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON
A.id=D.id WHERE typeid=10 order by downloads DESC limit 0,10;’}
amp;$lt;a [field:id runphp=’yes’] $id=@me;@me=”;$url=GetOneArchive($id);@me=$url[‘arcurl’];[/field:id] “>[field:title/]下载次数[field:downloads/]
{/dede:sql}这里有个小技巧:typeid=后面的值可以用当前栏目ID的标签,这样可以在每个栏目列表页实现当前栏目的下载排行调用,具体的望读者自己探究。当然也可以用typeid >或者<来限定栏目范围。
特定栏目调用已经解决,那么就剩下分时段调用了,可分为日,周,月,年,甚至自定义天数或者小时,代码如下:
{dede:sql sql=’Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON
A.id=D.id WHERE typeid=10 and pubdate > UNIX_TIMESTAMP( CURDATE( ) – INTERVAL 7 day) order by downloads DESC limit 0,10;’}
amp;$lt;a [field:id runphp=’yes’] $id=@me;@me=”;$url=GetOneArchive($id);@me=$url[‘arcurl’];[/field:id] “>[field:title/]下载次数[field:downloads/]
{/dede:sql}
注意,我这是在上一个特定栏目的前提下再加一个时间条件语句,所以,我用了 and ,后面蓝色字体部分为所需要的内容,如果不想特定栏目,就把有色字体部分代码和紧跟着的“AND”去掉就行。pubdate > UNIX_TIMESTAMP( CURDATE( ) – INTERVAL 7 day) 的意思是取7天内的数据,我们只需要修改数字”7″就可以实现我们的目标,比如10天就是pubdate > UNIX_TIMESTAMP( CURDATE( ) – INTERVAL 10 day) ,如果想调用一个月的数据,那就是pubdate > UNIX_TIMESTAMP( CURDATE( ) – INTERVAL 1 month) 一年的话只要把”day”改成”year”即可。标签到这里基本上已经完美了。希望大家自己多多实验,多探究,多查相关资料。
如果有不懂请留言。附送另外一个小小的标签,关于调用今日更新情况的调用:
amp;$lt;strong>小小说阅读amp;$lt;div align=right$amp;>amp;$lt;font size=3>这些部分组成,用于解释模板标记使用功能,建议新手都把这些标记功能看看,大致做一个了解。
由于Dedecms模板大致分为首页、频道、列表、内容以及其他附加模板组成,使用范围指出 这些标记在哪些模板中起作用。模板文件夹中(以Dedecms默认模板为例,即{cmspath} emplets\default)大家可以仔细分析 下,模版中很多都是以下列这些名字出现index.htm,index_X.htm(封面模板),list_X.htm(列表模 板),article_X.htm(内容模板),你可以对照标记的适用范围,查看这些标签在哪个模板中能起到作用。
用于介绍模板基本使用方法,在使用时候可以拿来根据自己的需要进行响应的修改。
这些属性,决定你调用的内容,决定Dedecms解析这些标记的形式,属性非常重要。以上这些介绍主要是让大多数新手 学会看帮助文件,模板修改使用的大多数问题都是因为自己不去看这些帮助文件导致的,希望广大Dedecms新人引以为戒。
下面就来简单说下Dedecms模板的分类,搞过ASP的人应该知道,动态网页基本上就是对变量、数组(数据库)的操作,然后通过语句输出为 HTML,dedecms的这些标记也是起到同样的效果。
下面根据起到的不同效果对模板进行如下分类:
一.变量操作型这里的变量不同于对编程中那个复杂的变量,新人不懂,我这里所指出的变量是Dedecms调用局部内容进行输出的一些标记,这里有: 以及还有系统不常用的(其实天涯经常使用),例如global 标记、include 标记、mytag标记、position 标记,这些标记大家可以看出,都是输出来为一部分内容,并不可以重复,这个标记在解析时候生成的只是一块不重复的内容。二.数组操作型这里的数组当然在模板标记中,指的是循环输出一些内容的标记,例如N行文章、N个软件、N个会员信息等等,Dedecms这些标记有: 当然 也有foreach这种“罕见”的标记,这些标记使用时,通过属性设置,能循环输出一些列内容,很多重复的东西,往往 只要一个标记就搞定,不信可以开个模板仔细观察观察。
有了这个分类以后,在修改、制作模板时候相信会得心应手了,天涯在修改、制作模板中经常使用的标记有sql、include、loop(貌似现在被sql 取代了)、mytag这些标记,因为这些标记很“自由”,当 然新人可以在模板制作修改中尝试使用这些灵活自由的标记。
本篇接下来简单讲一下数组操作性标记的原理以及他的使用方法。
我们在Dedecms模板中经常看到下面这样的例子:
{dede:arclist row=4 titlelen=20 orderby=pubdate typeid=58}
amp;$lt;span>[field:pubdate function=strftime(‘%m-%d’,@me)/][field:textlink/]
{/dede:arclist}
这里我们使用了arclist标记,通过属性我们可以得到下列相关信息:
row=4 调用4行这样的数据
titlelen=20 取标题的前20个字符(2个字符为一个中文字符)
orderby=pubdate 排列顺序为按照发布时间排列,当然你也可以选择其他,帮助有详细说明。
typeid=58 调用栏目id为58栏目的文章
标记都是通过 {dede:arclist}这个开始,{/dede:arclist}结束,这个和html有的相像,所以做dedecms模板,最好熟练下html的 相关知识。
开始、结束标记中含有[field:textlink/]这样的标记,新手需要记住的是[field:textlink/]只可能存在于{dede:XXX}{/dede:XXX}之间,绝对不肯能拿出来单独使用!其他数组操作性标记都是同样的原理,只是将繁琐的从数据库调用的东西简化为dedecms标记,dedecms在解析时候读取标记然后进行查询、输出等一 些后续操作。新手注意的是,熟练掌握什么是频道页、列表页、内容页,以及调 用内容关系和范围,根据自己的页面需要,使用不同的标记达到效果,这是新手在不断实践的基础下才能掌握的。
文件:include/inc_function.php 系统默认会载入此文件
GetCurUrl()
获得当前得脚本得URLGetAlabNum($str)
把字符串里得全角数字转为半角数字(会把非数字类型字符删除)Text2Html($txt)
文本转HTMLHtml2Text($str)
获得HTML里得文本function ClearHtml($str)
清除HTML标记cnw_left($str,$len)
中文截取把双字节字符也看做一个字符cn_substr($str,$slen,$startdd=0)
中文截取2,单字节截取模式GetMkTime($dtime)
把中文得时间格式转换为Linux时间截,对于不能识别得格式,会返回time()SubDay($ntime,$stime)
返回减少一天得Linux时间截AddDay($ntime,$aday)
返回增加一天得Linux时间截GetDateTimeMk($mktime)
从指定得Linux时间截返回 0000-00-00 00:00:00 格式得时间GetDateMk($mktime)
从指定得Linux时间截返回 0000-00-00 格式得时间GetIP()
获取客户部IPGetPinyin($str,$ishead=0,$isclose=1)
获取一串中文字符得拼音 ishead=0 时,输出全拼音 ishead=1时,输出拼音首字母ShowMsg($msg,$gourl,$onlymsg=0,$limittime=0)
显示Dedecms提示信息,其中当onlymsg=1时,不跳转,仅显示alert提示dd2char($dd)
把符合规则得数字转为字母(符合a-zA-Z Ascii码得数字转换为字母,不符合则不变)PutCookie($key,$value,$kptime,$pa=”/”)
按默认参数设置一个Cookie(dede得cookie是经过加密得,必须用GetCookie获取值,以防止用户模拟登录)DropCookie($key)
使Cookie失效function GetCookie($key)
获得一个cookie值function GetCkVdValue()
获得验证码得session值FtpMkdir($truepath,$mmode,$isMkdir=true)
用FTP创建一个目录FtpChmod($truepath,$mmode)
用FTP改变一个目录得权限OpenFtp()
打开FTP连接CloseFtp()
关闭FTP连接TestStringSafe(&$uid)
用户ID和密码或其它字符串安全性测试,返回true或falsehtmlEncode($string)
过滤HTML代码function AjaxHead()
发送一个ajax头sendmail($email, $mailtitle, $mailbody, $headers)
邮件发送函数highlight($string, $words, $hrefs=”)
加亮一段HTML里得某些词汇文件:include/inc_channel_unit_functions.php
GetFileUrl($aid,$typeid,$timetag,$title,$ismake=0,$rank=0,
$namerule=”,$namerule2=”,$money=0,$aburl=false,$siteurl=”)
获得文章得链接网址(对于动态得文章返回得是/plusview.php aid=$aid)
这些参数必须通过主表dede_archives联结栏目表dede_arctype查询来获得(注:dede得主表不是固定得)GetTypeUrl($typeid,$typedir,$isdefault,$defaultname,$ispart,$namerule2,$siteurl=”)
获得某栏目得链接网址GetParentIDS($tid,&$dsql)
获得某栏目得所有上级栏目得ID,返回得ID用 , 号分开TypeGetSunID($ID,&$dsql,$tb=”dede_archives”,$channel=0,$onlydd=false)
获得某栏目得所有下级栏目ID,当 $onlydd=true 时返回得才是用’,’分开得ID列表
否则返回得是SQL条件语句,形式为 $tb.typeid=$ID1 or $tb.typeid=$ID2 这样得形式GetHotKeywords(&$dsql,$num=8,$nday=365,$klen=16,$orderby=’count’)
获取网站搜索得热门关键字CkLitImageView($imgsrc,$imgwidth)
判断是否有缩略图片,有则返回一个img标记,一般在底层模板中使用,如:
[Field:litpic function=”CkLitImageView(@me,80)”/]文件:pub_charset.php
utf82gb($utfstr)
UTF8编码转gbk编码gb2utf8($gbstr)
gbk转utf8编码big52gb($Text)
big5转gb12312编码gb2big5($Text)
gb2312转big5编码(注意:gb2312编码一般不包含那些脑开残体之类得生冷字,而gbk通常是支持得)
文件:inc_photograph.php
ImageResize($srcFile,$toW,$toH,$toFile=””)
缩图片自动生成函数,来源支持bmp、gif、jpg、pngWaterImg($srcFile)
给图片加水印DedeCms基本得类文件说明
(这里只说明 include 或其它目录一些重要得inc 文件,至于模块或功能性得文件,实际上一般每个文件或文件+action对应该着一个功能,如article_add.php这些已经很直观了,确实不知 道得不妨在操做得地方点击右键看属性就知道你操做得功能对应什么文件了,因此不单独说明。)
dedecms前台使用到模板得东西基本都是面向对象得,至于具体每个对象得流程我就不解析了,对于菜鸟说也是不懂得。inc_arcbook_view.php
小说得列表、内容都是在这里操做得inc_archives_view.php
所有dede内核涉及得文章页,如文章、图集、软件或自定义模型得内容展示页都是在这个文件处理得inc_arclist_view.php
内容列表得处理类inc_arcpart_view.php
封面频道和通用调用标记得处理类inc_arcsearch_view.php
搜索类inc_arcspec_view.php
专题列表类inc_bookfunctions.php
小说文本保存操做函数inc_channel_unit.php
内容模型得特殊字段转换处理类inc_channel_unit_functions.php
与内核相关得重要函数inc_custom_fields.php
自定义字段得表单和值得获取处理函数inc_digglist_view.php
Digg列表类inc_freelist_view.php
自由列表类inc_memberlogin.php
会员登录类inc_modules.php
模块类inc_rss_view.php
Rss列表类inc_sitemap.php
网站地图类inc_taglist_view.php
标签Tag列表类inc_typelink.php
栏目属性类inc_userlogin.php
管理员登陆类inc_vote.php
投票类mail.class.php
邮件类pub_collection.php
pub_collection_functions.php
采集类和函数pub_datalist.php
数据列表类(模板用dede标签)pub_datalist_dm.php
数据列表类(动态用php)pub_db_mysql.php
数据库类pub_dedeattribute.php
属性解析类pub_dedehtml2.php
HTML解析类(主要是获取HTML里得图片、链接等信息)pub_dedetag.php
dede模板解析类pub_
dede下载类pub_oxwindow.php
dede高级提示窗口类pub_splitword_www.php
dede分词类zip.lib.php
zip处理类