TP框架后台菜单栏

TP的验证码存放在session里面,它的键值对都是经过加密的,找到验证码的生成源文件,在源文件把验证码放入自己设定的session的键里面


将session里面记录的admin里面的name放到index.html页面
<span class="cut">|</span>{$admin.id}:<span class="mr10">{$admin.name}</span>
注销就是跳转个页面  清除对应的session
<a href="{:U('Index/logout')}">[注销]</a>
public function logout(){
        session("admin",null); $this->success("退出成功,如果想继续操作,请重新登录",U('Login/index'),2);
    }


我们后台的所有操作(除了登录外)其他的操作必须是在登录操作之后完成 所以每个页面(除了登陆) 都要判断是否登录
面向对象,但是我们想在每次操作之前判断是否登录过,所有我们选择在构造函数里面进行拦截判断是否登录过
所以在新建一个控制器 BackController extends  Controller
class BackController extends Controller{
    public function __construct(){   会覆盖掉父类的构造方法
        header("content-type:text/html;charset=utf-8");
        //需要把父类的构造方法拿过来
        parent::__construct();//执行一次父类的构造方法
        if(!session("?admin")){ //没登录过
            $this->error("你还没登陆,请先登录",U('Login/index'),3);
            exit;
        }
    }
}
parent::__construct();//执行一次父类的构造方法
除了登录 ,其他所有控制器都去继承 BackController


CMS的菜单栏是写在xml  通过simplexml_load_file()进行加载读取
thinkphp是把菜单栏写在配置文件里面  admin->config.php
//设置后台的菜单栏
    'MENU'=>array(
        array(
            'id'=>'1',
            'name'=>'商品管理',
            'son'=>array(
                array('name'=>'分类管理','href'=>'Cate/index','id'=>'11'),
                array('name'=>'商品管理','href'=>'Goods/index','id'=>'12'),
                array('name'=>'幻灯片管理','href'=>'Banner/index','id'=>'13'),
                array('name'=>'推荐商品管理','href'=>'Recom/index','id'=>'12'),
            ),
        ),
        array(
            'id'=>'2',
            'name'=>'用户管理',
            'son'=>array(
                array('name'=>'会员管理','href'=>'Member/index','id'=>'21'),
                array('name'=>'订单管理','href'=>'Order/index','id'=>'22'),
            ),
        ),
        array(
            'id'=>'3',
            'name'=>'管理员管理',
            'son'=>array(
                array('name'=>'角色管理','href'=>'Power/index','id'=>'31'),
                array('name'=>'管理员管理','href'=>'Admin/index','id'=>'32'),
            ),
        ),
    ),


读取配置文件
C("键")
//读取配置  在index/index
        $menu_data = C("MENU");
        $this->assign("menu_data",$menu_data);


视图层的循环  手册
<volist name="list" id="vo" key="key"></volist>
<foreach name="list" item="vo" key="key"></foreach>
等价于
foreach($list as $key=>$vo){}


标签里面的变量的取值方式和php一样
{:U($val['href'])}  在行间事件的小括号里面进行传参


 <volist name="menu_data" id="val">
<h3 class="f14"><span class="J_switchs cu on" title="展开或关闭"></span>{$val.name}</h3>
<ul>
<foreach name="val.son" item="vo">
<li class="sub_menu" οnclick="change_url('{:U($vo['href'])}',this)"><a>{$vo.name}</a></li>
</foreach>
</ul>
</volist>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值