dede是最近这几年兴起的CMS系统对于不少朋友来说都是再熟悉不过了,而且现在也有很多企业在用,因为他简单,方便,强大。

在有些时候我们希望栏目能够添加各自的缩略图,dede本身是不带这个功能的,需要修改其内部文件,

以下都是亲测可行之后记录下来的,给大家参考

1、修改数据库中栏目表结构,运行sql语句

ALTER TABLE `dede_arctype` ADD `typeimg` CHAR(200) NOT NULL

2、dede/catalog_add.php

查找“$in_query” 在 sql语句中添加“typeimg”字段,结果改为

$in_query = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype,
    tempindex,templist,temparticle,modname,namerule,namerule2,
    ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`,`typeimg`)
    VALUES('$reid','$topid','$sortrank','$typename','$typedir','$isdefault','$defaultname','$issend','$channeltype',
    '$tempindex','$templist','$temparticle','default','$namerule','$namerule2',
    '$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes','$typeimg')";

3、dede/catalog_edit.php

搜索“$upquery”找到第一个位置,加入字段 

 

  

接下来改这两个文件的模板

4、dede/templets/catalog_add.htm

搜索“SEO” 在这个tr之前加如一个表格行

<!---栏目缩略图--->
<tr>
<td height="65" style="padding-left:10px;">栏目图片:</td>
<td>
<input name="typeimg" type="text" style="width:250px;margin-left:0px;filter: alpha(opacity=100);-moz-opacity: 1;opacity: 100.0;cursor: normal;" id="typeimg" class="alltxt" value=""/>
<input type="button" name="set9" value="浏览... "class="coolbg np" style="width:60px" onClick="SelectImage('form1.typeimg','');" />
</td>
</tr>
<!---栏目缩略图--->

 

head区域调用script (改文件已经存在 直接调用)

<script language='javascript' src="js/main.js"></script>

5、dede/templets/catalog_edit.htm

加入如下代码

<!---栏目缩略图--->
<tr>
<td height="65" style="padding-left:10px;">栏目图片:</td>
<td>
<input name="typeimg" type="text" style="width:250px;margin-left:0px;filter: alpha(opacity=100);-moz-opacity: 1;opacity: 100.0;cursor: normal;" 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','');" />
</td>
</tr>
<!---栏目缩略图--->

同样要在head区域引入js/main.js

  

6、栏目页调用栏目图片实现

include/taglib/channel.lib.php

搜索“select” 在搜索结果中 只要不是 “select *” 的 都需要在字段中加入 “typeimg” 一共4处需要修改

 

7、内容页调用当前栏目图片

include/arc.archives.class.php 

搜索“如果当前文档不是系统模型,为单表模型” 

在下面的sql语句中加入搜索字段“,tp.typeimg”,改后结果为

  
// 如果当前文档不是系统模型,为单表模型
$query = "SELECT arc.*,tp.reid,tp.typedir,tp.typeimg,ch.addtable
FROM `#@__archives` arc
 LEFT JOIN #@__arctype tp on tp.id=arc.typeid
  LEFT JOIN #@__channeltype as ch on arc.channel = ch.id
  WHERE arc.id='$aid' ";
$this->Fields = $this->dsql->GetOne($query);

 

8、调用标记

栏目页、内容页 直接调用:{dede:field.typeimg/}

底层模板:[field:typeimg/] 如在 dede:channel 中调用

 

示例:

 

{dede:field.typeimg/}

 

{dede:channel type='son'}

<img src='[field:typeimg/]' />

{/dede:channel}