亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > PhpCMS > 正文

phpcms2008 內容模型說明

2024-09-10 07:16:06
字體:
來源:轉載
供稿:網友

cms 通過內容模型功能實現了在后臺即可管理文章數據表的功能,內容模型是一個 cms 最基本的功能.

每個內容模型對應一張數據表,添加一個內容模型就會添加一張數據表,刪除一個內容模型就會刪除一張數據表.

模型與數據表的對應規則是:數據表名=表前序 + c_ + 模型定義的表名.

對應的數據表就是 phpcms2008_c_jieju

在后臺可以管理模型數據:

模型信息保存在 model 表中(eg.phpcms2008_model)

每個模型都有一組相同的字段,稱為[系統字段]:

在添加模型時會自動加入系統字段,系統字段不能刪除,只能禁用.

添加模型的操作通過 /admin/model.inc.php 中的 add 部份實現,真正處理的代碼是 /include/admin/model.class.php 的 add() 方法.

通過執行 /include/admin/model.sql 中的 SQL 語句建立模型對應的數據表。

新建立的模型對應的數據表只有 contentid,content,template 三個字段,除 contentid 外,并沒有如 catid,title 這類模型[系統字段].

這些系統字段放在 content 表中(eg.phpcms2008_content),這個表有 contentid,catid,title,url,thumb 等這些基本的文章字段.

所有模型中的文章的 url, title, thumb 等數據都是保存在 content 表中的,除這些字段外的字段值才保存在對應的模型數據表中,比如 content 字段就保存在模型數據表。

在添加一篇文章時,先把由 content 表保存的數據插入 content 表,取回插入的 contentid,就是數據庫的 insert_id,再把其它字段值插入模型數據表中,content 表稱為主表,模型數據表稱為擴展表,主表與擴展表通過 contentid 關聯.

這種結構有以下幾個特點:

1. 所有模型中的文章都可以使用一個連續的 contentid ,因此主表的一個作用就是產生一個自動編號的 contentid 。

2. 通過一個主表就可以查詢到所有的文章數據,實現前臺不同欄目不同模型的數據整合顯示。

3. 從數據庫優化的角度,一個數據表若要查詢速度快,盡量使用定長的字段類型(eg. char),避免使用變長的字段類型(eg. varchar, text),因此把所有變長的字段(eg. content)都放在擴展表中,令主表所有字段都是定長字段類型,加快查詢速度。

一個模型的字段信息保存在 model_field 表中(eg. phpcms2008_model_field),系統字段每一個對應主表中的一個字段,所以才會不能刪除,其它字段每一個對應擴展表中的一個字段。

如 content 字段:

雖是在新建模型時建立的字段,但并非系統字段,對應的是擴展表中的 content 字段。

在給一個模型添加字段時,所添加的都是擴展表的字段。添加字段的操作由 /admin/model_field.inc.php 中的 add 部份執行。在使用 /include/admin/model_field.class.php 的 add() 方法把字段數據保存到 model_field 表后,會調用對應字段類型的 field_add.inc.php 文件為擴展表增加實際的數據表字段。

字段類型是對數據表字段的一種包裝,cms 的所有字段類型存放于 /include/fields/ 目錄下,每個字段類型一個文件夾,文件夾名就是字段類型名。

每個字段類型的中文含意保存在 /include/fields/fields.inc.php 文件中。

在后臺添加模型字段時,會調用對應字段類型的 field_add.inc.php 文件,此文件的作用就是為擴展表添加字段。

以 editor 字段類型為例, editor 字段類型的中文含意是[編輯器],可以在 /include/fields/fields.inc.php 中查到,字段類型目錄是 /include/fields/editor/.

字段類型可以有自己的設置參數,使用 field_add_form.inc.php 文件,editor 字段類型的設置參數表單文件就是 /include/fields/editor/field_add_form.inc.php:

另一個相似的文件是 field_edit_form.inc.php ,在修改字段時使用。

editor 字段類型實際使用 MySQL 的 MEDIUMTEXT 字段類型保存。在添加模型字段時,會調用字段類型的 field_add.inc.php 文件,其作用就是為擴展表添加實際的表字段,editor 字段類型的 /include/fields/editor/field_add.inc.php 文件就是給擴展表加上一個 MEDIUMTEXT 字段。

