public function run()
 {
     trigger('imerge_start', $this);
     mark('开始自动合图扫描', 'emphasize');
     $files = get_files_by_type(C('SRC.SRC_PATH'), 'css');
     $generator = new MergeConfigGenerator($files);
     $generator->generate();
     $writer = new MergeConfigWriter(C('IMERGE_PATH'));
     $writer->writeImageConfig($generator->getConfig());
     // 更新大图
     $this->updateSprite();
     trigger('imerge_end', $this);
 }
 /**
  * 加载所有大图配置
  * @return array
  */
 public function getSpriteConfig()
 {
     $ret = array();
     $path = $this->root . '/' . C('IMERGE_SPRITE_DIR');
     $files = get_files_by_type($path, 'php');
     foreach ($files as $file) {
         //            $temp = include($file);
         //            $ret = array_merge($ret, $temp);
         $type = basename($file, '.php');
         $ret[$type] = (include $file);
     }
     return $ret;
 }
Example #3
0
 /**
  * 扫描所有文件
  * @param $paths 扫描目录
  * @param $types 扫描文件类型
  * @return array 文件列表数组
  */
 private function getFileList($paths, $types, $base = '')
 {
     // 使用object,进行引用传参
     $ret = new stdClass();
     $ret->return = null;
     trigger('processor_fetch_files', $paths, $types, $ret);
     return is_null($ret->return) ? get_files_by_type($paths, $types, $base) : $ret->return;
 }
Example #4
0
 /**
  * 获取所有图片列表
  * 用于智能提示
  */
 public function hint()
 {
     if (!isset($_GET['key'])) {
         show_json('No key!');
         return;
     }
     $ret = array();
     $key = $_GET['key'];
     $total = 8;
     $count = 0;
     $options = $this->tool->getOptions();
     $scanPath = null;
     foreach ($options['process'] as $process) {
         if ($process['processor'] === 'media') {
             $scanPath = $process['from'];
         }
     }
     if ($scanPath) {
         $srcPath = C('SRC.SRC_PATH');
         $len = strlen($srcPath);
         $fileList = get_files_by_type($scanPath, 'png', $srcPath);
         foreach ($fileList as $index => $file) {
             if ($count >= $total) {
                 break;
             }
             $file = substr($file, $len);
             if (strpos($file, $key) !== false) {
                 array_push($ret, $file);
                 $count++;
             }
         }
         show_json($ret);
     }
 }
Example #5
0
 /**
  * 生成合图md5信息
  */
 private static function genMd5Map()
 {
     $images = get_files_by_type(C('IMERGE_PATH') . '/' . C('IMERGE_SPRITE_DIR'), 'png');
     foreach ($images as $image) {
         self::$md5Map[basename($image)] = md5(file_get_contents($image));
     }
 }