dedecms织梦增加栏目缩略图、栏目图片功能的方法

网站每个栏目都有不同的banner大图,为了方便客户可以直接在后台栏目处添加或更换这个栏目图片,我们需要给dedecms二次开发,增加栏目图片上传选项。增加栏目图片或缩略图的情况,是为了父级栏目下调用子级栏目的图片,显得网站高大上,页面美观。

1.先给数据库中的dede_arctype表增加一个字段

后台 - 系统 - 系统设置 - SQL命令行工具

ALTER TABLE `dede_arctype` ADD `typeimg` CHAR( 255 ) NOT NULL DEFAULT '';

2.打开 \dede\templets\catalog_add.htm 搜索

name="typename"

在它的下面加入

  图片地址:

3.打开 \dede\templets\catalog_edit.htm 搜索

name="typename"

在它的下面加入

  图片地址:

4.打开 \dede\catalog_add.php 搜索

$$in_query = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename

改成

$$in_query = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename,typeimg

继续搜索

VALUES('$$reid','$$topid','$$sortrank','$$typename'

改成

VALUES('$$reid','$$topid','$$sortrank','$$typename','$$typeimg'

5.打开 \dede\catalog_edit.php 搜索

`smalltypes`='$$smalltypes'

改成

`smalltypes`='$$smalltypes',`typeimg`='$$typeimg'

6.打开 \include\taglib\channelartlist.lib.php 搜索

typedir

改成

typedir,typeimg

7.打开 \include\taglib\channel.lib.php 搜索

typedir

改成

typedir,typeimg

注意:这个文件有4处都需要改

8.打开 \include\taglib\type.lib.php 搜索

typedir

改成

typedir,typeimg

9.\include\arc.listview.class.php 搜索

//设置环境变量

在它下面添加

$$this->Fields['typeimg'] = $$this->TypeLink->TypeInfos['typeimg'];

后台栏目效果

前台模板中调用标签

{dede:channelartlist}{dede:field.typeimg/}{/dede:channelartlist}

{dede:channel}[field:typeimg/]{/dede:channel}

{dede:type}[field:typeimg/]{/dede:type}

栏目列表页单独调用

{dede:field.typeimg/}


如果内容页也调用,需要修改以下代码

如果想同时在文章内容页调用栏目图片打开,这就需要我们再修改一个文件,文件位置是:\include\arc.archives.class.php

查找

if($$this->ChannelUnit->ChannelInfos['issystem']!=-1)

$$query = “Select arc.*,tp.reid,tp.typedir,ch.addtable

from `dede_archives` arc

left join dede_arctype tp on tp.id=arc.typeid

left join dede_channeltype as ch on arc.channel = ch.id

where arc.id=’$$aid’ “;

$$this->Fields = $$this->dsql->GetOne($$query);

替换为:

$$query = “Select arc.*,tp.reid,tp.typedir,tp.typeimg,ch.addtable

from `dede_archives` arc

left join dede_arctype tp on tp.id=arc.typeid

left join dede_channeltype as ch on arc.channel = ch.id

where arc.id=’$$aid’ “;

$$this->Fields = $$this->dsql->GetOne($$query);

保存文件即可。


+