91豆麻精品91久久久久久,中文在线资源,国产精品女视频,yw.139尤物在线精品视频

?
  歡迎訪問全國企業網站設計NO.1網站開發商平臺 付款方式
主頁 > 網站建設 > 建站知識 > 織夢dedecms中自定義數據模型

織夢dedecms中自定義數據模型

POST TIME:2020-10-09

剛學習完dedecms的標簽語法,我有很多困惑,覺得標簽的意義比較抽象,不知道如何用標簽來寫一些具體的內容。如果有一些數據庫的編程經驗,就知道一個很常用的編程范例—增刪改查。比如說,我要建立的是書本的模型,有索書號,書名,類型……,之后要寫一個網頁來完成書本信息的增刪改查,這篇文章主要解決這種問題。

一頻道(內容模型)

       我很長時間弄不清頻道和欄目的區別。從網上找了一些解釋如下:

       欄目就是網站中導航劃分出的模塊,如百度中的新聞、網頁、貼吧等就是欄目。

       頻道是欄目的類型。官方的定義是:頻道指內容模型,網站的欄目都是基于不同的模型建立的。也就是說一個頻道還可以衍生出多個欄目,一個欄目只對應于一個頻道。

       查到了以上定義后,我以為對頻道和欄目已有較深刻的認識了。直到我遇到這個問題,“什么時候建立頻道,什么時候建立欄目?”

       頻道對應于數據模型,當要建立一個新的數據模型,就要建立頻道。如書本模型,它和文章模型,圖片模型的數據表結構不同。一個新的模型有以下的元素:數據表,增刪改代碼。

       而欄目是對應于功能而言的,就像百度中的新聞、網頁、貼吧,什么時候要添加欄目還是比較明顯的。3種模板屬于欄目的元素。

       “一個頻道還可以衍生出多個欄目”這句話有點虛,實際中網頁中的內容都很飽滿,每個欄目的內容都可能很不同,除了實用的文章模型外,基本每個頻道都為一個欄目而設。

       在dedecms中,有頻道>欄目>文章這幾個基本的單位。每個單位都會用id號唯一標識,頻道(cid,channel id),欄目(tid,type id),文章(aid,article id) 。

二添加模型

       關于添加模型,不妨看下這篇文章。它主要講操作步驟,我會結合操作講講原理。上面提到,一個模型有數據表,增刪改代碼這兩個元素,下面就按這個思路發展。

       點擊了“增加新模型”后,會看到表單中的附加表,填dede_addonXX,XX就是前面填寫的名字標識。Dedecms中的文章不是指具體的文章,更像是記錄。如圖片頻道中,上傳的一張圖片就是一個文章。所以一篇文章由兩部分組成,其一是基本信息,如作者,發布時間等,記錄在dede_archives中,這個表稱為主表。每個頻道的文章信息,存在附加表中,如圖片頻道的附加表為dede_addonimages。

       順便說一下,在模型性質處有獨立模型的選項,就是新建立的模型中,文章在dede_archives沒有記錄。可能見到dede_archives中多余的字段太多,不是每個模型都需要,才有這種設計。獨立模型更多叫單表模型,縮寫為sg,有專門的sgarclist。現在剛剛接觸,就先不理它。

在“增加新模型”的表單提交后,會看到數據庫中多了一個dede_addonXX的表,不要急著定義這個表的字段,因為dedecms會輔助我們完成這個過程。

       現在大約來到“這篇文章”的第三點,依次進入 內容模型管理>dede_addonXX的修改>字段管理>添加新字段 就可以為dede_addonXX添加字段了。添加完一個字段提交后后,會回到字段管理的頁面,看到“模型字段配置”,是一個代表剛才定義過程的標簽,這是手動定義數據庫表所沒有的。總之,對附加表用該方法添加新字段會更好。

       關于增刪改的代碼,在前面的檔案發布/修改/管理出已經定義了。開始時,用archives_add.php,archives_edit.php和content_list.php。由于dedecms有自動表單功能,所以這個文件基本夠用了。自動表單的意思是前面添加新字段時設置的字段,會在add,edit等表單中以控件形式出現,不需用戶添加代碼。如果覺得不夠用,可以參照archives_add.php等DIY一下。

       這樣自定義的頻道就可以用來生成欄目,像默認欄目一樣好用。

       對于增刪改,這可能只是主模型的搭建,對于輔助模型也可以參照其他后臺管理代碼,像分類信息模型中,增加一個地區表。要搞清后臺管理,有要費一番功夫。

   增刪改功能不僅限于后臺,前臺也有這些功能。前臺就不能用表單這種呆板的提交,可能要用到ajax。可參考系統頂踩功能和評論功能的實現。

三使用模型中的數據

       增刪改后還剩下查,這個功能的特點是不用填很多表單。數據的查詢一般用標簽完成,field,arclist,list及其衍生標簽已經覆蓋了不少情況。

       在文章模板中能用field標簽查詢附加表的字段,而在列表模板中,也能通過arclist查詢到附加表的字段,如下:

<tr>
{dede:arclist addfields='sjdz,yysj' channelid='1}
<td>商家地址:[field:sjdz/]</td>
<td>營業時間:[field:yysj/]</td>
{/dede:arclist}
</tr>

關鍵是addfields和channelid,addfields里面是你的自定義字段,channelid如果是普通文章就是1

       當然也有不少情況是不夠用的,要自定義標簽。

? 主站蜘蛛池模板: 贵州省| 星子县| 阿拉善左旗| 诏安县| 娄烦县| 泸定县| 永德县| 青海省| 浏阳市| 香格里拉县| 长乐市| 荥经县| 安康市| 屏东县| 会泽县| 石门县| 新津县| 铜川市| 龙南县| 四子王旗| 漠河县| 德格县| 上杭县| 图木舒克市| 西乌珠穆沁旗| 都匀市| 新竹县| 菏泽市| 朝阳市| 扎囊县| 贵州省| 新野县| 石河子市| 诏安县| 霞浦县| 敦煌市| 丰原市| 项城市| 永胜县| 天水市| 财经|