zoukankan      html  css  js  c++  java
  • weiphp基础插件控制器

    <?php
    
    namespace HomeController;      //命名空间
    
    use ThinkController;       //引用系统控制器
    
    /**
     * 扩展控制器
     * 用于调度各个扩展的URL访问需求
     */
    class AddonsController extends Controller {     //插件扩展控制器
        protected $addons = null;       //受保护的字段$addons为空
        protected $addon, $model;       //受保护的字段$addon,$model
        function _initialize() {        //初始化方法
            $this->initFollow ();       // 公众号粉丝信息初始化 
            
            C ( 'EDITOR_UPLOAD.rootPath', './Uploads/Editor/' . get_token () . '/' );       //设置EDITOR_UPLOAD.rootPath值
        }
        public function execute($_addons = null, $_controller = null, $_action = null) {    //定义execute方法
            if (! empty ( $_action ) && ! empty ( $_addons ) && empty ( $_controller )) {   //如果传参全不为空
                $_controller = $_GET ['_controller'] = $_addons;    //设置$_controller、$_addons的值相等且等于传过来的_controller的值
                $_REQUEST ['_controller'] = $_REQUEST ['_addons'];  //全局变量中_controller和_addons相等
            }
            
            if (C ( 'URL_CASE_INSENSITIVE' )) {
                $_addons = ucfirst ( parse_name ( $_addons, 1 ) );  //转换$_addons串风格,并让首字母大写
                $_controller = parse_name ( $_controller, 1 );  //转换$_addons串风格
            }
            
            define ( 'ADDON_PUBLIC_PATH', __ROOT__ . '/Addons/' . $_addons . '/View/default/Public' );  //定义ADDON_PUBLIC_PATH
            defined ( '_ADDONS' ) or define ( '_ADDONS', $_addons );    //判断并定义_ADDONS
            defined ( '_CONTROLLER' ) or define ( '_CONTROLLER', $_controller );       //判断并定义_CONTROLLER
            defined ( '_ACTION' ) or define ( '_ACTION', $_action );    //判断并定义_ACTION
            
            $token = get_token ();    //获取token
            if (in_array ( $_action, array (    //判断$_action是在数组中
                    'lists',
                    'config',
                    'nulldeal' 
            ) ) && (empty ( $token ) || $token == '-1')) {  //$token 为空或者等于-1
                $this->error ( '请先增加公众号!', U ( 'Home/MemberPublic/lists' ) );   //提示并跳转到会员列表页
            }
            
            $this->_nav ();    //调用 _nav()方法
            
            if (! empty ( $_addons ) && ! empty ( $_controller ) && ! empty ( $_action )) { //都不为空
                tongji ( $_addons );    //统计插件
                
                A ( "Addons://{$_addons}/{$_controller}" )->$_action ();    //实例化控制器
            } else {
                $this->error ( '没有指定插件名称,控制器或操作!' );    //报错
            }
        }
        function _nav() {
            $map ['name'] = _ADDONS;    //设置查询条件
            $this->addon = $addon = M ( 'Addons' )->where ( $map )->find ();    //查询Addons表,给本        对象下addon赋值
            $nav = array ();    //准备空数组
            if ($addon ['has_adminlist']) {//判断并组成数组
                $res ['title'] = $addon ['title'];
                $res ['url'] = U ( 'lists' );
                $res ['class'] = _ACTION == 'lists' ? 'current' : '';
                $nav [] = $res;
            }
            if (file_exists ( ONETHINK_ADDON_PATH . _ADDONS . '/config.php' )) {//检查插件目录下confing文件是否存在
                $res ['title'] = '功能配置';
                $res ['url'] = U ( 'config' );
                $res ['class'] = _ACTION == 'config' ? 'current' : '';
                $nav [] = $res;
            }
            if (empty ( $nav ) && _ACTION != 'nulldeal') {  //数组为空且者_ACTION不等于‘nulldeal’
                U ( 'nulldeal', '', true );     /
            }
            $this->assign ( 'nav', $nav );  //交$nav数据给模板
            
            return $nav;    //返回该值
        }
  • 相关阅读:
    在Eclipse中制作SSH配置文件提示插件
    JsonUtil
    jQuery Callback 函数
    jcifs包实现域认证的单点登录带来了个奇怪的问题
    jQuery AJAX 函数
    java反射技
    jcifs的NTLMHTTP验证及所犯错误
    jQuery CSS 函数
    JCIFS
    JCIFS NTLM HTTPAuthenticationJCIFS使用NTLMHTTP认证
  • 原文地址:https://www.cnblogs.com/dennr/p/4634674.html
Copyright © 2011-2022 走看看