当前位置:首页 > 行业动态 > 正文

如何实现在织梦文章列表中仅显示有缩略图的文章?

在织梦后台,进入文章列表模板,找到缩略图标签并设置条件判断。如果文章有 缩略图则显示,否则不显示。

在织梦(DedeCMS)系统中,文章列表显示缩略图是一个常见的需求,如果文章有缩略图,则显示缩略图;如果没有,则不显示,这可以通过修改模板文件来实现,下面将详细介绍实现这一功能的步骤和相关代码。

步骤一:找到并编辑列表模板文件

你需要找到用于生成文章列表的模板文件,这个文件通常位于/templets/default/ 目录下,文件名可能是list_article.htm 或其他类似名称,具体位置可能因模板不同而有所变化。

步骤二:修改模板文件中的代码

打开你找到的模板文件,查找到输出缩略图的地方,通常这部分代码会包含{dede:field name='litpic'/} 标签,我们需要在这个标签前后添加一些条件判断语句,以确保只有当缩略图存在时才输出。

{dede:arclist typeid='1' row='10'}
    <li>
        <!标题 >
        <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
        
        <!缩略图 >
        <!添加条件判断 >
        {dede:field name='litpic' function='GetAttSrc(@me)'}
            <img src="[field:litpic/]" alt="[field:title/]" />
        {/dede:field}
        
        <!描述 >
        <p>[field:description function='cn_substr(@me, 150)'/]</p>
        
        <!发布日期 >
        <p>[field:pubdate function='MyDate("Ymd",@me)'/]</p>
    </li>
{/dede:arclist}

步骤三:编写自定义函数

在上面的代码中,我们使用了一个自定义函数GetAttSrc 来判断缩略图是否存在,你需要在include/arc.archives.class.php 文件中添加这个函数的定义。

function GetAttSrc($litpic) {
    if ($litpic != '' && file_exists(dirname(__FILE__).__PATHINFO__ . $litpic)) {
        return $litpic;
    } else {
        return '';
    }
}

这个函数检查缩略图文件是否存在,如果存在则返回文件路径,否则返回空字符串,这样在模板文件中就可以根据函数的返回值决定是否显示缩略图。

步骤四:更新缓存

完成以上步骤后,记得更新系统的缓存,以便新的设置生效,你可以在后台管理界面中找到“更新系统缓存”功能,点击即可。

FAQs

问题1:如何修改其他模板文件以实现相同的功能?

答案: 其他模板文件的修改方法类似,你需要找到相应的模板文件,定位到输出缩略图的地方,然后按照上述步骤添加条件判断和自定义函数,不同的模板可能需要调整具体的标签和字段名称。

问题2:如果缩略图不存在,如何显示一个默认图片?

答案: 你可以使用else 分支来处理这种情况,在自定义函数中,如果缩略图不存在,可以返回一个默认图片路径,修改GetAttSrc 函数如下:

function GetAttSrc($litpic) {
    if ($litpic != '' && file_exists(dirname(__FILE__).__PATHINFO__ . $litpic)) {
        return $litpic;
    } else {
        return 'path/to/default/image.jpg'; // 默认图片路径
    }
}

然后在模板文件中,只需简单地调用这个函数即可:

{dede:field name='litpic' function='GetAttSrc(@me)'}
    <img src="[field:litpic/]" alt="[field:title/]" />
{/dede:field}

这样,当没有缩略图时,就会显示指定的默认图片。

为了实现在织梦(Dedecms)文章列表中根据是否有缩略图来显示或隐藏缩略图,可以通过以下步骤进行操作:

步骤 1:检查文章是否有缩略图

你需要确定如何识别文章是否有缩略图,在织梦系统中,通常缩略图是以附件形式存储的,以下是一个简单的检查方法:

function has_thumbnail($aid) {
    // 检查文章附件中是否有名为"pic.jpg"的图片
    $result = $dsql>GetOne("SELECT COUNT(*) FROM#@__archives WHERE aid='$aid' AND litpic<>''");
    return $result > 0;
}

步骤 2:修改模板文件

你需要修改织梦模板文件中的相关代码,使其根据文章是否有缩略图来显示不同的内容。

2.1 找到文章列表模板

在织梦模板目录中找到包含文章列表的模板文件,通常是list_article.asp 或list_article.php。

2.2 修改模板代码

在模板文件中,找到文章列表的循环部分,通常是while 循环,以下是一个修改示例:

如果是 ASP 模板:

<% 
dim hasThumb 
if has_thumbnail(#aid#) then 
    hasThumb = "hasthumb" 
else 
    hasThumb = "" 
end if 
%>
<div >
    <!文章内容 >
</div>

如果是 PHP 模板:

<?php
$hasThumb = has_thumbnail($aid) ? 'hasthumb' : '';
?>
<div >
    <!文章内容 >
</div>

2.3 添加样式

为了使缩略图显示或不显示,你可能需要在CSS中添加相应的样式:

.hasthumb .thumbnail {
    display: block;
}
.nothumb .thumbnail {
    display: none;
}

步骤 3:测试模板

保存模板文件,并在织梦后台更新缓存后查看文章列表,检查缩略图是否根据文章是否有缩略图而正确显示或隐藏。

步骤应该可以帮助你实现在织梦文章列表中根据是否有缩略图来显示或隐藏缩略图的功能。

0