aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xboot.php50
-rwxr-xr-xinclude/plugin.php60
2 files changed, 61 insertions, 49 deletions
diff --git a/boot.php b/boot.php
index 57d1d18f9..15487d3f0 100755
--- a/boot.php
+++ b/boot.php
@@ -1450,58 +1450,10 @@ function check_config() {
$x = new \Zotlabs\Lib\DB_Upgrade(DB_UPDATE_VERSION);
- /**
- *
- * Synchronise plugins:
- *
- * App::$config['system']['addon'] contains a comma-separated list of names
- * of plugins/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 unload 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 plugin that isn't installed,
- * call the install procedure and add it to the database.
- *
- */
-
- $r = q("SELECT * FROM addon WHERE installed = 1");
- if($r)
- $installed = $r;
- else
- $installed = array();
-
- $plugins = get_config('system', 'addon');
- $plugins_arr = array();
-
- if($plugins)
- $plugins_arr = explode(',', str_replace(' ', '', $plugins));
-
- App::$plugins = $plugins_arr;
-
- $installed_arr = array();
-
- if(count($installed)) {
- foreach($installed as $i) {
- if(! in_array($i['aname'], $plugins_arr)) {
- unload_plugin($i['aname']);
- }
- else {
- $installed_arr[] = $i['aname'];
- }
- }
- }
-
- if(count($plugins_arr)) {
- foreach($plugins_arr as $p) {
- if(! in_array($p, $installed_arr)) {
- load_plugin($p);
- }
- }
- }
+ plugins_sync();
load_hooks();
-
check_for_new_perms();
check_cron_broken();
diff --git a/include/plugin.php b/include/plugin.php
index 67157dee7..f452d8342 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -179,6 +179,66 @@ function reload_plugins() {
}
+function plugins_installed_list() {
+
+ $r = q("select * from addon where installed = 1 order by aname asc");
+ return(($r) ? ids_to_array($r,'aname') : []);
+}
+
+
+function plugins_sync() {
+
+ /**
+ *
+ * Synchronise plugins:
+ *
+ * App::$config['system']['addon'] contains a comma-separated list of names
+ * of plugins/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 unload 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 plugin that isn't installed,
+ * call the install procedure and add it to the database.
+ *
+ */
+
+ $installed = plugins_installed_list();
+
+ $plugins = get_config('system', 'addon', '');
+
+ $plugins_arr = explode(',', $plugins);
+
+ // array_trim is in include/text.php
+
+ if(! array_walk($plugins_arr,'array_trim'))
+ return;
+
+ App::$plugins = $plugins_arr;
+
+ $installed_arr = [];
+
+ if(count($installed)) {
+ foreach($installed as $i) {
+ if(! in_array($i, $plugins_arr)) {
+ unload_plugin($i);
+ }
+ else {
+ $installed_arr[] = $i;
+ }
+ }
+ }
+
+ if(count($plugins_arr)) {
+ foreach($plugins_arr as $p) {
+ if(! in_array($p, $installed_arr)) {
+ load_plugin($p);
+ }
+ }
+ }
+
+}
+
+
/**
* @brief Get a list of non hidden addons.
*