您的位置:首页 > 编程语言 > PHP开发

Yii框架开发商城(三)

2014-03-30 12:55 162 查看
前两篇写了部署前台页面....

这篇说部署后台的程序框架......后台有自己的控制器和视图,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 }


都老操作了,就不详细说了,把模板文件中的head.php left.php right.php 放在views/index/目录下.....替换好模板文件中的资源引入路径,刷新访问
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

后续(........)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: