DEDECMS 是一款非常受欢迎的建站系统,拥有庞大的用户群体。然而,它也存在一些小问题或功能不足的情况。例如,在 DEDECMS 模板中,我们经常需要实现一个功能:栏目列表不仅通过文字展示产品,还需要使用缩略图来增强视觉效果。如果缺少这项功能,可能会显得不够直观和美观。尽管网上有很多关于实现该功能的教程,但很多方法都存在问题。经过反复测试和研究,以下是一个基本可行的解决方案。


第一步:新增字段 typeimg

在数据库中新增一个字段用于存储栏目图片路径。执行以下 SQL 语句:


alter table `dede_arctype` add `typeimg` char(100) NOT NULL default '';
    

第二步:修改相关文件

接下来需要修改以下几个文件以支持新字段:

  • dede/catalog_add.php
  • dede/catalog_edit.php
  • dede/templets/catalog_add.htm
  • dede/templets/catalog_edit.htm

修改 dede/catalog_add.php 文件

打开该文件并找到以下代码:


$queryTemplate = "insert into `dede_arctype`
    

将以下内容:


(reid,topid,sortrank,typename,typedir,
    

替换为:


(reid,topid,sortrank,typename,typedir,typeimg,
    

同时,将以下代码:


('~reid~','~topid~','~rank~','~typename~','~typedir~',
    

替换为:


('~reid~','~topid~','~rank~','~typename~','~typedir~','~typeimg~',
    

修改 dede/catalog_edit.php 文件

打开该文件并找到以下代码:


$upquery = "Update `dede_arctype` set
    

在其下方新增一行:


`typeimg`='$typeimg',
    

修改 dede/templets/catalog_add.htm 文件

找到以下代码:



列表命名规则:


帮助

    

在其下方新增以下代码:



栏目图片:





    

并在文件的 head 部分增加以下内容:



    

修改 dede/templets/catalog_edit.htm 文件

在适当位置插入以下代码:



栏目图片:





    

同样,在文件的 head 部分增加以下内容:



    

模板调用方式

经过以上设置后,直接使用 {dede:field.typeimg /} 可能无法正常调用数据。因此,可以改用 SQL 查询的方式实现调用:


{dede:sql sql="SELECT typename,typedir,typeimg FROM dede_arctype"}
  • [field:typeimg/]
  • {/dede:sql}

    这样即可成功调用栏目缩略图。如果需要调用子栏目 ID,只需在 SQL 查询中添加相应的条件即可。