dedecms列表页调用文章正文内容的方法
“乱长”通过精心收集,向本站投稿了8篇dedecms列表页调用文章正文内容的方法,下面小编给大家整理后的dedecms列表页调用文章正文内容的方法,希望大家喜欢!
篇1:dedecms列表页调用文章正文内容的方法
这篇文章主要为大家介绍了dedecms列表页调用文章正文内容的方法,可通过SQL查询调用,或者通过自定义模型字段调用,是非常实用的技巧,需要的朋友可以参考下
一般来说,在列表页面要获取文章内容简单描述的话我们可以直接使用description标签就可以了,但是如果要有很多估计我们需要进行一些简单的修改。
在制作织梦模板的时候,有的时候我们需要调用文章部分内容,用[field:description/]标签字数不够多(数据库设计字段是varchar(255)的),另外修改了文章内容但是摘要还需要手动修改,所以只能调用文章正文内容了.
实现织梦DedeCMS列表页调用文章正文的方法有两种,不过都是使用的dede:arclist标签,如果使用dede:list标签的话,第一种方法是调用不出结果的.
以下是织梦DedeCMS列表页调用文章正文的第一种方法,代码如下:
代码如下:{dede:arclist flag=‘h‘ row=‘10′}
[field:title/]
[field:id runphp=‘yes‘] $aid = @me; $row = $GLOBALS[‘dsql‘]->GetOne(“Select body From ‘dede_addonarticle‘ where aid=‘$aid‘ ”); @me =
cn_substr(strip_tags(“{$row[‘body‘]}”),400);[/field:id]【阅读详细】
{/dede:arclist}
代码中的数字400是用来设置需要调用多少内容的,因为调用的是body里面的内容,如果有里面包含代码的话也会被调用出来,这点比较不好,不过可以使用html2tex函数解决一下.
第二种方法则是利用了织梦可以自定义模型内容数据,并调用的原理,把文章模板的body字段看做在自定义的,调用的代码如下:
代码如下:{dede:arclist row=‘10‘ addfields=‘body‘ channelid=‘1‘}
[field:body function=‘cn_substr(html2text(@me),600)‘/]...
{/dede:arclist}
以下是这种方法的详细说明:
1.addrields=”字段一,字段二…”
2.idlist:文章编号,调用指定内容
3.function=’cn_substr(html2text(@me),600)’ 将文章内容转化为文字格式
4.channelid,模型编号,文章默认为1,查看位置:后台–核心–内容模型管理
两种方法各有优劣,第一种方法比较繁琐,不是那么容易看懂,还是比较推荐采用第二种方法实现织梦DedeCMS列表页调用文章正文的功能的.
谁说dede:list 标签不能调用body内容,现在就告诉你,直接就可以调用
第一步,打开后台 核心-->频道模型-->内容模型管理-->普通文章,在列表附加字段中添加body.
第二步,在dede:list语句中指定addfields=‘body‘,然后直接用[field:body/]调用全部内容.
实例代码如下:
代码如下:
{dede:list pagesize=‘18‘ addfields=‘body‘}
[field:body/]
[field:title/]
{/dede:list}
另外,如果像摘要一样调用可以用,代码如下:
代码如下:[field:body function=‘cn_substr(html2text(@me),200)‘/]
替代:
代码如下:[field:description /]
调出文章前200个字符内容,经过这两步,可以彻底关掉系统默认的文章摘要功能,最后还有就是官方的一个[field:description/]字段了,这个如果对于要求几十个字的完全可以了,但是如果太多字此字段就无效了.
希望本文所述对大家的dedecms建站有所帮助,
篇2:DedeCMS循环调用多级栏目及内容列表
Dedecms还是比较不错的,当然,除了论坛的技术回复速度!!今天分享一个比较实用的关于循环调用子栏目及其内容列表的小代码,其实查看标签手册也能看到,但毕竟还是有懒人存在的!
根据标签手册,在织梦(DedeCMS)系统中,可以用 channelartlist 标签进行循环子栏目及其栏目数据,据说,它也是织梦(DedeCMS)系统中唯一一个支持标签嵌套的调用标签,基本用法如下,可根据需要修改:
{dede:channelartlist}{dede:field name='typename'/}更多...{dede:arclist titlelen='60' row='8'}[field:pubdate function=“MyDate('m-d',@me)”/][field:title /]{/dede:arclist}{/dede:channelartlist}
我没做演示,找了个类似的效果图,借用一下:
上述代码在首页可实现子栏目及子栏目内容列表的调用!下面说说 channelartlist 标签在列表页及内容页的使用,
1、参数简介
channelartlist 标签暂时支持三个参数,分别为:
typeid='0' 限制上级栏目ID;也可以用top,支持“,”表示多个栏目
row='20' 循环的栏目数量,默认为20;
cacheid = '' 标签缓存ID,一般为空
但如果你只是将上述代码原封不动的复制粘贴到终极栏目页或内容页,是不会出现任何调用结果的,因为在标签 channelartlist 中,当typeid为空,则表示当前栏目,但是终极栏目列表和内容页是没有下级栏目的,所以就会出错!
2、调用实例
在终极列表页或内容页,正确的调用方法应该是以下的:
{dede:channelartlisttypeid='top'}
这里是typied='top',这个top值可以换为你想要的上级栏目ID,但绝对是不可以为空的,
管理资料
这个大家一定要注意!
3、栏目高亮、特效调用
在该标签下,可以直接分别用 {dede:field name='typename'/}与{dede:field name='typeurl'/}来表示栏目名称与栏目链接的,当然还有一些其它特殊的变量,这里也介绍一下,如:
{dede:field name='id'/}与{dede:field name='typeid'/} 均表示循环中的栏目ID;
{dede:global name='itemindex'} 表示循环递增变量,从1开始;
{dede:global name='itemparity'} 表示循环魔法变量,单数为1,双数为2;
以上就是可以在channelartlist中直接套用的,特别要注意的是第2、3两个,拥有这两个变量,可以轻松制作出各类非常个性的效果,例如栏目的隔行变色等。
关于这个栏目高亮,在 channelartlist.lib.php 并没有自带,但通过以下DIY可实现让当前栏目进行高亮。方法(以dedecms 5.6为例):
打开channelartlist.lib.php文件,找到如下代码:
$pv->Fields['typeurl'] = GetOneTypeUrlA(0ids[$i]);
在其下一行加入一下代码:
if(0ids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){
$pv->Fields['currentstyle'] = ' id=“pic_focus”';
}else{
$pv->Fields['currentstyle'] = '';
}
然后,就可以在模板中进行使用{dede:field name='currentstyle'/}进行调用了。
篇3:DedeCMS首页调用栏目内容和单页内容的方法
很多站长在套DEDE站的时候,可能一直被一个问题困惑,就是,如何将已经做成单页的栏目内容调用到首页来,
常用的需要调到首页来的单页内容,比如企业简介、联系我们等等内容,我们在首页可能都要进行体现。通过常规的方式,包括查阅dede官方论坛资料,都找不到比较合适的答案。今天我们就提供两种方式进行调用。
我们知道,单页内容的模板调用标签是 {dede:field.content/} ,经过试验,在首页使用
1
2
3
{dede:channelartlist}
{dede:field.content/}
{/dede:channelartlist}
进行调用,即可顺利的调出相关的数据。
但是我们发现,这种调用只能用于只有一个单页的情况,如果两个或者两个以上单页,该调用会将所有的单页内容堆叠显示出来。即使加type的ID进行限定也没有什么作用。难道只能这样被动吗?当然不必。
我们还可以使用SQL进行调用,这样以来灵活性大大提高了,可以调用任意一个ID的content内容了。
1
2
3
{dede:sql sql='Select content from dede_arctype where id=1'}
[field:content/]
{/dede:sql}
想调用那个栏目,只需要修改栏目的ID 就可以了,
dede站怎么在首页调用单页的内容?
1
2
3
{dede:sql sql=“SELECT aid,typeid,body FROM `dede_addonarticle` where typeid=2 ORDER BY `aid` DESC LIMIT 0 , 1”}
[field:body/]
{/dede:sql}
说明:其中typeid=2,栏目ID号,表示调用此ID栏目内的文章,换成aid=1则表示调用的aid为1的文章(具体哪篇文章aid是多少,要进数据库看,从后台看也可以),DESC表示排序,按从大到小排,换成ASC则按从小到大排序,LIMIT 0 , 1表示调用数量,也可以写成数量LIMIT 1,这个1代表调用的数量。
需要在首页加入栏目做成单页的内容,在论坛找了好多,没看到解决方法,自己试了一下,发现用很简单的代码就可以解决了。
在首页任何位置加入下列代码就成!
1
2
3
{dede:channelartlist type=“1”}
{dede:field.content/}
{/dede:channelartlist}
篇4:DedeCMS栏目的调用和单独内容页的调用
很多站长在套DEDE站的时候,可能一直被一个问题困惑,就是,如何将已经做成单页的栏目内容调用到首页来,
常用的需要调到首页来的单页内容,比如企业简介、联系我们等等内容,我们在首页可能都要进行体现。通过常规的方式,包括查阅dede官方论坛资料,都找不到比较合适的答案。今天我们就提供两种方式进行调用。
我们知道,单页内容的模板调用标签是 {dede:field.content/} ,经过试验,在首页使用
{dede:channelartlist } {dede:field.content/}{/dede:channelartlist }
进行调用,即可顺利的调出相关的数据。
但是我们发现,这种调用只能用于只有一个单页的情况,如果两个或者两个以上单页,该调用会将所有的单页内容堆叠显示出来。即使加type的ID进行限定也没有什么作用。难道只能这样被动吗?当然不必。
我们还可以使用SQL进行调用,这样以来灵活性大大提高了,可以调用任意一个ID的content内容了。
{dede:sql sql='Select content from dede_arctype where id=1'} [field:content/]{/dede:sql}
想调用那个栏目,只需要修改栏目的ID 就可以了。
dede站怎么在首页调用单页的内容?
{dede:sql sql=“SELECT aid,typeid,body FROM `dede_addonarticle` where typeid=2 ORDER BY `aid` DESC LIMIT 0 , 1”}[field:body /]{/dede:sql}
说明:其中typeid=2,栏目ID号,表示调用此ID栏目内的文章,换成aid=1则表示调用的aid为1的文章(具体哪篇文章aid是多少,要进 数据库看,从后台看也可以),DESC表示排序,按从大到小排,换成ASC则按从小到大排序,LIMIT 0 , 1表示调用数量,也可以写成数量LIMIT 1,这个1代表调用的数量,
需要在首页加入栏目做成单页的内容,在论坛找了好多,没看到解决方法,自己试了一下,发现用很简单的代码就可以解决了。
在首页任何位置加入下列代码就成!
{dede:channelartlist type=“1”} {dede:field.content/}{/dede:channelartlist}
type值改成自己需要提出内容栏目的值。
更正,以上代码只适用于单个单页有内容的情况下,如果有一个以上的单页有内容,上面的代码会把所有栏目的content里的内容都显示出来。
用sql代码则是万能的:
{dede:sql sql='Select content from dede_arctype where id=1'}[field:content/]{/dede:sql}
想提哪个栏目就修改为该栏目的id。
篇5:织梦DedeCMS频道页联动调用方法
最近想把行业做一个分类 ,分类调用到频道页面上去,发现直接调用是无法实现的!那怎么才能实现呢?方法如下:
行业的联动类别字段是:vocation。
为了方便大家看,我把vocation都改成 :“自定义联动类别字段名”, 相信大家能看的懂!
第一修改: include\taglib\infolink.lib.php
require_once(DEDEROOT.'/data/enums/infotype.php');下面添加
require_once(DEDEROOT.'/data/enums/自定义联动类别字段名.php');
function lib_infolink(&$ctag,&$refObj)
{
global $dsql,$nativeplace,$infotype,$自定义联动类别字段名,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite;
global $em_nativeplaces,$em_infotypes,$em_自定义联动类别字段名s; //看清楚,这里后面的个S
$fields = array('nativeplace'=>'','infotype'=>'','自定义联动类别字段名'=>'','typeid'=>0id, 'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'','linkeall自定义联动类别字段名'=>'');
$fields['nativeplace'] = $fields['infotype'] = $fields['自定义联动类别字段名'] = '';
============================================================
$fields['linkalltype'] = “不限”;
//下面添加一行
$fields['linkeall自定义联动类别字段名'] = “不限”;
==============================================================
搜索 if(is_array($ctp->CTags)) 在这句上面添加
//自定义联动类别字段链接
if(empty($自定义联动类别字段名))
{
foreach($em_自定义联动类别字段名s as $eid=>$em)
{
if($eid % 500 != 0) continue;
$fields['自定义联动类别字段名'] .= “ {$em}”;
}
}
else
{
$sontype = ( ($自定义联动类别字段名 % 500 != 0) ? $自定义联动类别字段名 : 0 );
$toptype = ( ($自定义联动类别字段名 % 500 == 0) ? $自定义联动类别字段名 : ( $自定义联动类别字段名-($membertype%500) ) );
$fields['自定义联动类别字段名'] = “{$em_自定义联动类别字段名s[$toptype]}”;
foreach($em_自定义联动类别字段名s as $eid=>$em)
{
if($eid < $toptype+1 || $eid >$toptype+499) continue;
if($eid == $自定义联动类别字段名) {
$fields['自定义联动类别字段名'] .= “{$em}”;
}
else {
$fields['自定义联动类别字段名'] .= “ {$em}”;
}
}
}
//以上文件修改完了!
第二修改:plus\list.php 文件
搜索 $infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype ); 在下面添加一句:
$自定义联动类别字段名 = ( (empty($自定义联动类别字段名) || !is_numeric($自定义联动类别字段名)) ? 0 : $自定义联动类别字段名 );
再搜索 if(!empty($infotype)) $cArr['infotype'] = $infotype; 在下面添加
篇6:DEDECMS搜索页调用arclist标签的方法
打开include/arc.searchview.class.php
查找:
require_once(DEDEINC.“/taglib/hotwords.lib.php”);require_once(DEDEINC.“/taglib/channel.lib.php”);
在下面加入:
require_once(DEDEINC.“/taglib/arclist.lib.php”); require_once(DEDEINC.“/taglib/channelartlist.lib.php”);
找到:
else if($tagname==“hotwords”) { $this->dtp->Assign($tagid,lib_hotwords($ctag,$this));}
在下面插入:
else if($tagname==“arclist”){ $this->dtp->Assign($tagid,lib_arclist($ctag,$this)); } else if($tagname==“channelartlist”) { $this->dtp->Assign($tagid,lib_channelartlist($ctag,$this)); }
这样就可在dedecms织梦搜索页面使用arclist和channelartlist标签调用数据了,
DEDECMS搜索页调用arclist标签的方法
,
篇7:织梦DedeCMS首页调用单页文档内容的实现方法
织梦DedeCMS首页调用单页文档内容的实现方法如下:
{dede:sqlsql=“SELECT body FROM `dede_sgpage` where aid = 3”}[field:bodyfunction=“htmlspecialchars(cn_substr(@me,100))”/]{/dede:sql}
其中:
{dede:sqlsql=“SELECT body FROM `dede_sgpage` where aid = 3”}
sql=“SELECT body ”这里面的body 就是文章内容;
FROM `dede_sgpage`这里的dede_sgpage就是单页文档存档的数据表,这是织梦5.6的,其它版本的根据表的名称需要自己定义了;
where aid = 3“这里的aid = 3就是我们的单页文档所在的id,我们需要调用哪个单页文档的内容,就把这个换成所在文档的id就可以了!
[field:bodyfunction=”htmlspecialchars(cn_substr(@me,100))“/]
field:body这里的body也是文章的内容;
(cn_substr(@me,100)这里的100 就是我们准备让内容显示的字数,这个是可以调整的,
织梦DedeCMS首页调用单页文档内容的实现方法
,
这样做出来的会发现有一个问题,html也被调用了出来。我们需要把它过滤掉,用下面的方法:
{dede:sqlsql=”SELECT body FROM `dede_sgpage` where aid = 3“}[field:bodyfunction=”htmlspecialchars(cn_substr(Html2text(@me),100))“/]{/dede:sql}
Html2text这个函数是去掉html标签的代码;
cn_substr(str,100)这个函数是截取字符串长度。
这样我们就可以调用单页文档内容了。
篇8:DedeCms实现其他页面调用单页文章内容
使用织梦DedeCms搭建网站的时候,也会用到单页面功能做些其他页面,下面这个方法通过SQL语句能实现在其他页面调用单页面文章内容,
以下是作者在 织梦DedeCms v5.6 GBK上面实验的!其它版本的估计得修改下 语句里面的表名称!
详细:
1、调用的语句
{Dede:sql sql=”SELECT body FROM `dede_sgpage` where aid = 7“ }
[field:body function=”htmlspecialchars(cn_substr(@me,130))“/]
{/dede:sql}
其中:
{dede:sql sql=”SELECT body FROM `dede_sgpage` where aid = 7“ }
sql=”SELECT body 这里的body 就是文章内容,FROM `dede_sgpage` 这里的dede_sgpage 这是单页文档存档的数据表,这是织梦DedeCms 5.6的,其它版本的根据表的名称自己定义,where aid = 7“ 这里的aid = 7 就是你单页文档所在的id,你需要调用哪个单页文档的内容,就把这个换成所在文档的id就是!
[field:body function=”htmlspecialchars(cn_substr(@me,130))"/]
field:body 这里的body如上,就是文章的内容,(cn_substr(@me,130) 这里的130 就是你准备让内容显示的字数,可以自己调整!
2、单页文档的处理(这个问题应该还可以完善的,具体你把下面看完)
采用上诉方法虽然可以成功调用,但是会出现一个问题,就是会把源代码也调用出来,这里就需要你手动一下了!
打开你需要调用的单页文档,在编辑器里面,点击查看源码!把你准备显示的字数前面多余的源码删除,其它的不管!比如你准备调用10个字,那么你就把10个字前面的源码删除,像
这样的删除就是!然后保存!记住:一定要以当前形式保存(就是处于源码编辑状态下保存,不然你会失败的)
改完后就可以生成看看是否调用成功了,
【dedecms列表页调用文章正文内容的方法】相关文章:






文档为doc格式