dedecms預設是沒有欄目圖檔功能的,為了便于靈活管理就給每個欄目增加一個欄目圖檔的功能,欄目圖檔是在代碼中添加的固定圖檔,通過改造可以實作這個功能的,下面就随ytkah一起來試試吧
1. 首先,給欄目分類表`dede_arctype`表增加縮略圖字段`typeimg`,用phpMyAdmin或其他資料庫管理工具,直接在資料表中添加該字段,或者運作下面的SQL語句:
alter table `dede_arctype` add `typeimg` char(100) NOT NULL default '';
2. 修改頁面,在表單中添加相應的字段,涉及到的頁面有:
dede/catalog_add.php
dede/catalog_edit.php
dede/templets/catalog_add.htm
dede/templets/catalog_edit.htm
2.1 打開dede/templets/catalog_add.htm,查找
<tr>
<td class='bline' height="26" ><font color='red'>欄目名稱:</font></td>
<td class='bline'><input name="typename" type="text" id="typename" size="30" class="iptxt" /></td>
</tr>
在其下面加上如下代碼:
<td class='bline' height="26" ><font color='red'>欄目圖檔:</font></td>
<td class='bline'>
<input name="typeimg" type="text" id="typeimg" class="alltxt" value="" />
<input type="button" name="set9" value="浏覽... "class="coolbg np" onClick="SelectImage('form1.typeimg','');" />
</td>
并在<head></head>之間引入如下js:
<script language="javascript" src="js/main.js"></script>
2.2 打開dede/catalog_add.php頁面,儲存上傳欄目圖檔的内容,查找
$queryTemplate = "INSERT INTO
在
(reid,topid,sortrank,typename
的後面添加 ,typeimg 字段,再找到
('~reid~','~topid~','~rank~','~typename~',
在其後面添加 ,’~typeimg~’ 字段,接着查找
$in_query = "INSERT INTO
後面同樣添加 ,typeimg 字段,并在
('$reid','$topid','$sortrank','$typename'
後面添加 ,’$typeimg’ 字段。
2.3 打開dede/templets/catalog_edit.htm頁面,查找
<td class='bline'><input name="typename" type="text" id="typename" size="30" value="<?php echo $myrow['typename']?>" class="iptxt" /></td>
在其下面添加:
<input name="typeimg" type="text" id="typeimg" class="alltxt" value="<?php echo $myrow['typeimg']?>" />
并在<head></head>之間引入下面的js檔案
<script language='javascript' src="js/main.js"></script>
2.4 打開dede/catalog_edit.php,查找
$upquery = "UPDATE `#@__arctype` SET
typename='$typename',
的後面添加
typeimg='$typeimg',
然後儲存。
前台調用:<img src="{dede:field name='typeimg'/}" width="100%" border="0" >如果要使用<img src='[field:typeimg/]'/>調用我們必須找到了欄目的标簽頁面 /include/taglib/channel.lib.php,發現了下面的一段代碼(第137行):
$linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);
$linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);
$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
在下面添加:$linkOkstr = str_replace("~typeimg~",$row['typeimg'],$linkOkstr);這時,我們再到背景重新生成一下清單頁面,重新整理清單頁試試,目前欄目的欄目圖檔也出來了呢~