一、模板文件命名规范:
(1)index_识别ID.htm:板块(栏目封面)模板;
(2)list_识别ID.htm:栏目列表模板;
(3)article_识别ID.htm:内容查看页(文档模板,包括专题查看页);
(4)search.htm:搜索结果列表模板;
(5)index.htm:主页模板;
二、以下为Dedecms常用标签:
1、网站标题:{dede:global.cfg_webname/}
2、站点url(后台设置):{dede:global.cfg_basehost/}
3、站点实际url(推荐):{dede:global.cfg_cmsurl/}
4、会员中心地址:{dede:global.cfg_memberurl/}
5、站点data目录地址:{dede:global.cfg_dataurl/}
6、模板目录地址:{dede:global.cfg_templeturl/}
7、底部版权:{dede:global.cfg_powerby/}
8、备案信息:{dede:global.cfg_beian/}
9、站点plus目录站点地址:{dede:field.phpurl/}
10、网站描述:{dede:global.cfg_description/}
11、网站关键词:{dede:global.cfg_keywords/}
12、模版路径:{dede:global.cfg_templets_skin/}
13、友情链接:{dede:flink row=‘24’/}
14、栏目内容:{dede:field.content/}
15、当前位置:{dede:field.position/}
16、织梦版本:{dede:global.cfg_version/}
17、调用包含模板文件:{dede:include filename="*.htm"/}
18、时间:
{dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/}
{dede:field name='pubdate' function='strftime("%Y年%m月%d日 %H:%M:%S","@me")' /} //2007年1月1日 18:30:02
{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")' /} //2007-1-1 18:30:02
{dede:field name='pubdate' function='strftime("%Y年%m月%d日 %H时%M分%S秒","@me")' /} //2007年1月1日 18时30分02秒
{dede:field name='pubdate' function='strftime("%m-%d %H:%M:%S","@me")' /} //1-1 18:30:02
{dede:field name='pubdate' function='strftime("%m-%d","@me")' /} //1-1
24小时内的时间显示红色:
[field:pubdate runphp='yes']
$a="<font color='#ff0000'>";
$b="</font>";
$c=strftime("%Y年%m月%d日 %H:%M:%S","@me");
$ntime = time();
$oneday = 3600 * 24;
if(($ntime - @me)<$oneday) @me = $a.$c.$b;
else @me =$c;
[/field:pubdate]
最后更新时间:
{dede:tagname runphp='yes'}@me = date("Y-m-d H:i:s", time());{/dede:tagname}
XX天前:
[field:pubdate runphp='yes']
$today = Floor(time()/(3600 * 24));
$senday= Floor(@me/(3600 * 24));
$updays = $today-$senday;
if($updays==0) @me = "今日";
else @me = $updays."天前";
[/field:pubdate]
19、导航(currentstyle表示高亮显示):
{dede:channel type='self' currentstyle="<span><a href='~typelink~' class='thisclass'>~typename~</a></span>"}
<span><a href='[field:typeurl/]'>[field:typename/]</a></span>
{/dede:channel}
20、用户个人资料:
{dede:memberinfos}
<a href="[field:spaceurl /]" class="userface"><img src="[field:face/]" width="52" height="52" /></a> 头像
<a href='[field:spaceurl /]' class="username">[field:uname/]</a> 用户名
<a href="[field:spaceurl /]" class="useract-vi">查看详细资料</a>
<a href="[field:spaceurl /]&action=guestbook" class="useract-pm">发送留言</a>
<a href="[field:spaceurl /]&action=newfriend" class="useract-af">加为好友</a>
用户等级:</small>[field:rankname /]
注册时间:</small>[field:jointime function="MyDate('Y-m-d H:m',@me)"/]
最后登录:</small>[field:logintime function="MyDate('Y-m-d H:m',@me)"/]
{/dede:memberinfos}
21、挑错:
<a href="{dede:field name='phpurl'/}/erraddsave.php?aid={dede:field.id/}&title={dede:field.title/}" target="_blank">挑错</a>
22、推荐
<a href="{dede:field name='phpurl'/}/recommend.php?aid={dede:field.id/}" target="_blank">推荐</a>
23、打印
<a href="#" onClick="window.print();">打印</a>
24、文档列表:typeid='1,2,5’是多栏目调用,typeid='0’是当前栏目调用,commet是dedecms中的注释方法
{dede:arclist typeid='1,2,5' titlelen=42 row=10 commet='调用文章列表'}
<li>
<a href="[field:arcurl commet='这是文章链接标签'/]">[field:title/]</a>
<p>[field:description function='cn_substr(@me,80)'/]...</p>
</li>
{/dede:arclist}
列表页:pagesize是显示数据条数
{dede:list pagesize='11'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<p>[field:description function='cn_substr(@me,160)'/]...</p>
</li>
{/dede:list}
25、每个标签都可以使用自定义函数对其进行扩展,自定义函数内容主要用于对当前标签输出内容进行处理。格式:{dede:标记名称 function=‘youfunction(“参数一”,“参数二”,"@me")’/},其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:
{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S","@me")'/}
26、编程:织梦模板很方便的一个地方就是支持简单的模板编程。
格式为:
{dede:tagname runphp='yes'}
$aaa = @me;
@me = "123456";
{/dede:tagname}
@me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me。
此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText。
27、模板调用SQL语句:SQL语句中查出的所有字段都可以用[field:字段名/]来调用,如:
{dede:sql sql='Select * from dede_archives where mid=1'}
<a href='/plus/view.php?aid=[field:id/]' target='_blank'>[field:title/]</a>
{/dede:sql}
批量修改栏目为动态或者静态:
UPDATE `dede_arctype` SET `isdefault` = '-1' 动态
UPDATE `dede_arctype` SET `isdefault` = '1' 静态
文章内容批量替换:查找所有文章带有“论坛"的词组,并将论坛替换为“社区"
update `dede_addonarticle` set body=REPLACE(body,'论坛','社区') where body like "%论坛%"
常用内容统计代码:
共有文章:** 篇:
{dede:sql sql="select count(*) as c from dede_archives where channel=1"}·共有文章:[field:c /]篇{/dede:sql}
共有图集:** 个:
{dede:sql sql="select count(*) as c from dede_archives where channel=2"}·共有图集:[field:c /]个{/dede:sql}
共有软件:** 个:
{dede:sql sql="select count(*) as c from dede_archives where channel=3"}·共有软件:[field:c /]个{/dede:sql}
共有评论:**条:
{dede:sql sql="select count(*) as c from dede_feedback"}·共有评论:[field:c /]条{/dede:sql}
共有会员:**名:
{dede:sql sql="select count(mid) as c from dede_member "}·共有会员:[field:c /]名{/dede:sql}
文章阅读:** 人次:
{dede:sql sql="select sum(click) as c from dede_archives"}文章阅读:[field:c /]人次{/dede:sql}
今日更新:**篇:
{dede:sql sql="SELECT count( * ) AS c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP( CURDATE( ) ) "}今日更新:[field:c /]篇{/dede:sql}
总共留言:
{dede:sql sql="select count(*) as cc From dede_guestbook"}[field:cc/]{/dede:sql}条
28、织梦CMS v5.7完美实现导航条下拉二级菜单(将以下代码贴到templets\default\footer.htm文件里,需修改样式)
<!-- //二级子类下拉菜单,考虑SEO原因放置于底部 -->
<script type='text/javascript' src='{dede:global.cfg_cmsurl/}/images/js/dropdown.js'></script>
{dede:channelartlist typeid='top' cacheid='channelsonlist'}
<ul id="dropmenu{dede:field.typeid/}" class="dropMenu">
{dede:channel type='son' noself='yes'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
{/dede:channelartlist}
<script type="text/javascript">cssdropdown.startchrome("navMenu")</script>
29、织梦CMS v5.7实现导航条下拉三级菜单
<style>
.menu li a:hover { color: #E48610; }
.one { position: relative; }
.one ul { position: absolute; left: 0; top: 49px; display: none; }
.two { position: relative; z-index: 99999; }
.two ul { position: absolute; left: 98px; top: 0; }
</style>
<script>
$(function(){
$("li").mouseenter(function(){
$(this).children("ul").show();
}).mouseleave(function(){
$(this).children("ul").hide();
});
});
</script>
<ul>
<li class="one"><a href="{dede:global.cfg_cmsurl/}" target="_blank">网站首页</a></li>
<!-- 只有一级的导航栏 -->
{dede:arclist row=1 idlist=3}
<li class="one"><a href="[field:arcurl/]" target="_blank">[field:title/]</a></li>
{/dede:arclist}
<!-- 有三级的导航栏 -->
<li class="one">
{dede:type typeid='13'}
<a href='[field:typelink/]'>[field:typename/]</a>
{/dede:type}
<ul>
{dede:channelartlist type='top' typeid='13'}
<li class="two">
<a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a>
<ul>
{dede:sql sql='Select * from dede_arctype where reid=~id~ ORDER BY id limit 0,20'}
<li><a href="[field:typedir function='str_replace("{cmspath}/","",@me)'/]">[field:typename/]</a></li>
<!-- 如果路径重复可用下面这种方法,加/DedeCMS/(localhost后面的):
<li><a href="/DedeCMS/[field:typedir function='str_replace("{cmspath}/","",@me)'/]">[field:typename/]</a></li> -->
{/dede:sql}
</ul>
</li>
{/dede:channelartlist}
</ul>
</li>
<!-- 只有一级的导航栏 -->
{dede:arclist row=1 idlist=5}
<li class="one"><a href="[field:arcurl/]" target="_blank">[field:title/]</a></li>
{/dede:arclist}
</ul>
30、搜索:
第一种双选择搜索:
<form name="formsearch" action="{dede:global.cfg_cmsurl/}/plus/search.php">
<input type="hidden" name="kwtype" value="0" />
<input name="q" type="text" id="search-keyword" />
<select name="searchtype" id="search-option">
<option value="title" selected='1'>检索标题</option>
<option value="titlekeyword">智能模糊</option>
</select>
</form>
第二种单选择搜索:
<form name="formsearch" action="{dede:global.cfg_cmsurl/}/plus/search.php">
<input type="hidden" name="kwtype" value="0">
<input name="q" type="text" id="search-keyword">
<input name="searchtype" value="title" type="hidden">
<input value="搜索" type="submit">
</form>
31、标签调用:
{dede:tag row='10' getall='1' sort='month'}
<li><a href='[field:link/]'>[field:tag /]</a></li>
{/dede:tag}
标签链接:[field:link/]
标签关键词:[field:tag /]
32、图集调用:
{dede:arclist row='10' orderby=pubdate type='image.' imgwidth='100' imgheight='100}
<li><a href="[field:arcurl/]“>[field:image/]</a></li>
{/dede:arclist}
文章标题:[field:title/]
文章简略标题:[field:shorttitle/]
文章标题超链接:[field:arcurl/]
文章摘要:[field:info/]
缩略图地址:[field:litpic/]
图集图片:[field:image/]
文章发布日期:[field:pubdate function=“GetDateTimeMK(@me)”/]
文章列表序列号:[field:global runphp=‘yes’ name=autoindex][/field:global]
33、栏目列表页标签:
栏目标题:{dede:field.title/}_{dede:global.cfg_webname/}
栏目关键词:{dede:field name=‘keywords’/}
栏目描述:{dede:field name=‘description’ function=‘html2text(@me)’/}
当前位置:{dede:field name=‘position’/}
文章列表调用:{dede:list pagesize=‘10’}{/dede:list}
栏目名称:[field:typelink/]
栏目文章标题:[field:title/]
文章超链接:[field:arcurl/]
点击次数:[field:click/]
好评:[field:scores/]
文章发布日期:[field:pubdate function=“GetDateTimeMK(@me)”/]
文章摘要:[field:description/]
缩略图:
[field:array runphp='yes']
@me = (empty(@me['litpic']) ? "" : "<a href='{@me['arcurl']}' class='preview'><img src='{@me['litpic']}'/></a>");
[/field:array]
翻页导航:{dede:pagelist listitem=“info,index,end,pre,next,pageno,option” listsize=“5”/}
34、内容页标签:
内容页标题:{dede:field.title/}_{dede:global.cfg_webname/}
内容页副标题:{dede:field.shorttitle/}
内容页关键词:{dede:field.keywords/}
内容页描述:{dede:field.description function=‘html2text(@me)’/}
当前位置:{dede:field name=‘position’/}
文章标题:{dede:field.title/}
文章简略标题:{dede:field.shorttitle/}
文章来源:{dede:field.source/}
作者:{dede:field.writer/}
文章发布时间:{dede:field.pubdate function=“MyDate(‘Y-m-d H:i’,@me)”/}
文章点击次数:
<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" type='text/javascript' language="javascript"></script>
缩略图:{dede:field.image/}
文章摘要:
{dede:field.description runphp='yes'}
if(@me<>'')@me = ''.@me.'
{/dede:field.description}
文章内容:{dede:field.body/}
文章分页:{dede:pagebreak/}
上一篇:{dede:prenext get=‘pre’/} 如:
<li class="pre">{dede:prenext get='pre'/}</li> //已包含上一篇及a标签了。
下一篇:{dede:prenext get=‘next’/}
责任编辑:{dede:adminname/}
35、搜索页面的标签:
搜索词:{dede:global name=‘keyword’ function=‘RemoveXSS(@me)’/}
相关搜索标签:{dede:likewords num=‘8’/}
搜索结果调用循环标签:{dede:list perpage=‘20’}{/dede:list}
分页:{dede:pagelist listsize=‘4’/}
标题:[field:title/]
链接:[field:arcurl/]
摘要:[field:description/]
网址:[field:global.cfg_basehost/][field:arcurl/]
栏目:[field:typename/]
点击:[field:click/]
发表时间:[field:stime/]
36、调用指定ID文章
{dede:arclist row=1 idlist=5}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
37、调用banner图(在模板中用arclist调用附加表字段必须指定channelid值和要获得的字段)
{dede:arclist row='5' typeid="23" channelid='1' addfields='redirecturl'}
<li><a href="http://[field:redirecturl/]" target="_blank"><img src="[field:litpic/]"></li>
{/dede:arclist}
38、顶级栏目列表页显示所有子栏目内容列表的方法(channelartlist可注释,无法分页,可用固定div高度加滚动条代替):
<!-- {dede:channelartlist row=12} -->
{dede:arclist titlelen='42' row='10'}
<li>
<h3>
<a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title /]</a>
</h3>
<p>
[field:description function='cn_substr(@me,160)'/]...
<a title="[field:title/]" href="[field:arcurl/]" target="_blank">[阅读全文]</a>
</p>
</li>
{/dede:arclist}
<!-- {/dede:channelartlist} -->