我想要在dedecms里面实现以下功能,请大神帮我写一段代码,用dedecms标签或者自定义标签。
参考dedecms的帮助文档中的arclist标签
标签名称:arclist
标记简介:织梦常用标记,也称为自由列表标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。
功能说明:获取指定文档列表
适用范围:全局使用
基本语法:
{dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:arclist}
参数说明:
col='' 分多少列显示(默认为单列),53版中本属性可以通过多种方式进行多行显示
如果col='1'要多列显示的可用div+css实现
以下为通过div+css实现多列的示例:
<style type=text/css>
div{width:400px;float:left;}
</style>
{dede:arclist row='10' titlelen='24' orderby='pubdate' idlist='' col='2'}
•[field:textlink/]([field:pubdate function=MyDate('m-d',@me)/])<br/>
{/dede:arclist}
当col>1将使用原来的table多列方式显示
row='10' 返回文档列表总数
typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用","分开表示多个栏目;
getall='1' 在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以","分开的多个栏目的下级子类
titlelen = '30' 标题长度 等同于titlelength
infolen='160' 表示内容简介长度 等同于infolength
imgwidth='120' 缩略图宽度
imgheight='90' 缩略图高度
listtype='all' 栏目类型 image含有缩略图 commend推荐
orderby='sortrank' 文档排序方式
§ orderby='hot' 或 orderby='click' 表示按点击数排列
§ orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
§ orderby='near'
§ orderby=='lastpost' 按最后评论时间
§ orderby=='scores' 按得分排序
§ orderby='id' 按文章ID排序
§ orderby='rand' 随机获得指定条件的文档列表
keyword='' 含有指定关键字的文档列表,多个关键字用","分
innertext = '' 单条记录样式
aid='' 指定文档ID
idlist ='' 提取特定文档(文档ID)
channelid 频道ID
limit='起始ID,记录数' (起始ID从0开始)表示限定的记录范围(如:limit='1,2' 表示从ID为1的记录开始,取2条记录)
flag = 'h' 自定义属性值:头条[h]推荐[c][p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]
noflag = '' 同flag,但这里是表示不包含这些属性
orderway='desc' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序
subday='天数' 表示在多少天以内的文档
用arclist调用于附加表字段的方法:
要获取附加表内容,必须符合两个条件
1、指定 channelid 属性
2、指定要获得的字段 addfields='字段1,字段'
如:
{dede:arclist addfields='filetype,language,softtype' row='8' channelid='3'}
[field:textlink /] - [field:softtype /]<br />
{/dede:arclist}
底层模板字段:
ID(同 id),typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,
source,litpic(同picname),pubdate,senddate,mid, lastpost,scores,goodpost,badpost,notpost,
description(同infos),filename, image, imglink, fulltitle, textlink, typelink,plusurl, memberurl, templeturl,
stime(pubdate 的"0000-00-00"格式)
其中:
textlink = <a href='arcurl'>title</a>
typelink = <a href='typeurl'>typename</a>
imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a>
image = <img src='picname' border='0' width='imgwidth' height='imgheight' alt=’titile’>
字段调用方法:[field:varname/]
如:
{dede:arclist infolen='100'}
[field:textlink/]
<br>
[field:infos/]
<br>
{/dede:arclist}
注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能。
如: 给当天发布的内容加上 (new) 标志
[field:senddate runphp='yes']
$ntime = time();
$oneday = 3600 24;
if(($ntime - @me)<$oneday) @me = "<font color='red'>(new)</font>";
else @me = "";
[/field:senddate]
可以用栏目内容替代原来栏目单独页的更灵活的一种方式,可在栏目模板中用{dede:fieldcontent/}调用,通常用于企业简介之类的用途。
网站栏目管理--增加顶级栏目,添加栏目(以添加“某某概况”的单页面为例)
2高级选项:修改列表栏目文件名list_articlehtm为list_article_contenthtm,其他不变。
3在栏目内容中写下单页内容:
4打开模板文件夹(默认为defaulttempletsdefault),复制文件list_articlehtm
更名为:list_article_contenthtm,并在相应适合位置加入单页栏目标签{dede:fieldcontent/}。
5栏目生成更新,完成单页栏目添加。
如果出现缓存比较严重的话,建议先清除浏览器缓存,再打开网页查看;
在\dede\include\extendfuncphp文件中添加如下函数:
function getArticleList($category=0,$order="",$limit="0,200"){
global $dsql;
$query = "SELECT arc,tptypedir,tptypename,tpcorank,tpisdefault,tpdefaultname,tpnamerule,
tpnamerule2,tpispart,tpmoresite,tpsiteurl,tpsitepath
FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp on arctypeid=tpid
where tpid=$category";
//此sql语句我只加了where判断文章所属分类
//其他的order limit 你根据需要自己添加
$dsql->SetQuery($query);
$dsql->Execute('lit');
$arr = array();
$cnt = 0;
$str = "";
while ($row = $dsql->GetArray('lit')) {
if($cnt%4 == 0){
$str = "<div class='css1'>";
}
if($cnt%4 > 0){
$class = "css3";
}else{
$class = "css2";
}
$str = "<span class='"$class"'>"$row['title']"</span>";
$cnt++;
if($cnt%4 == 0){
$str = "</div>";
}
//$row中可用的常用字段如下:$row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'], row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']
}
return $str;
}
然后在模板中使用
{dede:field name='typeid' function="getArticleList(@me)" /}
将分类的id传给此函数就可以调用到数据,输出就是你要的格式。
输出内容你修改下php文件,常用字段都给你写在注释里了。
如果可以请也将我昨天给你回答的采纳一下。
您好,朋友。跟版网团队很高兴为您解答:
1、添加字段(修改数据库--dede_arctype表)在smalltypes字段后添加字段engtype,你可以直接运行以下sql语句:
alter table dede_arctype add engtype varchar(150);
2、修改栏目添加文件
打开后台目录,默认是dede文件夹,里面的dede/catalog_addPHP文件。在第65行与227行两处一样的修改,搜索 reid,topid,sortrank,typename,typedir
在逗号后面添加(注意逗号)engtype
下面第二行的
'~reid~','~topid~','~rank~','~typename~','~typedir~'
后面添加 '~engtype~'
3、再打开dede\templets目录下的catalog_addhtm,在第250行搜索
<td class='bline' height="26" style="padding-left:10px;"><font color='red'>栏目名称:</font></td>
在下面</tr>后添加如下代码
<tr><td class='bline' height="26" style="padding-left:10px;"><font color='red'>英文栏目:</font></td>
<td class='bline'><input name="engtype" type="text" id="engtype" style="width:300px;" value="<php echo $myrow['engtype']>" class="iptxt" /></td> </tr>
4、修改栏目更改文件
打开后台目录,默认是dede文件夹,里面的dede/catalog_editPHP文件。搜索 `smalltypes`='$smalltypes' 大概在第62行添加下面的代码
`smalltypes`='$smalltypes', `engtype`='$engtype',
然后打开dede/templets/catalog_edithtm 在第213行搜索
<td class='bline' height="26" style="padding-left:10px;"><font color='red'>栏目名称:</font></td>
也是在
后面添加
<tr><td class='bline' height="26" style="padding-left:10px;"><font color='red'>英文栏目:</font></td> <td class='bline'><input name="engtype" type="text" id="engtype" style="width:300px;" value="<php echo $myrow['engtype']>" class="iptxt" /></td> </tr>
6、channel调用需修改
调用的时候也要修改相关字段的文件。我调用是用dede:channel标签来调用显示顶级栏目或者子栏目,于是我们要去修改相对应的PHP文件,打开\include\taglib\channellibphp
文件,在第80、86、92、111行左右,添加我们新加的字段
不知道我写的够不够详细,希望我的回答能够给您带来帮助。跟版网-专业织梦模板定制和下载站。 wwwgenbanorg网站站内优化是非常重要的一个环节,当一个网站的页面数量达到一定量级的时候,要坚持把网站做的扁平化就显得尤为困难,很多时候页面的堆积只能通过分类、分频道以及分页来保持页面能有一个单一的入口被蜘蛛爬取到,但是由于站内资源的限制,尤其对于个人站长,想尽各种办法增加每一个页面在站内体系的推荐数量,也就是站内页面投票用来提升目标页面的权重,增加被索引率,但是往往会造成页面臃肿,质量下降,影响用户的阅读体验,同样是不被搜索引擎认可。这个时候就开始有了索引标签的概念,如果你使用过wordpress、phpcms、dedecms等开源的网站程序,你就会发现程序集成或者一些插件引入了标签这样一个功能,他可以把海量的详情页面通过相关性聚合到一起,最大化实现网站结构的扁平化。
我把对SEO标签的使用心得给大家整理出来,主要围绕标签应该如何去选取、标签如何部署才会合理以及标签使用过程中的一些注意事项来做分享。
一、标签的选取
1、通过拓词工具(比如金花站长工具、百度关键词推荐工具、5118等一些工具)获取行业内用户搜索的关键词,之所以获取关键词是因为互联网上分享的资源都是基于这些关键词来实现索引,从而解决用户最终诉求的资源,拿到这些词以后通过关键词分组工具(比如光年提供的关键词分组工具或者通过python开发一些数据处理的小插件)按照词频归类,这些归类的关键词就是你要获取的最终标签。
想认识学习SEO网站优化,可以加裙,前面是461,中间是860,最后是887。
2、文章系统增加自动提取标签功能,主要按照文章某些关键词出现的频次来定,生成的过程中一定要增加审核标签功能,至于原因后续会在注意事项里面提及。
3、人为增加关键词标签,如果你使用知乎或者自己发表博客的时候会有让你添加标签的选项框,虽然效率比较低,但是往往比较有效,也不容生成很多的重复页面或者空页面,给网站制造垃圾,通用有使用过wordpress的站长朋友,会发现每篇文章都要求作者添加一些标签,有数量限制,要求3或者5个这样子。
二、标签站内布局
1、文章的底部增加标签板块,不过要做数量限制,不超过5个,按照相关性降序调取;
2、文章详情页增加热门标签板块,调取访问量最多的关键词标签;
3、标签归类,按照业务、地区、或者字母等维度,只要是提升用户体验的维度都可以归类,聚合出一个标签大全频道页面,然后聚合页面在网站的公共头尾选择一个入口布局。
随着站内标签越来越多,你就要合理的规划这些标签,因为这些标签加强了你站内资源的相关性和关联性,使你的网站结构更加扁平化,也更有利于搜索引擎的爬取。
三、标签使用注意事项
1、如果是动态或者批量生成的标签关键词一定要把控生成页面的质量,如果是空页面先不要给站内增加入口,通过程序严格审核有了聚合的内容资源之后才给予入口;
2、人工添加标签不要选择形义相近的关键词,避免生成太多的重复页面,每个主题的关键词只选择一个即可;
3、对于行业内业务板块已经成熟的分类,在站内生成对应的分类列表页即可,因为标签页分为很多种,主要包含分类标签、专题标签以及索引标签,本篇文章着重介绍索引标签
dede:type typeid='10的意思是:{dede:type} 这个是指定栏目的调用, typeid=10是栏目ID [field:typelink/]栏目链接,10代表的是第10个栏目。
dede的type标签的作用是:表示指定的单个栏目的链接。适用范围:封面模板、列表模板、文档模板。语法 {dede:type typeid=''}{/dede:type},属性 typeid='栏目ID,底层模板变量typename,typelink(仅表示栏目的网址)。
扩展资料:
DedeCMS的模版引擎简单、易用,采用了XML标记风格,只要懂HTML就可以修改制作模板。 很多的用户都为每次网站改版费尽苦心,因为按照老式的网站制作流程,改版需要修改的不单单是一个界面,还要涉及到程序修改。最后成了一次改版,几乎等于网站重构。
DedeCMS就解决了这一系列的烦恼,只需要了解一些DedeCMS的模板标记,只要懂HTML,就能随意对模板文件进行修改,而且每次升级只需要更新模板文件即可,做到了程序和页面很大程度上的分离。
DedeCMS 的模板引擎采用了官方自行研发的Dede模板引擎,类XML结构的标签简单易懂,便于在网页编辑器中进行编辑。同时标签齐全,应用广泛,这为基于 DedeCMS建设开发的站点提供了一个良好的基础,只需要懂HTML就可以搭建您想要的站点,这也是DedeCMS风靡的一个重要因素。
-dedecms模版
织梦-织梦内容管理系统模板标签代码参考
0条评论