天天看點

如何在背景增加dedecms欄目圖檔字段并在前台實作調用

  dedecms預設是沒有欄目圖檔功能的,為了便于靈活管理就給每個欄目增加一個欄目圖檔的功能,欄目圖檔是在代碼中添加的固定圖檔,通過改造可以實作這個功能的,下面就随ytkah一起來試試吧

如何在背景增加dedecms欄目圖檔字段并在前台實作調用

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);這時,我們再到背景重新生成一下清單頁面,重新整理清單頁試試,目前欄目的欄目圖檔也出來了呢~