1. 程式人生 > >自定義模型使用教程

自定義模型使用教程

body 行存儲 文件 只需要 檔案 能說 指定 包含模型 音樂

在織夢系統中有內容模型這個概念,不同內容模型可以用來構建不同內容形式的站點,在系統中自帶了以下幾種模型:普通文章、圖集、軟件、商品、分類信息、專題。通過系統自帶的模型,我們可以用來構建不同類型的站點,例如:使用圖集可以做一個圖片站,用軟件模型構建一個軟件下載站點。
當然以上隨系統附帶的模型被稱為系統模型,用戶可以自己定義一些模型,比如圖書、音樂專輯等,自定義了這些模型才可以構建更多內容形式的站點,本篇將講述如何使用系統的自定義模型管理功能來實現內容模型的構建。
我們首先登錄系統後臺,點擊[核心]-[內容模型管理],進入內容模型管理界面,如下圖所示:

技術分享

這裏我們介紹幾個相關參數的概念:
?ID 用於區分模型的唯一ID,一般常規模型的ID都是大於0的,比如普通文章、軟件等,如果使用了單表模型,ID一般需要小於-1,例如這裏的分類信息模型;
?頻道名稱

用於識別頻道類型的標識;
?識別id 系統用於識別的id,這個關系到模板方面;
?附加表 系統內容附加表項;
?模型類型 分為系統類型和自動類型,系統類型為固化在系統中的內容模型,自動類型為用戶可創建的內容模型類型;

