php,{dede:field name='字段名'/},
`,,将
字段名`替换为实际的自定义图片字段名称。 在dedecmsV5.7中,调用自定义图片字段的方法主要涉及修改系统文件和创建自定义函数,以下是详细的步骤和方法:
修改系统文件以解决调用问题
1、修改img.lib.php:打开/include/taglib/channel/img.lib.php
文件,找到$innerTmp = $arcTag>GetInnerText();
这一行,将其修改为$innerTmp = ($arcTag=="") ? trim($arcTag) : trim($arcTag>GetInnerText());
。
2、修改channel_article_image.htm:打开/templets/system/channel_article_image.htm
文件,将内容修改为[field:imgsrc/]
或在文章页调用时直接调用底层模板{dede:field.字段名}
。
3、处理无图片情况:如果图片为空,默认会显示“无图片信息!”,可以修改include/taglib/channel/img.lib.php
,将return "无图片信息!";
替换为return "<a href='javascript:()'><img width='503' height='411' src='/images/defaultpic.gif'></a>";
。
创建自定义函数以调用图片地址
1、创建GetOneImgUrl函数:在/include/extend.func.php
文件中添加以下代码:
function GetOneImgUrl($img, $ftype = 1) { if ($img <> '') { $dtp = new DedeTagParse(); $dtp>LoadSource($img); if (is_array($dtp>CTags)) { foreach ($dtp>CTags as $ctag) { if ($ctag>GetName() == 'img') { $width = $ctag>GetAtt('width'); $height = $ctag>GetAtt('height'); $imgurl = trim($ctag>GetInnerText()); $img = ''; if ($imgurl != '') { if ($ftype == 1) { $img .= $imgurl; } else { $img .= '<img src="' . $imgurl . '" width="' . $width . '" height="' . $height . '" />'; } } } } } $dtp>Clear(); return $img; } }
2、调用自定义函数:使用标签[field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/]
进行调用,如果自定义图片字段名为nextimg
,则调用方式为[field:nextimg function='GetOneImgUrl(@me,1)'/]
。
FAQs
1、Q: 如何在列表页正确调用附加的图片字段?
A: 需要在/include/taglib/channel/img.lib.php
文件中进行修改,将$innerTmp = $arcTag>GetInnerText();
改为$innerTmp = ($arcTag=="") ? trim($arcTag) : trim($arcTag>GetInnerText());
,确保在dede_channeltype
表的listfields
字段中添加了附加字段名称。
2、Q: 如何处理图片为空时的显示问题?
A: 可以通过修改include/taglib/channel/img.lib.php
文件,将return "无图片信息!";
替换为return "<a href='javascript:()'><img width='503' height='411' src='/images/defaultpic.gif'></a>";
来显示一个默认图片。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。