diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/apps.php | 53 | ||||
-rwxr-xr-x | include/plugin.php | 11 |
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() { |