與 field_add.inc.php 功能相似的是 field_edit.inc.php 文件,在修改模型字段時調用,用于修改擴展表的字段。

在定義好模型及模型字段后,就可以使用模型錄入數據了。cms 采用的是欄目關聯模型,要使用模型需要先建立與此模型關聯的欄目:

建好欄目后,就可以在[內容管理]菜單中打開對應的欄目,點擊[發布],便可見到文章錄入表單:

錄入表單由對應的字段類型自己負責生成,比如 editor 字段類型的表單是一個 HTML 編輯器,由 editor 自己負責生成:

生成錄入表單調用的是 /include/content_form.class.php 文件,里面是所有字段類型生成其表單的方法,比如 editor() 方法就是生成 editor 字段類型的錄入表單。

錄入文章的后臺控制器是 /admin/content.inc.php 文件 add 部份。生成各字段的錄入表單是這三句 PHP 代碼:

  1. require PHPCMS_ROOT .'include/content_form.class.php'
  2. $content_form = new content_form($modelid); 
  3. $forminfos = $content_form->get($data); 
  4. //開源軟件:Vevb.com 

修改文章時也是用同樣的邏輯生成數據編輯表單.

表單提交數據后,會使用 /include/admin/content.class.php 的 add() 方法把數據保存到數據表中,在寫入數據表之前,會先調用 /include/content_input.class.php 的 get() 方法對表單提交的數據進行處理,并按主表及擴展表的字段分成兩個數據,之后先插入主表,再插入擴展表。

在插入完數據后再調用 /include/content_update.class.php 的 update() 方法。進行插入數據后的后續操作。

content_input.class.php 主要讓字段類型對輸入的數據進行格式化操作,比如 int 類的表字段在 php 中使用 intval 格式化一下,不允許 html 的文本框使用 html 過濾函數過濾一下,文件上傳形的字段類型處理上傳的文件等。

content_update.class.php 主要用于執行需要得到 contentid 后才能進行的操作。

這樣,便能為模型錄入數據了.

至于前臺查詢(主要是首頁,列表頁這種頁面),主要是從主表中查詢,需要用到擴展表字段時則使用 join 連表查詢,采用直接寫 sql 語句的形式.

前臺查詢最常見的就是顯示某一欄目的文章,所以主表會根據前臺主要的查詢建立索引。比如給 catid 加索引,在 where 時走索引,給 listorder, updatetime 這些加索引,在 order by 時走索引。

