]> git.mxchange.org Git - friendica.git/commitdiff
moving boot::check_addons to Friendica\Core\Addon::check
authorPhilipp Holzer <admin@philipp.info>
Fri, 5 Oct 2018 23:13:29 +0000 (01:13 +0200)
committerPhilipp Holzer <admin@philipp.info>
Fri, 5 Oct 2018 23:13:29 +0000 (01:13 +0200)
And extending Addon from BaseObject because of self::getApp()

boot.php
index.php
src/Core/Addon.php

index b5c9166982226830dbcab7a52bde85e92cd96af9..b1d5b593fd4619c64472786ca39f5e1fecd8f470 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -673,62 +673,6 @@ function run_update_function($x, $prefix)
        }
 }
 
-/**
- * @brief Synchronise addons:
- *
- * system.addon contains a comma-separated list of names
- * of addons which are used on this system.
- * Go through the database list of already installed addons, and if we have
- * an entry, but it isn't in the config list, call the uninstall procedure
- * and mark it uninstalled in the database (for now we'll remove it).
- * Then go through the config list and if we have a addon that isn't installed,
- * call the install procedure and add it to the database.
- *
- * @param object $a App
- */
-function check_addons(App $a)
-{
-       $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
-       if (DBA::isResult($r)) {
-               $installed = $r;
-       } else {
-               $installed = [];
-       }
-
-       $addons = Config::get('system', 'addon');
-       $addons_arr = [];
-
-       if ($addons) {
-               $addons_arr = explode(',', str_replace(' ', '', $addons));
-       }
-
-       $a->addons = $addons_arr;
-
-       $installed_arr = [];
-
-       if (count($installed)) {
-               foreach ($installed as $i) {
-                       if (!in_array($i['name'], $addons_arr)) {
-                               Addon::uninstall($i['name']);
-                       } else {
-                               $installed_arr[] = $i['name'];
-                       }
-               }
-       }
-
-       if (count($addons_arr)) {
-               foreach ($addons_arr as $p) {
-                       if (!in_array($p, $installed_arr)) {
-                               Addon::install($p);
-                       }
-               }
-       }
-
-       Addon::loadHooks();
-
-       return;
-}
-
 /**
  * @brief Used to end the current process, after saving session state.
  * @deprecated
index bccdebe7b05f65ab9f0999343d7355b4382bfc7a..1a3e213513967010923b65063bca7601fd9d2d05 100644 (file)
--- a/index.php
+++ b/index.php
@@ -172,7 +172,7 @@ if ($a->isInstallMode() && $a->module!="view") {
 } else {
        check_url($a);
        check_db(false);
-       check_addons($a);
+       Addon::check();
 }
 
 Nav::setSelected('nothing');
index 4c20c96ad4705546ed0ab6c429c0e64351a74f9b..aa3a403f909b55092dc0fc601f29361fc5d60628 100644 (file)
@@ -5,6 +5,7 @@
 namespace Friendica\Core;
 
 use Friendica\App;
+use Friendica\BaseObject;
 use Friendica\Database\DBA;
 
 require_once 'include/dba.php';
@@ -12,8 +13,65 @@ require_once 'include/dba.php';
 /**
  * Some functions to handle addons
  */
-class Addon
+class Addon extends BaseObject
 {
+       /**
+        * @brief Synchronise addons:
+        *
+        * system.addon contains a comma-separated list of names
+        * of addons which are used on this system.
+        * Go through the database list of already installed addons, and if we have
+        * an entry, but it isn't in the config list, call the uninstall procedure
+        * and mark it uninstalled in the database (for now we'll remove it).
+        * Then go through the config list and if we have a addon that isn't installed,
+        * call the install procedure and add it to the database.
+        *
+        */
+       public static function check()
+       {
+               $a = self::getApp();
+
+               $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
+               if (DBA::isResult($r)) {
+                       $installed = $r;
+               } else {
+                       $installed = [];
+               }
+
+               $addons = Config::get('system', 'addon');
+               $addons_arr = [];
+
+               if ($addons) {
+                       $addons_arr = explode(',', str_replace(' ', '', $addons));
+               }
+
+               $a->addons = $addons_arr;
+
+               $installed_arr = [];
+
+               if (count($installed)) {
+                       foreach ($installed as $i) {
+                               if (!in_array($i['name'], $addons_arr)) {
+                                       self::uninstall($i['name']);
+                               } else {
+                                       $installed_arr[] = $i['name'];
+                               }
+                       }
+               }
+
+               if (count($addons_arr)) {
+                       foreach ($addons_arr as $p) {
+                               if (!in_array($p, $installed_arr)) {
+                                       self::install($p);
+                               }
+                       }
+               }
+
+               self::loadHooks();
+
+               return;
+       }
+
        /**
         * @brief uninstalls an addon.
         *
@@ -139,7 +197,7 @@ class Addon
         */
        public static function registerHook($hook, $file, $function, $priority = 0)
        {
-               $file = str_replace(get_app()->get_basepath() . DIRECTORY_SEPARATOR, '', $file);
+               $file = str_replace(self::getApp()->get_basepath() . DIRECTORY_SEPARATOR, '', $file);
 
                $condition = ['hook' => $hook, 'file' => $file, 'function' => $function];
                $exists = DBA::exists('hook', $condition);
@@ -162,7 +220,7 @@ class Addon
         */
        public static function unregisterHook($hook, $file, $function)
        {
-               $relative_file = str_replace(get_app()->get_basepath() . DIRECTORY_SEPARATOR, '', $file);
+               $relative_file = str_replace(self::getApp()->get_basepath() . DIRECTORY_SEPARATOR, '', $file);
 
                // This here is only needed for fixing a problem that existed on the develop branch
                $condition = ['hook' => $hook, 'file' => $file, 'function' => $function];
@@ -178,7 +236,7 @@ class Addon
         */
        public static function loadHooks()
        {
-               $a = get_app();
+               $a = self::getApp();
                $a->hooks = [];
                $r = DBA::select('hook', ['hook', 'file', 'function'], [], ['order' => ['priority' => 'desc', 'file']]);
 
@@ -201,7 +259,7 @@ class Addon
         */
        public static function forkHooks($priority, $name, $data = null)
        {
-               $a = get_app();
+               $a = self::getApp();
 
                if (is_array($a->hooks) && array_key_exists($name, $a->hooks)) {
                        foreach ($a->hooks[$name] as $hook) {
@@ -221,7 +279,7 @@ class Addon
         */
        public static function callHooks($name, &$data = null)
        {
-               $a = get_app();
+               $a = self::getApp();
 
                if (is_array($a->hooks) && array_key_exists($name, $a->hooks)) {
                        foreach ($a->hooks[$name] as $hook) {
@@ -262,7 +320,7 @@ class Addon
         */
        public static function isApp($name)
        {
-               $a = get_app();
+               $a = self::getApp();
 
                if (is_array($a->hooks) && (array_key_exists('app_menu', $a->hooks))) {
                        foreach ($a->hooks['app_menu'] as $hook) {
@@ -293,7 +351,7 @@ class Addon
         */
        public static function getInfo($addon)
        {
-               $a = get_app();
+               $a = self::getApp();
 
                $info = [
                        'name' => $addon,