在我们用DEDECMS系统时发现一个功能是没有的,就是栏目缩略图无法添加。为了自己建站方便是网站搜罗到这个功能添加的方法。
dedecms网站管理系统,默认的文章包含有缩略图选项,可以直接上传录入。
但实际使用中,我们发现作为栏目来说,必要的缩略图也是必不可少的,所以本文详细介绍了如何快速给栏目增加缩略图。
1.“系统->SQL命令工具” , 插入sql语句:
先在数据库arctype表中增加一个typeimg的字段
alter table dede_arctype add typeimg varchar(100)
打开 dede/catalog_add.php 大概在第 65 行,在
$queryTemplate = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename, 后面加上 typeimg, 即为
$queryTemplate = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename,typeimg,
VALUES('~reid~','~topid~','~rank~','~typename~','~typedir~', 后面加上 '~typeimg~', 即为
VALUES('~reid~','~topid~','~rank~','~typename~','~typedir~','~typeimg~',
大概第 228 行,
$in_query = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename,typedir, 后面加上 typeimg, 即为
$in_query = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename,typedir,typeimg,
VALUES('$reid','$topid','$sortrank','$typename','$typedir', 后面加上 '$typeimg', 即为
VALUES('$reid','$topid','$sortrank','$typename','$typedir','$typeimg',
打开 catalog_edit.php 大概在 43 行 typedir='$typedir', 下面加上 typeimg='$typeimg',
$upquery = "UPDATE `#@__arctype` SET
issend='$issend',
sortrank='$sortrank',
typename='$typename',
typedir='$typedir',
typeimg='$typeimg',
isdefault='$isdefault',
defaultname='$defaultname',
issend='$issend',
ishidden='$ishidden',
channeltype='$channeltype',
tempindex='$tempindex',
templist='$templist',
temparticle='$temparticle',
namerule='$namerule',
namerule2='$namerule2',
ispart='$ispart',
corank='$corank',
description='$description',
keywords='$keywords',
seotitle='$seotitle',
moresite='$moresite',
`cross`='$cross',
`content`='$content',
`crossid`='$crossid',
`smalltypes`='$smalltypes'
$uptopsql
WHERE id='$id' ";
大概在 137 行 typedir='$typedir', 下面加上 typename='$typename',
$upquery = "UPDATE `#@__arctype` SET
issend='$issend',
sortrank='$sortrank',
typedir='$typedir',
typename='$typename',
isdefault='$isdefault',
defaultname='$defaultname',
ispart='$ispart',
corank='$corank' $uptopsql
WHERE id='$id' ";
打开 include/arc.archiver.class.php 大概在 77 行
$query = "SELECT arc.*,tp.reid,tp.typedir, 后面加上 tp.typeimg, 即为
$query = "SELECT arc.*,tp.reid,tp.typedir,tp.typeimg,
至此,程序部分的修改意见完成。接下来修改模版部分。打开
dede/templets/catalog_add.htm 大概在 499 行后面加上
<script type="text/javascript" src="js/main.js"></script>
<tr>
<td height="65" style="padding-left:10px;">栏目图片:</td>
<td>
<input name="typeimg" type="text" style="width:250px" id="typeimg" class="alltxt" value="<?php echo $myrow['typeimg']?>" />
<input type="button" name="set9" value="浏览... "class="coolbg np" style="width:60px" onClick="SelectImage('form1.typeimg')" />(栏目模板里用{dede:field.typeimg /}调用)
</td>
</tr>
打开
dede/templets/catalog_edit.htm 大概在 406 行后面加上
<script type="text/javascript" src="js/main.js"></script>
<tr>
<td height="65" style="padding-left:10px;">栏目图片:</td>
<td>
<input name="typeimg" type="text" style="width:250px" id="typeimg" class="alltxt" value="<?php echo $myrow['typeimg']?>" />
<input type="button" name="set9" value="浏览... "class="coolbg np" style="width:60px" onClick="SelectImage('form1.typeimg')" />(栏目模板里用{dede:field.typeimg /}调用)
</td>
</tr>
保存之后,栏目模板里用{dede:field.seotitle /}调用即可。
调用栏目通边 channel 标签调用,所以要更改, 进入/include/taglib/channel.lib.php文件,找到78行,把以下的代码替换默认(添加typeimg字段查询)
if($type=='top')
{
$sql = "SELECT id,typename,typedir,typeimg,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
From `#@__arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";
}
else if($type=='son')
{
if($typeid==0) return '';
$sql = "SELECT id,typename,typedir,typeimg,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
From `#@__arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit 0, $line ";
}
else if($type=='self')
{
if($reid==0) return '';
$sql = "SELECT id,typename,typedir,typeimg,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `#@__arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
}
调用:
{dede:channel type='son' row='10' typeid="2"}
<div class="w-prd-list-cell">
<div class="w-prd-list-cell-in">
<div class="w-prd-con">
<div class="w-prd-imgbox" title="[field:title /]"> <a target="_self" href="[field:typelink/]" class="img-count w-prd-img">
<div class="aspectRatio" style="padding-bottom:100%"></div>
<div class="img-count-in"><img alt="[field:typename /]" src="[field:typeimg/]" /></div>
</a> </div>
<div class="w-prd-infobox" style="text-align:center">
<h2 class="w-prd-name" title="[field:typename /]">
<a target="_self" href="[field:typelink/]">[field:typename/]</a>
</h2>
</div>
</div>
</div>
</div>
{/dede:channel}