浏览代码

Merge pull request #1005 from Celaraze/2.0

为扩展增加Logo字段
Jiang Qinghua 4 年之前
父节点
当前提交
0dac671d21
共有 2 个文件被更改,包括 20 次插入0 次删除
  1. 3 0
      src/Http/Controllers/ExtensionController.php
  2. 17 0
      src/Http/Repositories/Extension.php

+ 3 - 0
src/Http/Controllers/ExtensionController.php

@@ -35,6 +35,9 @@ class ExtensionController extends Controller
     {
         return new Grid(new Extension(), function (Grid $grid) {
             $grid->number();
+            $grid->column('logo')->display(function (){
+                return $this->logo;
+            })->image('',50,50);
             $grid->column('name')->displayUsing(Extensions\Name::class);
             $grid->column('description')->displayUsing(Extensions\Description::class)->width('58%');
 

+ 17 - 0
src/Http/Repositories/Extension.php

@@ -8,6 +8,7 @@ use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Repositories\Repository;
 use Dcat\Admin\Show;
+use ReflectionException;
 
 class Extension extends Repository
 {
@@ -33,6 +34,21 @@ class Extension extends Repository
     {
         $property = $extension->composerProperty;
 
+        // 处理包的Logo
+        $logo = null;
+        try {
+            $logo_path = $extension->path().'/logo.png';
+            if(file_exists($logo_path) && $file = fopen($logo_path,"rb", 0))
+            {
+                $content = fread($file,filesize($logo_path));
+                fclose($file);
+                $base64 = chunk_split(base64_encode($content));
+                $logo = 'data:image/png;base64,' . $base64;
+            }
+        } catch (ReflectionException $e) {
+            // 捕获异常,不用输出
+        }
+
         $name = $extension->getName();
         $current = $extension->getVersion();
         $latest = $extension->getLocalLatestVersion();
@@ -40,6 +56,7 @@ class Extension extends Repository
         return [
             'id'           => $name,
             'alias'        => $name,
+            'logo'         => $logo,
             'name'         => $name,
             'version'      => $current,
             'type'         => $extension->getType(),