通過對exo cms portal, Mambo以及IBM的CMS也深入研究,我決定要取它們的優點,利用他們的思想,但是要簡化
它們的設計。針對cms里面非常重要的前臺導航,我采用以下的設計方法
/* 前臺內容節點設計
note_type: 路徑=0,節點=1
content_type: 靜態Html=1,動態腳本=2
use_layout : 是否使用布局文件,就是類似于sitemesh一樣的布局,使用它可以免去定義頭,腳和導航菜單
*/
CREATE TABLE TBL_CMS_NODE (
node_id int(11) unsigned NOT NULL default '0',
label varchar(255) NOT NULL default '',
path varchar(255) NOT NULL default '',
name varchar(255) NOT NULL default '',
parent_node_id int(11) NOT NULL default '0',
node_type char(1) NOT NULL default '',
content_type char(1) NOT NULL default '',
use_layout char(1) NOT NULL default '',
layout varchar(10) NOT NULL default '',
PRIMARY KEY (node_id)
) TYPE=InnoDB;
INSERT INTO TBL_CMS_NODE VALUES (1, 'index', '/', '首頁', '0','1','2','n','');
INSERT INTO TBL_CMS_NODE VALUES (2, 'xxjj', '/', '學校簡介', '0','0','' ,'' ,'');
INSERT INTO TBL_CMS_NODE VALUES (3, 'index', '/xxjj/', '學校簡介首頁','2','1','1','y','wrap');
INSERT INTO TBL_CMS_NODE VALUES (4, 'xxgk', '/xxjj/', '學校概況', '2','1','1','y','wrap');
INSERT INTO TBL_CMS_NODE VALUES (5, 'xxdt', '/xxjj/', '學校動態', '2','0','' ,'' ,'');
INSERT INTO TBL_CMS_NODE VALUES (4, 'index', '/xxjj/xxdt/', '學校動態首頁文章列表', '5','1','2','y','wrap');
INSERT INTO TBL_CMS_NODE VALUES (4, 'n', '/xxjj/xxdt/', '學校動態文章', '5','1','2','y','wrap');
/*
"/cms" 下解析的Use Case
1. /cms/ 沒有文件后綴的,補上index.html
2. /cms/index.html 找到路徑/ 下的index
3. /cms/xxjj/index.html 找到路徑/xxjj/ 下的index
4. /cms/xxjj/xxgk.html 找到路徑/xxjj/ 下的xxgk
5. /cms/xxjj/xxdt/index.html 找到路徑/xxjj/xxdt/ 下的index
6. /cms/xxjj/xxdt/index_1.html 找到路徑/xxjj/xxdt/ 下的index,把pageno=1做為一個變量放在context里面
7. /cms/xxjj/xxdt/n00000001.html 找到路徑/xxjj/xxdt/ 下的n,把00000001作為一個變量article_id=0000001放在context里面
*/
新聞熱點
疑難解答