aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/apps.php53
-rwxr-xr-xinclude/plugin.php11
2 files changed, 64 insertions, 0 deletions
diff --git a/include/apps.php b/include/apps.php
new file mode 100644
index 000000000..38812ef83
--- /dev/null
+++ b/include/apps.php
@@ -0,0 +1,53 @@
+<?php /** @file */
+
+/**
+ * apps
+ *
+ */
+
+require_once('include/plugin.php');
+
+function get_system_apps() {
+
+ $ret = array();
+ $files = glob('app/*.apd');
+ if($files) {
+ foreach($files as $f) {
+ $x = parse_app_description($f);
+ if($x) {
+ $ret[] = $x;
+ }
+ }
+ }
+ $files = glob('addon/*/*.apd');
+ if($files) {
+ foreach($files as $f) {
+ $n = basename($f,'.apd');
+ if(plugin_is_installed($n)) {
+ $x = parse_app_description($f);
+ if($x) {
+ $ret[] = $x;
+ }
+ }
+ }
+ }
+
+ return $ret;
+
+}
+
+
+function parse_app_description($f) {
+ $ret = array();
+
+ $lines = @file($f);
+ if($lines) {
+ foreach($lines as $x) {
+ if(preg_match('/^([a-zA-Z].*?):(.*?)$/ism',$x,$matches)) {
+ $ret[$matches[1]] = trim($matches[2]);
+ }
+ }
+ }
+
+ return $ret;
+}
diff --git a/include/plugin.php b/include/plugin.php
index 9982a48a2..ace00d43a 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -94,6 +94,17 @@ function load_plugin($plugin) {
}
+function plugin_is_installed($name) {
+ $r = q("select name from addon where name = '%s' and installed = 1 limit 1",
+ dbesc($name)
+ );
+ if($r)
+ return true;
+ return false;
+}
+
+
+
// reload all updated plugins
function reload_plugins() {