权限认证
实现权限认证
①修改公共控制器调用方法进行校验
②增加属性保存信息
③根据用户ID获取角色ID
④根据不同的角色获取权限信息
对于非超级管理员角色的权限信息如下
⑤对权限信息进行格式化
超级管理数据
非超级管理员
⑥根据当前访问的进行判断
处理后台首页没有权限
处理后台首页中的导航菜单
①修改后台首页控制器增加方法
②模板显示
非超级管理员
超级管理员
权限认证性能调优
由于权限认证处理是在公共控制器中的构造方法中实现。对于每一次访问方法都需要走权限认证。而权限认证涉及多次的数据库的查询操作。因此影响数据库性能。可以使用缓存解决问题
①修改代码
②处理超级管理员的权限
当超级管理员访问某一个方法 而方法在权限中没有对应的数据
使用缓存需要注意:一旦权限信息或者用户信息发送变更需要更新缓存
商品相册
添加商品相册
创建相册数据表
CREATE TABLE `shop_goods_img` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`goods_id` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘商品ID’,
`goods_img` varchar(255) NOT NULL DEFAULT ” COMMENT ‘相册原图’,
`goods_thumb` varchar(255) NOT NULL DEFAULT ” COMMENT ‘相册小图’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
商品添加显示相册
①增加相册选项卡
②增加选项卡标签对应的table
效果如下
③实现点击按钮增肌上传框
实现相册入库
测试相册入库直接写入商品信息
相册编辑
显示编辑商品的相册
①修改方法
②显示edit模板增加相册选项卡
增加选项卡
拷贝js
最终效果如下
实现编辑商品追加相册
实现编辑商品相册图片删除
①修改图片属性
②绑定图片的点击事件触发ajax
③创建方法处理删除图片请求
④ajax成功处理dom元素移除
前台页面显示
首页显示
①修改前台index控制器中的index方法
②拷贝前台模板文件
③拷贝资源文件
④替换资源地址
使用版本号(了解)
版本号可以控制资源文件的缓存更新
①在配置文件中增加配置
②在模板中使用
页头页尾的公用
①提取头部HTML代码
②在index模板中引入头部
③提取底部的HTML代码
④index模板引入底部的代码
显示商品列表页
①创建控制器方法显示模板
②拷贝模板文件
③修改模板
④解决头部导航菜单展开与收缩效果
先在index控制器下的index方法中赋予标识符
在模板中判断
商品详情页显示
①创建控制器方法加载模板
②拷贝模板
③处理模板资源地址
④模板公用
显示导航商品分类信息
①修改index方法获取数据
结果如下
②创建公共控制器构造方法获取数分类数据
③修改 其他控制器的继承关系
修改index控制器
修改category控制器
修改goods控制器
④显示第一层分类信息
⑤显示第二层菜单
⑥显示第三层导航菜单
显示首页中的推荐商品
①自定义模型创建方法可以获取推荐商品
②在控制器中获取推荐的商品
③修改配置项指定资源地址
④模板显示数据
用户注册
用户数据表创建
CREATE TABLE `shop_user` (
`id` int(11) NOT NULL,
`username` varchar(255) NOT NULL DEFAULT ” COMMENT ‘用户名’,
`password` char(32) NOT NULL DEFAULT ” COMMENT ‘密码’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
显示用户注册页
①创建方法加载模板
②拷贝模板文件
③修改模板提取头部
④修改注册模板
⑤修改footer.html模板
实现注册入库
①修改方法
②创建模型