(1)虛擬主機php
(2)部署html
部署完成後刷新頁面會看到笑臉,在Home分組下控制器Application/Home/Controller/IndexController.class.php下定義顯示mysql
(3)先後臺建立Admin後臺分組文件,方便分組Admin和Homesql
(4)處理後臺登陸頁面thinkphp
建立控制器IndexController.class.php,加載模板數據庫
<?php namespace Admin\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $this->display(); } }
接下來處理模板相關後端
(5)模板引入Admin/View/Index/index.html瀏覽器
(6)數據庫blog、數據表服務器
文章數據表:oracle
create table blog_article( id mediumint not null auto_increment comment'文章id', title varchar(60) not null comment'文章標題', des varchar(255) not null comment'文章描述', pic varchar(100) not null comment'文章縮略圖', content text not null comment'文章內容', cateid mediumint not null comment'文章所屬欄目id', time int(12) not null comment'文章發佈時間', primary key(id) )engine=myisam default charset=utf8;
欄目數據表:
create table blog_cate( id mediumint not null auto_increment comment'欄目id', catename varchar(60) not null comment'欄目名稱', primary key(id) )engine=myisam default charset=utf8;
管理員數據表:
create table blog_admin( id mediumint not null auto_increment comment'管理員id', username varchar(60) not null comment'管理員用戶名', password char(32) not null comment'管理員密碼', primary key(id) )engine=myisam default charset=utf8;
友情連接數據表:
create table blog_link( id mediumint not null auto_increment comment'友情連接id', title varchar(60) not null comment'友情連接名', url varchar(100) not null comment'連接地址', des varchar(255) not null comment'連接描述', primary key(id) )engine=myisam default charset=utf8;
(7)文章分類控制器
<?php namespace Admin\Controller; use Think\Controller; class CateController extends Controller{ public function lst(){ //列表 $this->display(); } public function add(){ $this->display(); } public function edit(){ $this->display(); } public function del(){ } } ?>
(8)增長對應模板
(9)模板分離
View下建立Public文件夾,存放head.html、side.html、foot.html
<include file="Public/side" />
【二】
(1)欄目添加
控制器編寫添加方法
public function add(){ if(IS_POST){ //處理提交 $data = I('post.'); $model = M('cate'); if($model->add($data)){ $this->success('添加成功',U('lst'),3); }else{ $this->error('添加失敗'); } }else{ $this->display(); } }
此時刷新會報錯
此時須要去應用級別配置文件Application/Common/Conf/config.php配置數據庫
<?php return array( //'配置項'=>'配置值' /* 數據庫設置 */ 'DB_TYPE' => 'mysql', // 數據庫類型,除此外還有可能用到access,oracle,sqlite,db2 'DB_HOST' => 'localhost', // 服務器地址,如果遠程服務器,則填寫遠程IP 'DB_NAME' => 'blog', // 數據庫名 'DB_USER' => 'root', // 用戶名 'DB_PWD' => 'root', // 密碼 'DB_PORT' => '3306', // 端口 'DB_PREFIX' => 'blog_', // 數據庫表前綴,設置時必須加下劃線 'DB_CHARSET' => 'utf8', //字符集編碼 // 'DB_DEBUG' => 'true', //數據庫調試模式,開啓後能夠記錄50條SQL日誌 //顯示跟蹤信息 'SHOW_PAGE_TRACE' => true,//默認爲false關閉 );
(2)欄目後端驗證
建立模型CateModel.class.php,添加後端驗證
參考手冊:http://document.thinkphp.cn/manual_3_2.html#auto_validate
代碼:
<?php namespace Admin\Model; use Think\Model; class CateModel extends Model{ protected $_validate = array( array('catename','require','不能爲空',1,'regesx',3), //默認狀況下用正則進行驗證 array('catename','','該名稱已經存在!',0,'unique',3), // 在新增的時候驗證name字段是否惟一 ); } ?>
對應修改控制器CateController.class.php代碼:
public function add(){ if(IS_POST){ //處理提交 $data = I('post.'); $cate = D('cate'); if ($cate->create($data)) { if($cate->add()){ $this->success('添加成功',U('lst'),3); }else{ $this->error('添加失敗'); } }else{ $this->error($cate->getError()); } }else{ $this->display(); } }
(3)欄目顯示及排序
數據表新增排序字段,默認爲10
alter table blog_cate modify sort mediumint default '10';
修改模板文件,讓排序對應上id
<input class="common-input sort-input" name="{$vol.id}" value={$vol.sort} type="text">
控制器編寫排序方法
//分類排序 public function sort(){ $cate = D('cate'); foreach ($_POST as $id => $sort) { $cate->where(array('id'=>$id))->setField('sort',$sort); //setField系統函數排序字段,id對應sort } $this->success('排序成功',U('lst'),3); }
(4)欄目的刪除
刪除操做通常須要二次確認,簡單寫法
<a class="link-del" href="__CONTROLLER__/del/id/{vol.id}" onclick="return confirm('確認刪除?');">刪除</a>
點擊刪除後會彈出瀏覽器自帶的確認框,而後點擊確認便會跳到href對應的方法中去
注意:必定要傳參id
(5)欄目修改
//修改欄目 public function edit(){ $cate = D('cate'); $cater = $cate->find(I('id')); $this->assign('cater',$cater); if(IS_POST){ //處理提交 $data['id'] = I('id'); $data['catename'] = I('catename'); // 【注意一:傳id和catename,否則對應不到數據,會提示修改失敗】 //後端驗證 if ($cate->create($data)) { $result = $cate->save(); //【注意二:保存更新時,判斷條件裏不能直接寫保存過程,沒法執行判斷一塊兒作】 //因此要先執行保存,後判斷 if($result){ $this->success('修改爲功',U('lst'),3); }else{ $this->error('修改失敗'); } }else{ $this->error($cate->getError()); } return; } $this->display(); }
注意:1. 必定加隱藏域,且更新前須要將id和修改字段一塊兒傳入,不然會提示修改失敗;
(6)製做連接
(7)添加分頁
(8)連接的刪除和修改
【三】
(1)引入文章編輯器