《DEDE建站每日一课教程全集》由会员分享,可在线阅读,更多相关《DEDE建站每日一课教程全集(22页珍藏版)》请在金锄头文库上搜索。
1、DEDE 建站每日一课之首页调用栏目建站每日一课之首页调用栏目有些用 dedeCMS 的新手站长苦恼一点儿,就是如何在网站首页调用任意指定栏目的标 题和列表,其实难的不是栏目的列表,而是栏目的标题,以下就是本站测试通过的可 以有效调用栏目标题和列表的代码,分享给各位新手。注意啦,还有调用分类信息的哦。 新手记得先复习一下参数的意思,这里 typeid=栏目 ID,1 的1为固定值, “栏目 ID”为要 调用的栏目 ID,一定不要掉了东西。dede:channelartlist typeid=栏目 ID,1dede:field.typename/更 多dede:arclist titlelen=
2、60 row=8orderby=pubdate idlist=field:textlink/(field:pubdate function=MyDate(m-d,me)/)/dede:arclist/dede:channelartlist这里面相关的参数,大家可以自行进行修改,不是很麻烦。 接下来是 dedeCMS 首页调用如何去调用分类信息呢?代码如下,第一个是不带图片的:招聘求职dede:arclistsg orderby=id titlelen=60 row=10 channelid=-8 typeid=39,40field:pubdate function=“MyDate(y-m-d,
3、me)“/ field:title/dede:arclistsg这个是带图片的分类信息:SEO 人才展示dede:arclist row=5 orderby=pubdate typeid=37 imgwidth=124 imgheight=96field:image/field:title/dede:arclist这些代码都已经经过测试,相关的参数大家可以自行修改。有问题,请在本文下方留 言。DEDE 建站每日一课之首页调用行业的建站每日一课之首页调用行业的 所有分类所有分类如果你是做 B2B 类型的网站,几乎每个网站都把全部分类显示在首页,目前 dede 还 没有一个标签能够调用这些分类的,
4、但是强大的自定义函数功能还是能满足这个需求的。 如何调用全部的行业分类信息呢? 废话不说,直接进入主题,首先在include 新建一个 inc_extend_functions.php,这个文 件都是放你自己写的自定义函数的,区别于官方写的,然后加入以下代码/分类调用 function getfenlei() $dsql = new DedeSql(); $topsectors = $subsectors = array(); $dsql-setquery(“select id, name, reid from dede_sectors order by disorder desc,id as
5、c“); $dsql-Execute(); while($row = $dsql-GetArray() if($rowreid = 0) $topsectors = $row; else $subsectors = $row; foreach($topsectors as $topsector) $sectors = $topsector; foreach($subsectors as $key = $subsector) if($subsectorreid = $topsectorid) $sectors = $subsector; unset($subsectors$key); if($s
6、ectors) $temp = 0; foreach($sectors as $sector) if($sectorreid = 0) if($temp 0) $fenlei.= “nn“; $fenlei .=“n“; $fenlei .=“$sectornamen“; $temp+; else $fenlei .= “$sectorname | n“; $fenlei .= “n“; return $fenlei; 然后在首页你需要调用的地方写上dede:hotwords num=5 function=getfenlei(me)/ 就可以了 说明:说明:1、函数中以及SetQuery(“S
7、elect arcf.title,arcf.url from dede_full_search arcf left join dede_arctype tp on arcf.typeid=tp.ID where arcf.arcrank -1 And arcf.title like “.me.“ and aidExecute() ; me=“; while($row = $dsql-GetArray() ) me.=“.$rowtitle.“; /dede:field 以上是笔者自己写的查询语句,实际上 DEDE 里有一个函数可以用 SpGetFullList,但 我不知怎么用,哪位高手来把上
8、面这段代码改成 SpGetFullList 调用。 以上代码就能有效的视线相关文章和关键字的调用了,但是有时生成一次显示不出关 键字和相关文章,你再生成一次就行了。有高手提出改进的可以在留言板留言。DEDE 建站每日一课之模板标签基础建站每日一课之模板标签基础很多人对 dede 的标签感觉很难理解,实际上,dede 的模板标签类似于 XML 格式,所 有的模板都含有定界符,默认情况下是dede:*和/dede:*, “*”代表模板标记名称。 一般情况下dede:*和/dede:*是成对出现的,例如: 例1-1: dede:arclist flag=h limit=0,1 field:title
9、/ field:description/.查看全文 /dede:arclist 上面的dede:arclist和/dede:arclist成对出现在模板文件中,并且在两个标签当中包含了底 层模板(innertext)。 底层模板(Innertext) ,底层模板实际上就是对于有多条记录的模板输出,用户手工去指定 单个记录的样式。 标签还有一类出现形式是dede:*/,通常以这种形式出现都是输出变量、或者不含底层模 板的内容。 例如:1-2 dede:global.cfg_webname/ dede:arclist flag=h limit=0,1/ 如果用户没有指定单个记录的样式,系统部分标签
10、都含有默认的底层模板,具体可以查看 cmapath/templets/system/文件夹下面的文件,这里面都是系统的底层模板文件。注释注释 织梦标签的模板注释非常灵活,可以通过标签后面的 commet 属性进行赋值。 例1-3: dede:arclist flag=h limit=0,1 commet=调用头条的第一篇内容 field:titlecommet=“这是文章标题 标签“/field:description commet=“这是摘要标签“/.查看全文 /dede:arclist 在模板引擎将上述标签解析为 html 的时候,commet 的内容是被忽略掉不去解析的,用户 在阅读模板
11、标记的时候可以更好的理解标签的意义。 函数 每一个织梦的标签都可以使用自定义函数对其进行扩展,自定义函数内容主要用于对当前 标签输出内容进行处理。 例1-4: dede:标记名称 function=youfunction(“参数一“,“参数二“,“me“)/ 其中 me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如: dede:field.pubdate function=strftime(“%Y-%m-%d %H:%M:%S“,“me“)/属性属性 模板标签的属性,决定了模板标记输出的形式,例如 arclist 标签主要功能是列出文档列表, 但列出什么内容、按照什么方式进行排序
12、等取决于模板标签的属性。 在织梦的模板标签说明中含有各个模板的标签属性可以详细查阅。 可以查看例1-1中的 flag=h limit=0,1,这里 flag 和 limit 是标签的相关属性,通过手册可以 查阅属性的介绍。 如果模板标签如果没有列出属性,系统有默认属性值,用户可以参考模板标签说明查看默 认属性。编程编程 织梦模板很方便的一个地方就是支持简单的模板编程。 格式为: dede:tagname runphp=yes $aaa = me; me = “123456“; /dede:tagname me 表示这个标记本身的值,因此标记内编程是不能使用 echo 之类的语句的,只能把所 有
13、返回值传递给me。 此外由于程序代码占用了底层模板 InnerText 的内容,因此需编程的标记只能使用默认的 InnerText。DEDE 建站每日一课之建站每日一课之 tag 标签详解标签详解标签名称:tag 功能说明:TAG 调用标签 适用范围:全局使用 DEDE 的 tags 调用的基本语法是:dede:tag sort=new getall=0 field:tag / /dede:tag 参数说明:row=30 调用条数,sort=new ,排序方式 month,rand,week ,getall=0 获取类型 0 为当前内容页 TAG 标记,1为获取全部 TAG 标记,底层模板字段
14、,link 和 tag。 但是我们知道 dede 默认在列表是无法调用 tag 标签的,是用全部还是当前页?显然全 部的话和分类信息又有些不着调,如果用当前页的话,没有文章 id,你也调不出东西来。难 道这就没辙了吗? 方法1: 在列表需要的位置加入下列代码field:id runphp=yes $tsql = new DedeSql(false) ; $tags = ; $tsql-SetQuery(“Select i.tagname From dede_tag_list t left join dede_tag_index i on i.id=t.tid where t.aid=me“)
15、; $tsql-Execute(t) ; while($row = $tsql-GetArray(t,MYSQL_ASSOC) ) $tags .= “.$rowtagname.“; me=$tags; /field:id 方法2: 在 inc_functions.php 文件里加入function listtag($aid) $tsql = new DedeSql(false) ; $tags = ; $tsql-SetQuery(“Select i.tagname From dede_tag_list t left join dede_tag_index i on i.id=t.tid where t.aid=$ai