也想出现在这里? 联系我们

DedeCMS织梦arclist调用多图显示修改教程

作者 : 小编 本文共2965个字,预计阅读时间需要8分钟 发布时间: 2020-11-16 共1.58K人阅读
也想出现在这里? 联系我们

       经常逛新闻信息类移动站或APP会发现,首页或列表采用AJAX无限加载的方法,看到你不想看为止,每条新闻有一张或三张配图,从用户的角度,看图比看文字更有吸引力些,采用DedeCMS做新闻信息类也是非常受欢迎,但默认只能加载一张缩略图,看看实现三张配图的做法。

调用图集模型前三张图片做法

       打开/include/taglib/arclist.php,找到

$row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
$row['memberurl'] = $GLOBALS['cfg_memberurl'];
$row['templeturl'] = $GLOBALS['cfg_templeturl'];

       后面添加,根据自己的实际数据库前缀修改橙色字段

$arrs = $dsql->GetOne("SELECT imgurls FROM `dede_addonimages` WHERE aid={$row['id']} ");
if(is_array($arrs)){
 $m="/ddimg=\'(.*)\'/U";
 if(preg_match_all($m,$arrs['imgurls'],$pregArr)){
  $row['one']=preg_replace($m,'\\1',$pregArr[0][0]);
  $row['two']=preg_replace($m,'\\1',$pregArr[0][1]);
  $row['three']=preg_replace($m,'\\1',$pregArr[0][2]);
 }
}

       前台调用多张缩略图

{dede:arclist}
 <img src="[field:one/]" width="200" height="100"/> //第1张图片的地址
 <img src="[field:two/]" width="200" height="100"/> //第2张图片的地址
 <img src="[field:three/]" width="200" height="100"/> //第3张图片的地址
{/dede:arclist}

调用文章模型前三张图片做法

       文章模型能自动获取文章的第一张图为缩略图,也有些资源修改方法,这里介绍用频道内容模型管理增加自定义字段掉用多张图的方法,参考DedeCMS如何添加自定义字段与前台调用。

       如果后面需要增加说明性的文字,就需要在该字段的自定义表单HTML填写具体的HTML源代码,

自定义表单HTML用~name~表示提示文字,~form~表示表单元素

       前台用{dede:field.pic1/}调用,不是出现图片地址,而是出现

{dede:img text='' width='270' height='129'}http://www.vi586.com/uploads/101017/1-10101H21F54P.gif{/dede:img}

       这是DedeCMS处理方式的问题,参考文章DedeCMS内容页列表页调用自定义图片地址,创建 GetOneImgUrl函数,处理完了之后。

内容页调用多张缩略图

{dede:field.pic1 function='GetOneImgUrl(@me,0)'/}<!--调用完整HTML代码-->
<img src="{dede:field.pic2 function='GetOneImgUrl(@me,1)'/}/><!--只调用图片地址-->

列表页调用多张缩略图

       在该栏目列表下直接使用{dede:list}标签,在其他列表或首页用{dede:arclist}标签,需要配合addfields和channelid使用,如下:

{dede:arclist addfields='pic1,pic2' channelid='1'}
[field:pic1 function='GetOneImgUrl(@me,0)'/] <!--调用完整HTML代码-->
[field:pic2 function='GetOneImgUrl(@me,1)'/] <!--只调用图片地址-->
{/dede:arclist}

调用文章、图集模型第1,2,3张图片另一实现方法

       打开include/extend.func.php,在最下面添加代码:橙色部分是该栏目所在的数据表,根据实际情况修改

//取第一张地址
function GetFirstImg($arcid){
global $dsql;
$query= "SELECT anlsm FROM `dede_addon7` where aid='$arcid'";
$row = $dsql->GetOne($query);
$preg = "/<img.*?src=[\'\"](.+?)[\'\"].*?>/i";
preg_match_all($preg, $row['anlsm'], $match);
//print_r($match);
return $match[1][0];
}

//取第二张地址
function GetSecImg($arcid){
global $dsql;
$query= "SELECT anlsm FROM `dede_addon7` where aid='$arcid'";
$row = $dsql->GetOne($query);
$preg = "/<img.*?src=[\'\"](.+?)[\'\"].*?>/i";
preg_match_all($preg, $row['anlsm'], $match);
//print_r($match);
return $match[1][1];
}

//取第三张地址
function GetThirImg($arcid){
global $dsql;
$query= "SELECT anlsm FROM `dede_addon7` where aid='$arcid'";
$row = $dsql->GetOne($query);
$preg = "/<img.*?src=[\'\"](.+?)[\'\"].*?>/i";
preg_match_all($preg, $row['anlsm'], $match);
//print_r($match);
return $match[1][2];
}

        打开include/taglib/arclist.lib.php,找到如下代码(大概在第514行):

$row['fulltitle'] = $row['title'];

        在下面添加代码:

$row['firstimgurl'] = GetFirstImg($row['id']);
$row['secondimgurl'] = GetSecImg($row['id']);
$row['thirdimgurl'] = GetThirImg($row['id']);

       调用标签为:

<img src="[field:firstimgurl/]" />//第一张图片
<img src="[field:secondimgurl/]"/>//第二张图片
<img src="[field:thirdimgurl/]"/>//第三张图片

       如果你自定义的字段中没图片,获取的地址就是空的。

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » DedeCMS织梦arclist调用多图显示修改教程

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html

发表评论

Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
开通VIP 享更多特权,建议使用QQ登录