接下來我們開始介紹如何使用自定義模型管理來創建一個自己的模型,並且用於建設不同內容類型的網站中去。
這裏我們介紹一些周邊的內容,幾個要用到的概念:
?字段 在數據庫中,表的列稱為字段,織夢系統也是如此,但更恰當的說法,存儲某個內容信息單元,稱為字段,例如標題、來源、作者等都是一個字段;
?內容系統主表 程序將一些公用字段存儲在系統主表dede_archives,例如:標題、關鍵詞、縮略圖等,主表具體字段可以查詢織夢幫助中心(http://help.dedecms.com)的有關二次開發手冊數據表部分的內容;
?附加表

不同內容模型對應不同的附加表,通常以dede_addon[識別ID]命名,附加表中存放的都是詳細內容的相關字段(非公用),例如:文章內容(dede_addonarticle)、軟件類型(dede_addonsoft)、圖片集合(dede_addonimage)等;
?單表獨立模型 存儲時候不用到“主表+附加表”的結構形式,直接使用單個數據表進行存儲內容數據,這樣脫離主從表,減少主表數據服在開銷,可以從很大程度上解決數據負載問題;
明白了以上幾個概念我們可以來學習如何來自己創建一個內容模型了。
一個完整的內容模型包含模型數據表、數據字段、模型模板、模型參數4個部分,制作一個內容模型大致有以下幾個步驟:1.模型規劃;2.模型制作;3.模板制作;4.欄目設置,下面我們從上面4個步驟來講解內容模型的制作。這裏我們以一個圖書模型(book)為例子,這個模型主要功能就是介紹書籍。

模型規劃
模型規劃分為幾個部分一個是模型應用方面的規劃,其次就是字段信息方面的規劃,以圖書(book)模型為例子,我們現規劃一個頻道使用這個模型,這個頻道作用就是讓大家分享一些好的學習資料,這裏主要是編程方面的書籍,所以欄目劃分大致如下:

[網絡編程書籍]
|____[ASP相關]
|____[PHP相關]
|____[JSP相關]
|____[.NET相關]

這幾個欄目是支持會員投稿的,因為這個推薦的書籍不是很多,所以直接采用主從表的形式,不使用獨立單表模型,因為涉及到會員分享,所以這裏需要會員投稿,我們給投稿會員級別設置為中級會員才有權限,並且需要摘要和說略圖,投稿之後需要經過管理員審核,這樣基本的使用規劃完成,下面就是字段方面的規劃了。
因為介紹一本書,我們規劃了以下內容:

出 版 社 publish 單行文本(varchar)
出版時間 pubtime 時間類型
字  數 cnum 整數類型
版  次 pubnum 整數類型
頁  數 pagenum 整數類型
印刷時間 pritime 時間類型
開  本 kbook 單行文本(varchar)
印  次 prinum 整數類型
紙  張 pages 單行文本(varchar)
I S B N isbn 單行文本(varchar)
包  裝 packs 單行文本(varchar)
內容簡介 body HTML文本
作者簡介 wrbody HTML文本
目錄 bindex HTML文本

這樣,我們完成了第一步模型的規劃。

模型制作
規劃完成了,接下來我們開始將這些規劃的內容創建為一個內容模型。首先以超級管理員身份登錄到系統後臺。點擊[核心]-[模型管理],點擊“增加新模型”按鈕來創建模型。
按照系統提示配置模型的基本信息,這裏因為選擇的是自動模型,所以檔案發布的相管程序頁面只需要保留默認即可。因為我們發布的是圖書,所以這裏“投稿標題使用名稱”設置為:圖書名稱。

技術分享

因為這裏我們使用的是自動模型,沒有自己制作相應的發布管理程序,所以下面的相關模型發布程序保持默認即可,當然如果你有一定的編程能力,可以自己制作一個內容發布程序,然後在這裏指定即可。

技術分享

基本信息設置完畢,直接單擊確定即可,進入到字段管理的頁面,點擊字段管理中的“添加新字段”按鈕,進入字段添加頁面,我們根據相關的字段信息進行字段添加。
下面是一些字段類型我們對部分字段進行一些說明:


單行文本(varchar) :常用字段,如文章標題、作者等都屬於直接輸入少量內容的文本,設置這個文本之後需要指定文本長度,默認為250,如果大於255則為text類型
多行文本:也是較為常用的字段類型,如個人簡介、產品描述都可以使用多行文本進行存儲
HTML文本:用織夢編輯器編輯產生的html內容,用於比較復雜的內容形式
附件類型:可以後臺上傳附件讓用戶下載,附件類型可以在後臺進行設置
option下拉框:下拉選擇,一般用於如軟件類型、語言類型等字段
聯動類型:一種數組形式的數據類型,可以在系統後臺聯動類型管理中進行設置

了解了這些字段類型我們就可以添加我們的字段信息了。

技術分享


添加完成點擊確定即可,這樣我們就完成了這個模型的制作。模型添加完畢之後我們發現在內容發布的地方多出來一個發布圖書的選項,這個說明我們的模型就已經成功添加了。

技術分享

模板制作
我們通過織夢幫助中心的《主要模板文件與功能說明》了解到每個模型還需要制作對應的模型模板文件,我們可以通過後臺模型管理中的模板文件說明查看模板文件。

技術分享

模板制作主要有2個地方需要講解下。
1. 列表頁模板list_[識別ID].htm中顯示在列表中需要調用添加擴展的字段需要在添加字段頁面勾選“使字段可以在列表的底層模板中獲得(自定義字段默認僅能在文檔模板顯示,啟用此選項將使列表查詢變慢,如無必要請不要選擇)”,這樣在{dede:list/}標簽中就可以使用[field:fieldname/]來進行調用。
2. 內容頁的標簽可以使用{dede:field.fieldname /} 進行調用,具體可以參考幫助中心模板相關的幫助文檔。

欄目設置
接下來我們就可以來添加一個欄目,在欄目設置中將欄目的內容模型設置為圖書


技術分享

然後我們就可以在這個欄目下添加文檔,會發現我們現在可以發布圖書內容了


技術分享

添加完成之後,我們可以瀏覽我們的網站頁面,預覽我們的模型效果。

技術分享

至此我們完成了整個模型的制作,整個過程還是非常簡單的。這裏只介紹了自動模型的制作,當然有一定PHP基礎的用戶可以自己開發系統模型,這樣就會擁有更為強大的織夢系統,使得網站內容更加豐富。

自定義模型使用教程