DEDE如何在文章页调用相关文章列表
Dedecms的标签调用的是有区域限制的,一些标签只能在文章页和首页以及频道页才能调用,但是单页面也想调用“最新文章”等一些文章列表,如果是用{dede:arclist} {dede:arclist /}这些标签肯定是调用不了的,哪要怎么办呢这个不用怕,这个问题dedecms早就想到了,在dedecms中有个“宏标签”功能,用这个功能可以实现全站调用。
宏标签的设置:
打开dedecms后台——>模板-->自定义宏标签-->智能标志向导
1 选择一个你要的列表样式
2 设置“调用栏目”,这里不用说了,就是想要调用的栏目。
3 设置调用显示列表的文章条数,显示列数,标题长度,不过不设置也没事,回头想改还可以更改的。
4 提取特定文档,如果你有需要调用特定的文章就要选择一下,如果么有,就不用选择。
5 单条记录样式,这个有点重要,现在文章列表很多都是用<li></li>标签来做的,但是这里默认不是,如果你要在调用的时候适合你的页面,你需要自己修改一下,怎么修改
这里示范一下,
默认的标签:
修改为<li></li>标签对的:
还有很多功能,自己看支持字段。
6“生成模版调用标记”
7保存为自定义标记,这个很重要,一定要保存才可以了。要不下一步就么有内容可以做。
8回到模板-->自定义宏标记 ,可以看到刚才保存的宏标记,如果不保存,这里是没有的。
9点击“js调用”进行js调用代码提取
10将刚才复制的那段js代码粘贴到你要的地方即可
宏标签调用到此完成。
1、首先登录织梦网站后台,点击:系统—>SQL命令行工具(如图所示)。
2、打开SQL命令运行器,运行代码:ALTER TABLE `数据表前缀_archives` MODIFY COLUMN `keywords` char(168)(如图所示)。
3、找到article_editphp、article_addphp文件(如图所示)。
4、打开文件article_addphp,并找到代码:$keywords = cn_substrR($keywords,60),然后把数字60改成168(如图所示)。
5、打开文件article_editphp,并找到代码:$keywords = trim(cn_substrR($keywords,60));然后把数字60改成168,织梦程序修改标签限制字数就可以了。
通常dedecms列表和内容页可以利用系统内置标签[field:description/]来调用,但有时候后台文章摘要需要其它用处,那么这个时候需要调用部分文章正文内容做为摘要显示
步骤和方法
本操作需要用户对DedeCMS系统有较高的了解,如果您感觉自己不太掌握,可以考虑选择官方安全相关服务
步骤和方法
进入后台 核心 -> 频道模型 -> 内容模型管理 -> 普通文章 -> 更改
调用代码:
{dede:list pagesize='10'}
[field:body/]
[field:title/]
{/dede:list}
将内容转化为文字格式并截取字符串[field:body function='cn_substr(html2text(@me),600)'/]
在后台显示的话就需要把每一个作者以创建独立ID形式,在后台显示(看下图)
在后台就是这样看当前id的内容,前台的话怎么调用呢 ,往下看
dede本身是支持调用当前作者或指定作者发布的文章的, 调用方法如下:
{dede:arclist writer='this' typeid='top'}[field:textlink /]<br />
{/dede:arclist}
参数说明:
writer='this' 表前当前文章的作者,你也可以指定任意的ID(数字ID),如 writer='10'
typeid='top' 考虑到投稿文章可能比较少,用这属性是调用作者所有的最新文章, 如果不指定此属性, 则调用作者在文章所在栏目内发表的文章
[field:litpic /]或者{dede:fieldlitpic /}
<!--这是调用文章缩略图的标签,前面的是在arclist等列表标签中调用的,后者是在文档内容页面调用文档详细信息中用的,本经验来自IT零五网-->
{dede:field name='imgurls' alt='输出区'}
[field:pagestyle runphp='yes'] @me= (@me==3 '<li>' : '');[/field:pagestyle]
<a href='[field:linkurl/]' [field:pagestyle runphp='yes'] @me= (@me==3 'class="pic"' : ''); [/field:pagestyle]>
<img src='[field:imgsrc/]' id='bigimg' [field:imgwidth /] alt='[field:alttext /]' border='0' />
</a>
<a href='[field:linkurl/]' [field:pagestyle runphp='yes']@me = (@me==3 'class="title"' : '');[/field:pagestyle]>
[field:title /]
</a>
[field:pagestyle runphp='yes'] @me = (@me==3 '</li>' : ''); [/field:pagestyle]
{/dede:field}
<!--上面是图集内容输出的标签,本经验来自IT零五网-->
打开include/commonfuncphp文件
在最后的>之前加上
//统计栏目文章数
function GetTotalArc($tid){
global $dsql;
$sql = GetSonIds($tid);
$row = $dsql->GetOne("Select count(id) as dd From dede_archives where typeid in({$sql})");
return $row['dd'];
}
然后就可以在模板上用
{dede:channel type='son' row='20'}
<dl><a href='[field:typelink/]'>[field:typename/]</a>(<span>[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]) </dl>
{/dede:channel} 进行调用,[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]这个就是调用的总数
修改inlcude下的arclistviewclassphp文件
搜索
if($row = $this->dsql->GetArray("al"))
在下面的大括号内添加几行代码
$query = "Select body From `#@__addonarticle`where aid =$row[id] ";
$this->dsql->SetQuery($query);
$this->dsql->Execute();
$temp=$this->dsql->GetArray());
$row['body']=$temp['body'];
然后在直接使用[field:body/]即可
可能不同版本的代码不太一样.你先试试吧
0条评论