POST TIME:2021-05-25 00:15
DEDECMS快速建網站時
問題:頻道頁面有時除調用欄目內容外我們還需要在頻道頁調用一些其它的內容。比如欄目圖片、欄目介紹等。
方法:在織夢系統的基礎上進行小小的修改,算是對dedecms二次開發吧。
效果:在做wap網站時,每個欄目對應的小小的圖標,我們就可以直接在后臺上傳控制了。
下面以增加 欄目圖標、地址、電話、網址 四項內容為例。修改后的效果如下所示:
步驟:
1、添加字段(修改數據庫--dede_arctype表)
在smalltypes字段后添加typelitpic、address、telphone、webnet 四個字段,分別對應欄目圖標、地址、電話、網址四項。我這里直接操作navicat添加了。
2、修改【欄目添加】文件
打開后臺目錄,默認是dede文件夾,里面的dede/catalog_add.PHP文件。在第65行與227行兩處一樣的修改,只是一個是~另一個是$符號,別弄錯了,照著原來字段復制改為我們自己需要的英文名或者圖片名,搜索
reid,topid,sortrank,typename,typedir
在逗號后面添加(注意逗號)
typelitpic,address,telphone,webnet,
下面第二行的
'~reid~','~topid~','~rank~','~typename~','~typedir~'
后面添加
'~typelitpic~','~address~','~telphone~','~webnet~'
完成后如下圖:
繼續在227行重復上面兩步添加,完成后如下圖:
3、再打開dede emplets目錄下的catalog_add.htm,在第250行搜索
<tdclass='bline'height="26"style="padding-left:10px;"><fontcolor='red'>欄目名稱:</font></td>
在下面</tr>后添加如下代碼
<tr> <td class='bline' height="26" style="padding-left:10px;">欄目圖標:</td> <td class='bline'> <input name="typelitpic" type="text" id="typelitpic" size="30" value="<?php echo $myrow['typelitpic']?>" class="iptxt" /> <input type="button" name="Submit2" value="站內選擇" style="margin-left:8px;" onClick="SelectImage('form1.typelitpic','small');" class='np coolbg'/> </td> </tr> <tr> <td class='bline' height="26" style="padding-left:10px;"><font color='red'>地址:</font></td> <td class='bline'><input name="address" type="text" id="address" style="width:300px;" value="<?php echo $myrow['address']?>" class="iptxt" /></td> </tr> <tr> <td class='bline' height="26" style="padding-left:10px;"><font color='red'>電話:</font></td> <td class='bline'><input name="telphone" type="text" id="telphone" style="width:300px;" value="<?php echo $myrow['telphone']?>" class="iptxt" /></td> </tr> <tr> <td class='bline' height="26" style="padding-left:10px;"><font color='red'>網址:</font></td> <td class='bline'><input name="webnet" type="text" id="webnet" style="width:300px;" value="<?php echo $myrow['webnet']?>" class="iptxt" /></td> </tr>
4、修改【欄目更改】文件
打開后臺目錄,默認是dede文件夾,里面的dede/catalog_edit.PHP文件。搜索`smalltypes`='$smalltypes' 大概在第62行添加下面的代碼
`smalltypes`='$smalltypes', `typelitpic`='$typelitpic', `address`='$address', `telphone`='$telphone', `webnet`='$webnet'
意思是添加一個$upquery 的賦值。如下圖:
然后打開dede/templets/catalog_edit.htm在第213行搜索
<tdclass='bline'height="26"style="padding-left:10px;"><fontcolor='red'>欄目名稱:</font></td>
也是在
后面添加
<tr> <td class='bline' height="26" style="padding-left:10px;">欄目圖標:</td> <td class='bline'> <input name="typelitpic" type="text" id="typelitpic" size="30" value="<?php echo $myrow['typelitpic']?>" class="iptxt" /> <input type="button" name="Submit2" value="站內選擇" style="margin-left:8px;" onClick="SelectImage('form1.typelitpic','small');" class='np coolbg'/> </td> </tr> <tr> <td class='bline' height="26" style="padding-left:10px;"><font color='red'>地址:</font></td> <td class='bline'><input name="address" type="text" id="address" style="width:300px;" value="<?php echo $myrow['address']?>" class="iptxt" /></td> </tr> <tr> <td class='bline' height="26" style="padding-left:10px;"><font color='red'>電話:</font></td> <td class='bline'><input name="telphone" type="text" id="telphone" style="width:300px;" value="<?php echo $myrow['telphone']?>" class="iptxt" /></td> </tr> <tr> <td class='bline' height="26" style="padding-left:10px;"><font color='red'>網址:</font></td> <td class='bline'><input name="webnet" type="text" id="webnet" style="width:300px;" value="<?php echo $myrow['webnet']?>" class="iptxt" /></td> </tr>
完成后如下圖
5、給圖片上傳按鈕添加js鏈接
我們的縮略圖是直接上傳的,所以這里要在添加頁與編輯頁頂部鏈接那個JS文件,在dede/templets/catalog_add.htm與dede/templets/catalog_edit.htm的添加/dede/js/main.js的js代碼
<scriptlanguage='javascript'src="js/main.js"></script>
如下圖:
6、調用欄目圖片
調用的時候也要修改相關字段的文件,另外有用dede:sql
標簽調用就不需要修改了,但是這樣并不靈活。我調用是用dede:channel標簽來調用顯示頂級欄目或者子欄目,于是我們要去修改相對應的PHP文件,打開include aglibchannel.lib.php
文件,在第80、86、92、111行左右,添加我們新加的字段,具體如下圖
7、調用的時候就可以在dede:channel標簽里使用我們新加的字段了。
我的調用代碼用的是dede:sql如下:
這樣修改標簽的相關函數文件的好處在于,你想讓欄目新加字段在任一標簽都能使用就按照上面的修改就行了,比如我們要用dede:sonchannel
子欄目調用圖片標簽,就可以修改相對應的include aglibsonchannel.lib.php 函數文件,其他DEDE標簽同理。