예제 #1
0
 /**
  * 批量导入插件
  * @param array $data 插件信息
  * @param boolean $recursive 是否递归合并
  * @return void
  */
 public static function import($data, $recursive = true)
 {
     //初始化
     if (empty(self::$tags) && empty($data) && C('DB_HOST') && C('DB_NAME') && C('DB_USER')) {
         $tags = cache('Behavior');
         if (empty($tags)) {
             $tags = D('Common/Behavior')->behavior_cache();
         }
         self::$tags = $tags;
     } else {
         if (!C('DB_HOST') && !C('DB_NAME') && !C('DB_USER')) {
             //当没有安装的时候载入初始tag
             $data = array('app_init' => array('Behavior\\BuildLiteBehavior', 'Common\\Behavior\\AppInitBehavior'), 'app_begin' => array('Behavior\\ReadHtmlCacheBehavior'), 'app_end' => array('Behavior\\ShowPageTraceBehavior'), 'view_parse' => array('Behavior\\ParseTemplateBehavior'), 'template_filter' => array('Behavior\\ContentReplaceBehavior'), 'view_filter' => array('Behavior\\WriteHtmlCacheBehavior'));
         }
     }
     if (!$recursive) {
         // 覆盖导入
         self::$tags = array_merge(self::$tags, $data);
     } else {
         // 合并导入
         foreach ($data as $tag => $val) {
             //兼容tp原来的写法
             if (is_array($val)) {
                 foreach ($val as $k => $rs) {
                     if (is_array($rs)) {
                         $val[$k] = $rs;
                     } else {
                         $val[$k] = array('_type' => 2, 'class' => $rs);
                     }
                 }
             }
             if (!isset(self::$tags[$tag])) {
                 self::$tags[$tag] = array();
             }
             if (!empty($val['_overlay'])) {
                 // 可以针对某个标签指定覆盖模式
                 unset($val['_overlay']);
                 self::$tags[$tag] = $val;
             } else {
                 // 合并模式
                 self::$tags[$tag] = array_merge(self::$tags[$tag], $val);
             }
         }
     }
 }
예제 #2
0
 /**
  * 批量导入插件
  * @param array $data 插件信息
  * @param boolean $recursive 是否递归合并
  * @return void
  */
 static public function import($data,$recursive=true) {
     if(!$recursive){ // 覆盖导入
         self::$tags   =   array_merge(self::$tags,$data);
     }else{ // 合并导入
         foreach ($data as $tag=>$val){
             if(!isset(self::$tags[$tag]))
                 self::$tags[$tag]   =   array();            
             if(!empty($val['_overlay'])){
                 // 可以针对某个标签指定覆盖模式
                 unset($val['_overlay']);
                 self::$tags[$tag]   =   $val;
             }else{
                 // 合并模式
                 self::$tags[$tag]   =   array_merge(self::$tags[$tag],$val);
             }
         }            
     }
 }
예제 #3
0
 public static function import($data, $recursive = true)
 {
     if (!$recursive) {
         self::$tags = array_merge(self::$tags, $data);
     } else {
         foreach ($data as $tag => $val) {
             if (!isset(self::$tags[$tag])) {
                 self::$tags[$tag] = array();
             }
             if (!empty($val['_overlay'])) {
                 unset($val['_overlay']);
                 self::$tags[$tag] = $val;
             } else {
                 self::$tags[$tag] = array_merge(self::$tags[$tag], $val);
             }
         }
     }
 }