dedecms原理php
如今老闆要求你作一個文章管理系統,欄目(類別)包括(武俠、愛情、音樂...) ,每一個欄目(類別)有對應的文章,文章已經給你準備好了,請你在30分鐘搞定該網站,怎麼樣?html
步驟:數據庫
後臺->核心->網站欄目管理->添加頂級欄目 函數
添加三個,刷新首頁便可看看.學習
後臺->核心->普通文章->添加文章 (縮略圖代碼能夠拿出來用) 網站
這裏能夠添加文章, 刷新首頁面就看看加密
當你點擊 某個文章的超連接時,就能夠看到對應的文章內容spa
後臺->生成->更新欄目頁設計
這時,咱們的三級頁面,所有走通.3d
一、dede設計者認爲,每一個欄目都屬於一個模型 武俠文章|音樂文章=>文章模型,一個內容 模型,對應多個欄目 dede_channeltype 在默認狀況下有提供5個內容模型
二、dede設計者認爲,全部的數據(電影,文章,軟件,新聞)屬於一個欄目,爲了記錄這個欄目信 息,放入dede_arctype表
字段名 |
含義 |
Id |
編號 主鍵 |
Topid |
上一級id是誰 0表明頂級欄目 |
一、dede的設計者認爲,全部的記錄(新聞,文章,軟件。。)都應該把數據放入到表 dede_archives[主表],還有一部分數據放入對應 從表
二、dede設計者認爲,不論是什麼樣的數據,(新聞,文章,軟件..)他們有相同字段,把相同的 字段放入主表(dede_archives),同時認爲,每種數據,都有本身獨特的字段,因而把這些 信息,放入從表。好比:
新聞news 從表:dede_addonnews
商品goods 從表:dede_addongoods
三、當咱們在後臺,建立一個欄目時,
(1) 就會在 dede_arctype 表中記錄這個欄目信息
(2) 同時,會建立一個對應的文件夾,欄目文件夾 dedecms/a/欄目文件夾/
四、我在某個欄目,建立一條記錄時,
(1) 該記錄會保存到 數據庫中(dede_archives+對應從表)
同時成靜態頁面 dedecms/a/欄目文件夾/
若是如今咱們要作的是電子商務網站,賣咱們的商品,這時用文章這樣的形式來管理還合適嗎? 可是內容管理沒有商品,內容模型有商品
在dede後臺的規定, 若是一個內容模型,沒有一個欄目,則不會出現內容添加的選項.
隱藏欄目 隱藏內容待審覈
提出一個嚴肅的問題. 首頁如何靜態化.
在dedecms 中欄目頁面和首頁面須要手動點擊生成靜態頁面.
欄目頁面的靜態化 : 後臺->生成->更新欄目頁 (自動生成對應的靜態頁面)
首頁面的靜態 : 後臺->生成->更新首頁面( index.html)
在添加某個商品的時候,咱們但願多兩個信息,就是付費方式,還但願多一個郵資信息,咱們又該怎樣處理?
dedecms容許用戶自定義字段,操做以下: 後臺->內容模型管理
在添加某個字段信息的時候,dede提供了一個叫聯動類型的字段,經常使用的聯動信息已經提供.地區. 好比給商品添加一個郵寄到地址
後臺->內容模型管理->增長一個聯動類型(注意,字段的名稱,要和dede給出名字一致)
後臺->內容模型管理->聯動類別管理
請各位同窗看看,這裏咱們有一個問題,就是當你點擊武俠,愛情,電器的時候,會找不到對應的頁面,這是爲何呢?
當咱們點擊首頁的某個欄目,能夠進入到對應的欄目列表頁,須要咱們手動的點擊更新欄目頁:步驟:後臺->生成->更新欄目HTML
注意 :我能夠選擇你要更新的哪一個欄目
說明:當咱們點擊更新欄目HTML,就會在該欄目對應的 目錄
dedecms/a/欄目文件夾/ 生成兩個靜態文件 index.html 還有 xx_list.html
原理示意圖:
如今我要上一個租賃信息, 需求是內容模型本身建立 myhouse
後臺->內容模型管理->填寫你的信息, 最後點擊建立
結果: 在 dede_channeltype 表中有這個信息; 會建立附件表 dede_addonmyhouse
後臺->內容模型管理->點擊你的某個模型->字段增長, 添加本身的信息
結果: 在 dede_addonmyhouse 表中就會有一個新的字段建立, (alter table 表名 add cloumn 字段名 類型)
出租房屋/求租房屋
到 後臺->網站欄目管理 ->增長一個欄目
刷新後臺頁面:
點擊內容管理->房屋信息
根據實際狀況來填寫內容.
後臺-> 生成 -> 更新首頁面HTMl ....欄目頁面HTML
每一個欄目會對應兩個目標文件 欄目模板,內容模板
注意: 當咱們更新後,求租房屋這個 欄目頁生成 ( 由於你尚未提供 對應的欄目模板,所以默認使用list_default.htm) 對應內容也會使用默認模板(這時可能提示錯誤)
自定義兩個模版而後更新html看靜態頁面 大小都是0kb
列表模版list_XXX.htm
內容(文本)模板 article_XXX.htm
到此就能夠把信息大量的建立.
dedecms 標籤的使用
在後臺->模板->默認模板管理 ,點擊 修改,就能夠看到 dedecms提供的標籤.
思路:
由於個人首頁面的靜態頁是經過 模板建立來,到的首頁面對應的模板文件,把模板文件中關於廣告的代碼,去掉便可. dedecms/templets/default/index.htm 模板
廣告標籤是 {dede:myad} 去掉, 若是 index.htm 文件中 include其它模板文件,則須要把引入的模板文件的 myad去掉.
找到該欄目的對應的模板文件.能夠到 後臺->欄目管理->看看某個欄目的
模板是哪一個?而後修改.
學習方法:寫一個本身的模版 寫各類標籤看效果
把主頁模版改爲本身的
形式 : {dede:標籤名 參數=’值’ /}
舉例 :includelude filename=’head.htm’/}
{dede:inc
形式: {dede:標籤名 參數=’值’ ...} 內容 {/dede:標籤名}
舉例:
<!--取出網站的導航欄目-->
<!--type='top' 表示取出頂級欄目 row表示取出多少行-->
<!--dede:channel 標籤 至關 select ? from dede_arctype where ? 去調用一個標籤庫類文件 channel.lib.php
--->
{dede:channel type='top' row='8'}
[field:typename/]
{/dede:channel}
[field:字段名 function=’函數名(@me)’]
我對取出的欄目信息,進行md5加密.
案例 :
{dede:channel type='top' row='8'}
[field:typename/]--[field:id/]--[field:typename function='md5(@me)'/]
{/dede:channel}
[field:字段名 runphp=’yes’]
//簡單的業務邏輯.
[/filed:字段名]
舉例說明
[field:字段名 runphp=’yes’]
@me = (@me==’’) ? ‘空的’ : @me
[/filed:字段名]
形式是
[field:字段名 function=’函數(@me)’/]
案例:
<br/>
****如何在字段上使用自定義函數***********
[field:typename function='myfun1(@me)'/]
☞ myfun1這個函數要寫到
dedecms/include/extend.func.php
☞ dede標籤不嵌套使用.
在dedecms/include/common.inc.php 文件中定義了不少重要的全局變量的,咱們可使用dede標籤進行引用
基本使用方法:
{dede:global.全局變量名/}
若是須要在{dede}標籤內部使用
[field:global.全局變量名/]
☞ 支持自定義全局變量.
案例:
****如何在字段上使用自定義函數***********
[field:typename function='myfun1(@me)'/]
<br/>
[field:global.cfg_softname/]-[field:global.my_global_val/]
{/dede:channel}
<br/>*********<br/>
{dede:global.cfg_soft_lang/}--{dede:global.cfg_softname/}