青岛做网站
新闻动态

织梦自定义字段图片如何只调用纯图片路径及给频道标签加limit属性

2019-10-26来源:青岛做网站
我们在使用织梦dedecms进行二次开发时常常会遇到需要自定义字段上传图片或者为channelartlist、channel标签添加limit属性。今天笔者就跟大家分享一下如何进行二次开发和调整。
第一:织梦自定义字段图片如何只调用纯图片路径
我们在调用自定义图片字段时调取的其实不是正确的图片地址,而是类似于
{dede:img text='' width='270' height='129'} /uploads/111026/1-11102H21F54P.gif {/dede:img}这样的格式!
非常明显,这样是不能正确显示的,而是包含li标签的一大段代码,这是因为调用附加图片字段时解析了系统模板里面的channel_article_image.htm造成的。要解决这个问题方案如下:
打开/templets/system /channel_article_image.htm可以看到如下内容:
将其修改为
[field:imgsrc/] 
或者是在文章页调用的时候直接调用底层模板
{dede:field.字段名} {/dede:field.字段名}
第二:如何给dedecms标签channelartlist和channel加limit属性
dedecms中channelartlist、channel 标签不支持limit属性,下面就分享一下如何使这两个标签也支持limit属性。
 
给channel标签 加limit属性
 
首先请大家打开include/taglib/channel.lib.php文件,然后找到
 
1、在$line = empty($row) ? 100 : $row;
 
在它的下面加上下面代码
 
//limit条件
 
$limit = trim(eregi_replace('limit','',$limit));
 
if($limit!=''){
 
$limit = " $limit ";
 
}else{
 
$limit = " limit 0,$line ";
 
}
 
2、然后把下面的
 
if($type=='top')
 
{
 
$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
 
From `80php_arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";
 
}else if($type=='son')
 
{
 
if($typeid==0) return '';$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
 
From `80php_arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit $limit ";}
 
else if($type=='self'){
 
if($reid==0) return '';$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
 
FROM `80php_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
 
}
 
将limit 0, $line 改成 limit $limit
 
3、使用方法:
 
{dede:channel type='son' typeid=68 limit='0,6'}
 
[field:typename/]
 
{/dede:channel}
 
给channelartlist标签 加limit属性
 
channelartlist标签在5.7中只有row属性,如果是需要频道页面样式比较独特的网站,不能够满足循环调用的需求,所以,给它加上limit属性就好了。 给这个标签加limit属性也非常容易,dedecms的程序优点就在于扩展。
 
1、打开include/taglib/channelartlist.lib.php文件,约62行处,在下面加一行
 
if(empty($totalnum)) $totalnum = 20;
 
if(!empty($limit)) $totalnum = $limit;
 
这样,如果有limit属性的话,就可以用limit属性来控制调用的记录数量了。