如何在DedeCMS列表页中实现有图则调用缩略图,无图则留空?
- 行业动态
- 2024-10-13
- 1
在DedeCMS列表页,使用以下代码调用缩略图,若无图则留空:,,“ html,{dede:list pagesize='10'}, [field:textrun function="GetTopImage(@me)"/],{/dede:list},“
本文将介绍如何在DedeCMS(织梦内容管理系统)的列表页中调用缩略图,如果文章没有图片则留空,我们将从以下几个方面进行讲解:
1、修改列表模板文件
2、编写自定义函数
3、在列表模板中调用自定义函数
4、相关问答FAQs
修改列表模板文件
我们需要找到并编辑列表模板文件,通常情况下,这个文件位于/templets/default/list_article_index.htm,如果你使用的是其他模板,请根据实际情况找到对应的文件。
编写自定义函数
我们需要在/include/arc.listview.class.php文件中编写一个自定义函数,打开该文件,找到GetSpecial()函数,然后在其下方添加如下代码:
function GetThumbnail($id, $width = '', $height = '', $is_watermark = false) { global $dsql; $row = $dsql>GetOne("SELECT litpic FROM#@__archives WHERE id='$id'"); if ($row['litpic']) { $imgurl = '/uploads/'.$row['litpic']; } else { $imgurl = ''; } return $imgurl; }
这个函数的作用是获取指定文章ID的缩略图地址,如果没有缩略图,返回空字符串。
在列表模板中调用自定义函数
我们需要在列表模板文件中调用刚刚编写的自定义函数,找到以下代码:
<a href="{$r[0]['typedir']}/{if $r[0]['filename']}$r[0]['filename']{else}article/default.html{/if}" target="_blank">
将其替换为:
<a href="{$r[0]['typedir']}/{if $r[0]['filename']}$r[0]['filename']{else}article/default.html{/if}" target="_blank"> {if $r[0]['litpic'] != ''}<img src="{dede:field name='dede:GetThumbnail(@me)' function='htmlspecialchars(addslashes(@me))'/}" alt="" width="80" height="80" />{/if} </a>
这样,当文章有缩略图时,会在链接前显示缩略图;如果没有缩略图,则不显示任何内容。
相关问答FAQs
h3 如何修改缩略图的尺寸?
在列表模板中调用自定义函数的代码中,我们设置了缩略图的宽度和高度分别为80像素,你可以通过修改这两个值来调整缩略图的尺寸,将宽度和高度都改为100像素:
<a href="{$r[0]['typedir']}/{if $r[0]['filename']}$r[0]['filename']{else}article/default.html{/if}" target="_blank"> {if $r[0]['litpic'] != ''}<img src="{dede:field name='dede:GetThumbnail(@me)' function='htmlspecialchars(addslashes(@me))'/}" alt="" width="100" height="100" />{/if} </a>
h3 如何为缩略图添加水印?
在GetThumbnail()函数中,我们设置了一个名为$is_watermark的参数,默认值为false,你可以将其设置为true,然后根据需要添加水印功能,你可以在/include/helpers/image.helper.php文件中添加如下代码:
function thumb($src, $width, $height, $is_watermark = false) { // ...原有代码... if ($is_watermark) { // 添加水印的代码 } // ...原有代码... }
然后在GetThumbnail()函数中传递$is_watermark参数:
function GetThumbnail($id, $width = '', $height = '', $is_watermark = false) { // ...原有代码... return thumb($imgurl, $width, $height, $is_watermark); }
在列表模板中调用自定义函数时,将$is_watermark参数设置为true:
<a href="{$r[0]['typedir']}/{if $r[0]['filename']}$r[0]['filename']{else}article/default.html{/if}" target="_blank"> {if $r[0]['litpic'] != ''}<img src="{dede:field name='dede:GetThumbnail(@me, 100, 100, true)' function='htmlspecialchars(addslashes(@me))'/}" alt="" width="100" height="100" />{/if} </a>
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/124347.html