/** * 批量导入插件 * @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); } } } }
/** * 批量导入插件 * @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); } } } }
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); } } } }