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>
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1212006.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复