Yii框架开发商城(三)

来源:互联网 发布:覆盖数据恢复软件 编辑:程序博客网 时间:2024/05/16 12:26

  

  前两篇写了部署前台页面....

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

后续(........)

0 0
原创粉丝点击