Dedecms模塊開發(fā)教程,繼續(xù)上一篇博客的內容
學習本篇內容,需要對MVC有一點點的基礎:M負責與數據庫進行數據交互;C是夾在M與V之間,它把從M傳送過來的數據顯示到V上,反過來,也會把用戶在V層的操作修改,通過M完成對數據庫的增刪改查。一個model對應一張表,一個control對應一個頁面。
第四步:創(chuàng)建一個控制器 index.php(僅做測試)
這一步先做個測試,當然實際應用當然也是這么做的,只是我們這里沒有用到 model層和view層(第五步我們會使用上)。所以,這一步的目的只是讓大家對dedecms mvc的控制器有所理解。
在 control 目錄下創(chuàng)建一個名為 index.php的控制器文件,其代碼為:
1
<?php
//注意,所有的控制器類都要繼承Model類
class index extends Control{
function ac_index(){// dedecms mvc中的控制器方法,一律需要添加前綴 ac_ ,這是必須這么做的
echo "這里是dedecms 模塊開發(fā)教程";
}
}
?>
|
ok,到這里,一個最簡單的模塊就能使用了。當然,它并沒有什么作用,我們來訪問看看:
打開網址:http://localhost/emp/ 或 http://localhost/emp/index.php?ct=index&ac=index,如果能輸出"這里是dedecms模塊開發(fā)教程",則說明一切正常,我這里完全沒有問題。
下面正式進入實際的應用,包括從數據庫讀取內容,然后顯示到view層上
第五步:把控制器修改一個,我們要通過該入口頁面來訪問其它的頁面,所以添加一個鏈接(最終要實現(xiàn)的功能是,對數據庫中的表進行增刪改查),這里只以讀取數據為例:
1
<?php
//注意,所有的控制器類都要繼承Model類
class index extends Control{
function ac_index(){// dedecms mvc中的控制器方法,一律需要添加前綴 ac_ ,這是必須這么做的
echo "這里是 dedecms 模塊開發(fā)教程<br />";
echo "<a href='index.php?ct=browser'>列出文章</a>";
}
}
?>
|
第六步:創(chuàng)建一個瀏覽文章列表的control控制器類文件browser.php
01
<?php
class browser extends Control{
//需要特別說明,在dede的MVC中的控制器方法,需要以ac_開頭
function ac_index(){
/**
* 調用Model的方法,固定的調用形式,讀取數據庫內容
* $this->Model('model名稱')->方法();
**/
$res = $this->Model('emp')->listart();
//返回結果賦給一個全局數組,這樣,模板文件便可讀取
$GLOBALS['res'] = $res;
//指定模板并顯示出來
$this->SetTemplate('mytemp.html');//指定模板(不需要指定路徑,默認在/模塊名/templates/default/下)
$this->Display();//顯示
}
}
?>
|
第七步:創(chuàng)建一個model類文件emp.php(這應該是第六步)
01
<?php
//一個model操作一張表。通過不同的方法,來對表進行增刪改查
class emp extends Model{
function listart(){
$query = "select id,tilte,pubdate from dede_archives limit 0,10";
$this->dsql->Execute('me', $query);//參考dedecms的數據庫類
$rows = array();
while($row = $this->dsql->getarray()){
$rows[] = $row;
}
return $rows;
}
}
?>
|
第八步:在 /模塊名/templates/default/ 目錄下,創(chuàng)建模板文件mytemp.html