在前臺顯示一篇文章時,使調用 /include/content_output.class.php 對字段值進行輸出前的加工處理。字段類型需要輸出前的格式化都可以在這里完成。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久夜色精品国产| 亚洲第一区在线观看| 免费av在线一区| 亚洲精品一区二区网址| 中文在线资源观看视频网站免费不卡| 欧美野外猛男的大粗鳮| 国产精品成人久久久久| 亚洲综合视频1区| 欧美在线激情网| 欧美成在线观看| 国产成人激情视频| 日本一区二区不卡| 九九热r在线视频精品| 欧美大学生性色视频| www.欧美三级电影.com| 亚洲电影第1页| 最近2019中文字幕mv免费看| 欧美激情一区二区三级高清视频| 国产精品视频网址| 亚洲日韩中文字幕在线播放| 国产精品美女久久| 久久久久这里只有精品| 精品国产美女在线| 精品偷拍一区二区三区在线看| 久久精品中文字幕一区| 亚洲综合日韩中文字幕v在线| 在线不卡国产精品| 国产精品高潮呻吟久久av野狼| 成人高h视频在线| 欧美性理论片在线观看片免费| 91精品视频在线| 亚洲国产欧美一区二区丝袜黑人| 日韩欧美999| 精品久久香蕉国产线看观看亚洲| 亚洲丁香久久久| 91网站免费观看| 成人精品久久av网站| 国外成人性视频| 亚洲欧美激情四射在线日| 97人洗澡人人免费公开视频碰碰碰| 97在线观看免费高清| 亚洲国产精品久久精品怡红院| 精品久久久久久中文字幕| 亚洲综合小说区| 宅男66日本亚洲欧美视频| 国产精品日韩在线一区| 成人网在线观看| 日韩美女免费视频| 亚洲精品国产精品国自产观看浪潮| 精品亚洲一区二区三区| 欧美精品免费看| 亚洲一区二区黄| 国产成人91久久精品| 亚洲视频免费一区| 最新69国产成人精品视频免费| 91av视频在线免费观看| 伊人男人综合视频网| 日韩在线小视频| 高清欧美性猛交xxxx黑人猛交| 久久人人爽人人爽爽久久| 亚洲精品suv精品一区二区| 大桥未久av一区二区三区| 日韩在线免费视频观看| 97视频com| 久久久av亚洲男天堂| 在线观看国产精品日韩av| 欧美日本啪啪无遮挡网站| 成人免费福利在线| 欧美性猛交xxxx乱大交| 97色在线观看免费视频| 欧美日韩免费网站| 日韩电影中文字幕| 日韩a**中文字幕| 亚洲黄色av女优在线观看| 亲子乱一区二区三区电影| 久久久久久综合网天天| 欧美日韩精品中文字幕| 久久69精品久久久久久国产越南| 91国内免费在线视频| 欧美精品精品精品精品免费| 精品国产一区二区在线| 日韩精品在线观看视频| 久久久久99精品久久久久| 国产午夜精品免费一区二区三区| 亚洲精品suv精品一区二区| 日日狠狠久久偷偷四色综合免费| 曰本色欧美视频在线| 中文字幕欧美视频在线| 在线看欧美日韩| 亚洲第一免费网站| 久久综合伊人77777尤物| 欧美日韩免费在线观看| 国产成人精品久久久| 日韩在线中文字| 欧洲午夜精品久久久| 精品性高朝久久久久久久| 欧美日韩国产在线看| 欧美亚洲成人精品| 欧美成人性色生活仑片| 久久久久久久国产精品| 亚洲3p在线观看| 九九热精品视频在线播放| 久久久亚洲影院你懂的| 亚洲综合av影视| 91久久精品国产91性色| 亚洲天堂一区二区三区| 4438全国亚洲精品在线观看视频| 久久精品国产一区二区三区| 国产99久久精品一区二区永久免费| 久热精品视频在线观看| 欧美色道久久88综合亚洲精品| 国产精品自产拍高潮在线观看| 国产69精品99久久久久久宅男| 欧美黄色三级网站| 色吧影院999| 欧美三级免费观看| 日韩美女视频免费在线观看| 亚洲欧洲激情在线| 欧美视频在线看| 色综合导航网站| 久久久久久香蕉网| 国产精品揄拍500视频| 中文字幕不卡在线视频极品| 伊人久久综合97精品| 18久久久久久| 日本高清不卡的在线| 九九热在线精品视频| 亚洲成人精品视频在线观看| 亚洲国产小视频在线观看| 国产精品扒开腿爽爽爽视频| 一区二区三区动漫| 久久免费视频这里只有精品| 欧美日韩福利在线观看| 亚洲欧美日韩一区二区在线| 久久亚洲精品成人| 日韩av综合中文字幕| 综合国产在线观看| 久久精品色欧美aⅴ一区二区| 欧美成人精品在线| 欧美日韩午夜剧场| 精品久久久久久久中文字幕| 影音先锋欧美精品| 精品欧美国产一区二区三区| 国产成人av在线播放| 亚洲国产精品小视频| 欧美成人免费全部观看天天性色| 日韩av在线精品| 国产91av在线| 精品国产1区2区| 日韩精品在线电影| 亚洲少妇激情视频| 国产亚洲精品一区二555| 2023亚洲男人天堂| 久久综合网hezyo| 中文字幕精品在线视频| 一区二区在线免费视频| 国产福利视频一区| 日韩欧美一区二区三区| 日韩中文字幕网| 欧美激情中文字幕乱码免费| 欧美性受xxxx黑人猛交| 69视频在线播放| 久久亚洲成人精品| 伊人久久综合97精品|