前兩篇寫了部署前臺頁面....
這篇說部署後臺的程序框架......後臺有自己的控制器和視圖,Yii 有一個模塊機制,可以幫助我們實現後臺的搭建,模塊有獨立的控制器,視圖,模型....
模塊不可以單獨部署... 使用 gii 自動代碼生成工具創建後臺模塊,gii其實本身也是一個模塊
一、商城後臺部署
1.在 main.php 配置文件中打開 gii 配置,以方便使用
21 'modules'=>array(
22 // uncomment the following to enable the Gii tool
23
24 'gii'=>array(
25 'class'=>'system.gii.GiiModule',
26 'password'=>'Enter Your Password Here',
27 // If removed, Gii defaults to localhost only. Edit carefully to taste.
28 'ipFilters'=>array('127.0.0.1','::1'),
29 ),
30
31 ),
‘class’ => 'system.gii.GiiModule', system 值的是yii的核心 framework目錄 gii爲子目錄 GiiModule是gii類文件
'password'=>'Enter Your Password Here' 提示需要設置密碼,是爲了防止其他人而已使用gii
'ipFilters'=>array('127.0.0.1','::1'), 過濾器,設置只有本地才能訪問
2.gii如何來訪問?
通過路由的形勢訪問 gii 模塊 http://***.***.**.**:****/shop/index.php?r=模塊名字
路由首先判斷 r= 當前的名字是否是模塊,如果是模塊,就訪問模塊,否則定位到控制器
注:在遠程服務器玩的時候一定要注意配置的ip過濾器....確定要把自己訪問的ip添加進去 ..... 我是在遠程linux上操作,剛纔那個ip過濾器把我噁心了一下
訪問 http://***.***.**.**:****/shop/index.php?r=gii 不出意外的話會提示輸入密碼,密碼正確進入gii代碼自動生成工具頁面
3.生成一個後臺模塊..... 使用gii工具內的 Module Generator
輸入一個後臺名字 ,我輸入 backshop 然後預覽,確定生成,會在 protected 目錄下自動生成一個modules文件夾
我是在linux系統中操作,看起來不是很形象化....湊合着看,在windows上面會好一些
這樣就算是成功創建了一個名字是 backshop 的模塊,接着根據提示去 主配置文件中配置這個模塊(引入模塊)
現在可以自己修改後臺的顯示模板文件,後臺默認的模板文件路徑 /shop/protected/modules/backshop/views/default/index.php
後臺默認的控制器是 /shop/protected/modules/backshop/controllers/DefaultController.php 在DefaultController.php 中有 actionIndex方法,所以在backshop/目錄下有一個default文件夾,裏面有index.php視圖文件
在沒有定義後臺的佈局時,後臺會默認顯示前臺的佈局.....這也是代碼的重用性.....
4. 在後臺部署用戶登錄功能,也是通過控制器和視圖展示登錄界面,建立控制器,寫actionLogin方法,渲染login.php視圖
後臺的操作跟前面是一樣的,只是訪問後臺的時候有點區別,後臺在訪問的時候路由需要加上模塊的名字,所以要在backshop/views/ 路徑下創建 manager文件夾,在裏面放入後臺登陸的模板文件 login.php, 然後在控制器中調用render方法渲染視圖
訪問後臺 http://****.com/index.php?r=backshop/manager/login [模塊名/控制器/action方法]
在/shop/assets/ 路徑下創建後臺資源文件夾 back/img back/css 導入後臺全部資源......
在全局變量文件 constant.php 中增加後臺資源路徑,在模板文件中修改css.image的引入路徑.....
18 //後臺樣式目錄地址
19 define('BACK_CSS_URL', '/shop/assets/back/css/');
20
21 //後臺圖片目錄地址
22 define('BACK_IMG_URL', '/shop/assets/back/img/');
23
ok。改好了...... 看着還不錯的樣子.....
5. 實現後臺其他頁面效果
後臺整體架構使用html中的框架標籤 frameset
創建後臺首頁展示控制器 /shop/protected/modules/backshop/controllers/IndexController.php 並寫actionHead actionLeft actionRight 三個方法
*/
8 class IndexController extends Controller{
9
10 //生成頭部
11 function actionHead(){
12
13 $this->renderPartial('head');
14 }
15
16 //生成左側菜單
17 function actionLeft(){
18
19 $this->renderPartial('left');
20 }
21
22 //生成右側主題內容區
23 funciton actionRight(){
24
25 $this->renderPartial('right');
26 }
27 }
http://.......com/index?r=manager/index/head
把head left right 用html的frameset便籤整合到一起,在IndexController中用actionIndex方法渲染整合後的模板文件
<frameset border=0 framespacing=0 rows="60, *" frameborder=0>
<frame name=head src="./head.html" frameborder=0 noresize scrolling=no>
<frameset cols="170, *">
<frame name=left src="./left.html" frameborder=0 noresize />
<frame name=right src="./right.html" frameborder=0 noresize scrolling=yes />
</frameset>
</frameset>
注意引入時使用的路徑》。。。要用路由訪問的路徑
ok...都是簡單操作,,上圖,處理完之後的結果畫面
6.後臺商品頁面的整合 ---- 商品添加 商品修改 商品展示【一樣的方法】
7.在後臺首頁中點擊產品中心-產品展示,就會在右邊顯示產品展示頁(show).
只需要修改後臺left.php 頁面中產品展示的超鏈接,不過這裏的超鏈接是透過路由尋找的。。。
在show.php頁面中繼續把添加商品跟修改商品的鏈接也換掉
./index.php?r=backshop/goods/add ./index.php?r=backshop/goods/update
修改後顯示的效果是這樣的....
ok
後續(........)