dedecms原理及使用


dedecms原理

簡單使用

現在老板要求你做一個文章管理系統,欄目(類別)包括(武俠、愛情、音樂...) ,每個欄目(類別)有對應的文章,文章已經給你准備好了,請你在30分鍾搞定該網站,怎么樣?

 

步驟:

1、登錄到dedecms后台創建了三個欄目(類別)

后台->核心->網站欄目管理->添加頂級欄目         

添加三個,刷新首頁即可看看.

2給每個欄目添加對應的文章給武俠文章欄目添加文章

后台->核心->普通文章->添加文章      (縮略圖代碼可以拿出來用)   

這里可以添加文章, 刷新首頁面就看看

當你點擊 某個文章的超鏈接時,就可以看到對應的文章內容

3創建欄目頁

后台->生成->更新欄目頁

這時,我們的三級頁面,全部走通.

細節問題:

1、dede設計者認為,每個欄目都屬於一個模型 武俠文章|音樂文章=>文章模型,一個內容 模型,對應多個欄目  dede_channeltype 在默認情況下有提供5個內容模型

2、dede設計者認為,所有的數據(電影,文章,軟件,新聞)屬於一個欄目,為了記錄這個欄目信 ,放入dede_arctype

字段名

含義

Id

編號 主鍵

Topid

上一級id是誰 0代表頂級欄目

1、dede的設計者認為,所有的記錄(新聞,文章,軟件。。)都應該把數據放入到表 dede_archives[主表],還有一部分數據放入對應 從表

2、dede設計者認為,不管是什么樣的數據,(新聞,文章,軟件..)他們有相同字段,把相同的 字段放入主表(dede_archives),同時認為,每種數據,都有自己獨特的字段,於是把這些 信息,放入從表。比如:

新聞news   從表:dede_addonnews 

商品goods  從表:dede_addongoods

3、當我們在后台,創建一個欄目時,

(1) 就會在 dede_arctype 表中記錄這個欄目信息

(2) 同時,會創建一個對應的文件夾,欄目文件夾 dedecms/a/欄目文件夾/ 

4、我在某個欄目,創建一條記錄時,

(1) 該記錄會保存到 數據庫中(dede_archives+對應從表)

同時成靜態頁面 dedecms/a/欄目文件夾/

實例1:添加內容管理

如果現在我們要做的是電子商務網站,賣我們的商品這時用文章這樣的形式來管理還合適嗎但是內容管理沒有商品,內容模型有商品

dede后台的規定, 如果一個內容模型,沒有一個欄目,則不會出現內容添加的選項.

隱藏欄目  隱藏內容待審核

提出一個嚴肅的問題. 首頁如何靜態化.

dedecms 中欄目頁面和首頁面需要手動點擊生成靜態頁面.

欄目頁面的靜態化 : 后台->生成->更新欄目頁 (自動生成對應的靜態頁面)

首頁面的靜態   : 后台->生成->更新首頁面( index.html)

實例2:內容模型添加字段

在添加某個商品的時候,我們希望多兩個信息,就是付費方式,還希望多一個郵資信息,我們又該怎樣處理?

dedecms允許用戶自定義字段,操作如下: 后台->內容模型管理

在添加某個字段信息的時候,dede提供了一個叫聯動類型的字段,常用的聯動信息已經提供.地區. 比如給商品添加一個郵寄到地址  

后台->內容模型管理->增加一個聯動類型(注意,字段的名稱,要和dede給出名字一致)

后台->內容模型管理->聯動類別管理

實例3:更新欄目列表

請各位同學看看,這里我們有一個問題,就是當你點擊武俠,愛情,電器的時候,會找不到對應的頁面,這是為什么呢?

當我們點擊首頁的某個欄目,可以進入到對應的欄目列表頁,需要我們手動的點擊更新欄目頁:步驟:后台->生成->更新欄目HTML  

注意 :我可以選擇你要更新的哪個欄目

說明:當我們點擊更新欄目HTML,就會在該欄目對應的 目錄

dedecms/a/欄目文件夾/ 生成兩個靜態文件 index.html 還有 xx_list.html

 原理示意圖:

增加網站內容步驟

現在我要上一個租賃信息, 需求是內容模型自己創建 myhouse

(1) 創建自己的內容模型 myhouse

后台->內容模型管理->填寫你的信息, 最后點擊創建

結果: dede_channeltype 表中有這個信息; 會創建附件表 dede_addonmyhouse

 

(1) 根據自己的需求,來創建自定義的字段

后台->內容模型管理->點擊你的某個模型->字段增加, 添加自己的信息

結果: dede_addonmyhouse 表中就會有一個新的字段創建, (alter table 表名 add cloumn 字段名 類型)

(2) 創建一個具體的欄目

出租房屋/求租房屋  

后台->網站欄目管理 ->增加一個欄目

刷新后台頁面:

(1) 增加信息

點擊內容管理->房屋信息

根據實際情況來填寫內容.

(2) 然后更新首頁面和欄目頁面HTML

后台-> 生成  -> 更新首頁面HTMl ....欄目頁面HTML

 

每個欄目會對應兩個目標文件 欄目模板,內容模板

注意: 當我們更新后,求租房屋這個 欄目頁生成 ( 因為你還沒有提供 對應的欄目模板,因此默認使用list_default.htm) 對應內容也會使用默認模板(這時可能提示錯誤)

自定義兩個模版然后更新html看靜態頁面 大小都是0kb

(3) 我們需要美工,至少兩個模板

列表模版list_XXX.htm

內容(文本)模板 article_XXX.htm

到此就可以把信息大量的創建.

dedecms的標簽使用

dedecms 標簽的使用

在后台->模板->默認模板管理 ,點擊 修改,就可以看到 dedecms提供的標簽.

去掉廣告.

思路:

因為我的首頁面的靜態頁是通過 模板創建來,到的首頁面對應的模板文件,把模板文件中關於廣告的代碼,去掉即可. dedecms/templets/default/index.htm 模板

廣告標簽是 {dede:myad}   去掉, 如果 index.htm 文件中 include其它模板文件,則需要把引入的模板文件的 myad去掉.

找到模板文件去掉廣告(某個欄目對應列表頁)

找到該欄目的對應的模板文件.可以到 后台->欄目管理->看看某個欄目的

模板是哪個?然后修改.

系統學習dede標簽

學習方法:寫一個自己的模版  寫各種標簽看效果

把主頁模版改成自己的

(1) 單標簽

形式 {dede:標簽名  參數=’ /}

舉例 includelude filename=’head.htm’/}

{dede:inc

(2) 雙標簽

形式: {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}

(3) 如何對取出的字段內容,進行簡單的處理

[field:字段名 function=函數名(@me)’]

我對取出的欄目信息,進行md5加密.

案例

{dede:channel type='top' row='8'}

[field:typename/]--[field:id/]--[field:typename function='md5(@me)'/]

{/dede:channel}

(4) 對取出的內容做一個簡單的業務處理

[field:字段名 runphp=’yes’]

//簡單的業務邏輯.

[/filed:字段名]

舉例說明

[field:字段名 runphp=’yes’]

@me = (@me==’’) ? ‘空的’ : @me

[/filed:字段名]

(5) 現在我希望有自己的一個函數,該函數可以,在字段信息后面添加一個 hello, 並返回.

形式是

[field:字段名 function=函數(@me)’/]

案例:

<br/>

****如何在字段上使用自定義函數***********

[field:typename function='myfun1(@me)'/]

☞ myfun1這個函數要寫到

dedecms/include/extend.func.php

☞ dede標簽不嵌套使用.

(6) 如何在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/}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM