Просмотр исходного кода

Allow to create new plugins without updating every time list on update

Jaap Marcus 5 лет назад
Родитель
Сommit
de5b944fc5

+ 8 - 12
web/add/webapp/index.php

@@ -30,24 +30,20 @@ if(!in_array($v_domain, $user_domains)) {
     exit;
     exit;
 }
 }
 
 
-$v_web_apps = [
-    [ 'name'=>'Wordpress', 'group'=>'cms', 'enabled'=>true, 'version'=>'latest', 'thumbnail'=>'/images/webapps/wp-thumb.png' ],
-    [ 'name'=>'Drupal',    'group'=>'cms', 'enabled'=>false,'version'=>'latest', 'thumbnail'=>'/images/webapps/drupal-thumb.png' ],
-    [ 'name'=>'Joomla',    'group'=>'cms', 'enabled'=>false,'version'=>'latest', 'thumbnail'=>'/images/webapps/joomla-thumb.png' ],
-
-    [ 'name'=>'Opencart',   'group'=>'ecommerce', 'enabled'=>true,  'version'=>'3.0.3.3', 'thumbnail'=>'/images/webapps/opencart-thumb.png' ],
-    [ 'name'=>'Prestashop', 'group'=>'ecommerce', 'enabled'=>true, 'version'=>'1.7.7.1', 'thumbnail'=>'/images/webapps/prestashop-thumb.png' ],
-
-    [ 'name'=>'Laravel', 'group'=>'starter', 'enabled'=>true, 'version'=>'7.x', 'thumbnail'=>'/images/webapps/laravel-thumb.png' ],
-    [ 'name'=>'Symfony', 'group'=>'starter', 'enabled'=>true, 'version'=>'4.3.x', 'thumbnail'=>'/images/webapps/symfony-thumb.png' ],
-];
+$appInstallers = glob(__DIR__.'/../../src/app/WebApp/Installers/*/app.json');
+$v_web_apps = array();
+foreach($appInstallers as $app){
+    $json = json_decode(file_get_contents($app));
+    $array[$json -> name] = $json;
+    $v_web_apps = array_merge($v_web_apps, $array);
+}
 
 
 // Check GET request
 // Check GET request
 if (!empty($_GET['app'])) {
 if (!empty($_GET['app'])) {
     $app = basename($_GET['app']);
     $app = basename($_GET['app']);
     
     
     $hestia = new \Hestia\System\HestiaApp();
     $hestia = new \Hestia\System\HestiaApp();
-    $app_installer_class = '\Hestia\WebApp\Installers\\' . $app . 'Setup';
+    $app_installer_class = '\Hestia\WebApp\Installers\\'.$app.'\\' . $app . 'Setup';
     if(class_exists($app_installer_class)) {
     if(class_exists($app_installer_class)) {
         try {
         try {
             $app_installer = new $app_installer_class($v_domain, $hestia);
             $app_installer = new $app_installer_class($v_domain, $hestia);

BIN
web/images/webapps/joomla-thumb.jpg


BIN
web/images/webapps/magento-thumb.png


+ 7 - 0
web/src/app/WebApp/Installers/Drupal/app.json

@@ -0,0 +1,7 @@
+{
+    "name": "Drupal",
+    "group": "cms",
+    "enabled": false,
+    "version": "latest",
+    "thumbnail": "drupal-thumb.png"
+}

+ 0 - 0
web/images/webapps/drupal-thumb.png → web/src/app/WebApp/Installers/Drupal/drupal-thumb.png


+ 7 - 0
web/src/app/WebApp/Installers/Joomla/app.json

@@ -0,0 +1,7 @@
+{
+    "name": "Joomla",
+    "group": "cms",
+    "enabled": false,
+    "version": "latest",
+    "thumbnail": "joomla-thumb.png"
+}

+ 0 - 0
web/images/webapps/joomla-thumb.png → web/src/app/WebApp/Installers/Joomla/joomla-thumb.png


+ 3 - 1
web/src/app/WebApp/Installers/LaravelSetup.php → web/src/app/WebApp/Installers/Laravel/LaravelSetup.php

@@ -1,6 +1,8 @@
 <?php
 <?php
 
 
-namespace Hestia\WebApp\Installers;
+namespace Hestia\WebApp\Installers\Laravel;
+
+use \Hestia\WebApp\Installers\BaseSetup as BaseSetup;
 
 
 class LaravelSetup extends BaseSetup {
 class LaravelSetup extends BaseSetup {
 
 

+ 7 - 0
web/src/app/WebApp/Installers/Laravel/app.json

@@ -0,0 +1,7 @@
+{
+    "name": "Laravel",
+    "group": "framework",
+    "enabled": true,
+    "version": "7.x",
+    "thumbnail": "laravel-thumb.png"
+}

+ 0 - 0
web/images/webapps/laravel-thumb.png → web/src/app/WebApp/Installers/Laravel/laravel-thumb.png


+ 3 - 1
web/src/app/WebApp/Installers/OpencartSetup.php → web/src/app/WebApp/Installers/Openchart/OpencartSetup.php

@@ -1,6 +1,8 @@
 <?php
 <?php
 
 
-namespace Hestia\WebApp\Installers;
+namespace Hestia\WebApp\Installers\Opencart;
+
+use \Hestia\WebApp\Installers\BaseSetup as BaseSetup;
 
 
 class OpencartSetup extends BaseSetup {
 class OpencartSetup extends BaseSetup {
 
 

+ 7 - 0
web/src/app/WebApp/Installers/Openchart/app.json

@@ -0,0 +1,7 @@
+{
+    "name": "Openchart",
+    "group": "ecommerce",
+    "enabled": true,
+    "version": "3.0.3.3",
+    "thumbnail": "opencart-thumb.png"
+}

+ 0 - 0
web/images/webapps/opencart-thumb.png → web/src/app/WebApp/Installers/Openchart/opencart-thumb.png


+ 3 - 1
web/src/app/WebApp/Installers/PrestashopSetup.php → web/src/app/WebApp/Installers/Prestashop/PrestashopSetup.php

@@ -1,6 +1,8 @@
 <?php
 <?php
 
 
-namespace Hestia\WebApp\Installers;
+namespace Hestia\WebApp\Installers\Prestashop;
+
+use \Hestia\WebApp\Installers\BaseSetup as BaseSetup;
 
 
 class PrestashopSetup extends BaseSetup {
 class PrestashopSetup extends BaseSetup {
 
 

+ 7 - 0
web/src/app/WebApp/Installers/Prestashop/app.json

@@ -0,0 +1,7 @@
+{
+    "name": "Prestashop",
+    "group": "ecommerce",
+    "enabled": true,
+    "version": "1.7.7.1",
+    "thumbnail": "prestashop-thumb.png"
+}

+ 0 - 0
web/images/webapps/prestashop-thumb.png → web/src/app/WebApp/Installers/Prestashop/prestashop-thumb.png


+ 3 - 1
web/src/app/WebApp/Installers/SymfonySetup.php → web/src/app/WebApp/Installers/Symfony/SymfonySetup.php

@@ -1,6 +1,8 @@
 <?php
 <?php
 
 
-namespace Hestia\WebApp\Installers;
+namespace Hestia\WebApp\Installers\Symfony;
+
+use \Hestia\WebApp\Installers\BaseSetup as BaseSetup;
 
 
 class SymfonySetup extends BaseSetup {
 class SymfonySetup extends BaseSetup {
 
 

+ 7 - 0
web/src/app/WebApp/Installers/Symfony/app.json

@@ -0,0 +1,7 @@
+{
+    "name": "Symfony",
+    "group": "framework",
+    "enabled": true,
+    "version": "4.3.x",
+    "thumbnail": "symfony-thumb.png"
+}

+ 0 - 0
web/images/webapps/symfony-thumb.png → web/src/app/WebApp/Installers/Symfony/symfony-thumb.png


+ 2 - 1
web/src/app/WebApp/Installers/WordpressSetup.php → web/src/app/WebApp/Installers/Wordpress/WordpressSetup.php

@@ -1,8 +1,9 @@
 <?php
 <?php
 
 
-namespace Hestia\WebApp\Installers;
+namespace Hestia\WebApp\Installers\Wordpress;
 
 
 use Hestia\System\Util;
 use Hestia\System\Util;
+use \Hestia\WebApp\Installers\BaseSetup as BaseSetup;
 
 
 class WordpressSetup extends BaseSetup {
 class WordpressSetup extends BaseSetup {
 
 

+ 7 - 0
web/src/app/WebApp/Installers/Wordpress/app.json

@@ -0,0 +1,7 @@
+{
+    "name": "Wordpress",
+    "group": "cms",
+    "enabled": true,
+    "version": "latest",
+    "thumbnail": "wp-thumb.png"
+}

+ 0 - 0
web/images/webapps/wp-thumb.png → web/src/app/WebApp/Installers/Wordpress/wp-thumb.png


+ 5 - 5
web/templates/admin/list_webapps.html

@@ -39,12 +39,12 @@
         </div>
         </div>
         <div class="app-list cards">
         <div class="app-list cards">
             <?php foreach($v_web_apps as $webapp):?>
             <?php foreach($v_web_apps as $webapp):?>
-                <div class="card <?=($webapp['enabled']?'':'disable')?>" >
-                    <span class="card-thumb"><img src="<?=$webapp['thumbnail']?>"></span>
+                <div class="card <?=($webapp->enabled?'':'disable')?>" >
+                    <span class="card-thumb"><img src="/src/app/WebApp/Installers/<?=$webapp -> name;?>/<?=$webapp -> thumbnail;?>"></span>
                     <div class="card-details">
                     <div class="card-details">
-                        <p class="card-title"><?=$webapp['name']?></p>
-                        <p><?=_('version')?>: <?=$webapp['version']?></p>
-                        <a href="/add/webapp/?app=<?=$webapp['name']?>&domain=<?=$v_domain?>" class="ui-button cancel" dir="ltr"><?=_('Setup')?></a>
+                        <p class="card-title"><?=$webapp->name;?></p>
+                        <p><?=_('version')?>: <?=$webapp->version;?></p>
+                        <a href="/add/webapp/?app=<?=$webapp->name;?>&domain=<?=$v_domain?>" class="ui-button cancel" dir="ltr"><?=_('Setup')?></a>
                     </div>
                     </div>
                 </div>
                 </div>
             <?php endforeach; ?>
             <?php endforeach; ?>