牛骨文教育服务平台(让学习变的简单)
博文笔记

TP框架后台菜单栏

创建时间:2015-12-14 投稿人: 浏览次数:239
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" onclick="change_url("{:U($vo["href"])}",this)"><a>{$vo.name}</a></li>
</foreach>
</ul>
</volist>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。