aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Lib/Apps.php35
-rw-r--r--doc/hook/addon_app_installed_filter.bb18
-rw-r--r--doc/hook/app_installed_filter.bb17
-rw-r--r--doc/hook/system_app_installed_filter.bb18
-rw-r--r--doc/hooklist.bb9
5 files changed, 93 insertions, 4 deletions
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php
index 010947467..4ee64f15e 100644
--- a/Zotlabs/Lib/Apps.php
+++ b/Zotlabs/Lib/Apps.php
@@ -532,7 +532,7 @@ class Apps {
static public function app_install($uid,$app) {
$app['uid'] = $uid;
- if(self::app_installed($uid,$app))
+ if(self::app_installed($uid,$app,true))
$x = self::app_update($app);
else
$x = self::app_store($app);
@@ -660,33 +660,60 @@ class Apps {
}
}
- static public function app_installed($uid,$app) {
+ static public function app_installed($uid,$app,$bypass_filter=false) {
$r = q("select id from app where app_id = '%s' and app_channel = %d limit 1",
dbesc((array_key_exists('guid',$app)) ? $app['guid'] : ''),
intval($uid)
);
+ if (!$bypass_filter) {
+ $filter_arr = [
+ 'uid'=>$uid,
+ 'app'=>$app,
+ 'installed'=>$r
+ ];
+ call_hooks('app_installed_filter',$filter_arr);
+ $r = $filter_arr['installed'];
+ }
return(($r) ? true : false);
}
- static public function addon_app_installed($uid,$app) {
+ static public function addon_app_installed($uid,$app,$bypass_filter=false) {
$r = q("select id from app where app_plugin = '%s' and app_channel = %d limit 1",
dbesc($app),
intval($uid)
);
+ if (!$bypass_filter) {
+ $filter_arr = [
+ 'uid'=>$uid,
+ 'app'=>$app,
+ 'installed'=>$r
+ ];
+ call_hooks('addon_app_installed_filter',$filter_arr);
+ $r = $filter_arr['installed'];
+ }
return(($r) ? true : false);
}
- static public function system_app_installed($uid,$app) {
+ static public function system_app_installed($uid,$app,$bypass_filter=false) {
$r = q("select id from app where app_id = '%s' and app_channel = %d limit 1",
dbesc(hash('whirlpool',$app)),
intval($uid)
);
+ if (!$bypass_filter) {
+ $filter_arr = [
+ 'uid'=>$uid,
+ 'app'=>$app,
+ 'installed'=>$r
+ ];
+ call_hooks('system_app_installed_filter',$filter_arr);
+ $r = $filter_arr['installed'];
+ }
return(($r) ? true : false);
}
diff --git a/doc/hook/addon_app_installed_filter.bb b/doc/hook/addon_app_installed_filter.bb
new file mode 100644
index 000000000..e610b3205
--- /dev/null
+++ b/doc/hook/addon_app_installed_filter.bb
@@ -0,0 +1,18 @@
+[h2]addon_app_installed_filter[/h2]
+
+Allow plugins to filter the result of addon_app_installed.
+
+Code excerpt:
+
+[code]
+ $filter_arr = [
+ 'uid'=>$uid,
+ 'app'=>$app,
+ 'installed'=>$r
+ ];
+ call_hooks('addon_app_installed_filter',$filter_arr);
+ $r = $filter_arr['installed'];
+[/code]
+
+cxref: Zotlabs/Lib/Apps.php
+
diff --git a/doc/hook/app_installed_filter.bb b/doc/hook/app_installed_filter.bb
new file mode 100644
index 000000000..f0d91d6f0
--- /dev/null
+++ b/doc/hook/app_installed_filter.bb
@@ -0,0 +1,17 @@
+[h2]app_installed_filter[/h2]
+
+Allow plugins to filter the result of app_installed.
+
+Code excerpt:
+
+[code]
+ $filter_arr = [
+ 'uid'=>$uid,
+ 'app'=>$app,
+ 'installed'=>$r
+ ];
+ call_hooks('app_installed_filter',$filter_arr);
+ $r = $filter_arr['installed'];
+[/code]
+
+cxref: Zotlabs/Lib/Apps.php
diff --git a/doc/hook/system_app_installed_filter.bb b/doc/hook/system_app_installed_filter.bb
new file mode 100644
index 000000000..a269a79a8
--- /dev/null
+++ b/doc/hook/system_app_installed_filter.bb
@@ -0,0 +1,18 @@
+[h2]system_app_installed_filter[/h2]
+
+Allow plugins to filter the result of system_app_installed.
+
+Code excerpt:
+
+[code]
+ $filter_arr = [
+ 'uid'=>$uid,
+ 'app'=>$app,
+ 'installed'=>$r
+ ];
+ call_hooks('system_app_installed_filter',$filter_arr);
+ $r = $filter_arr['installed'];
+[/code]
+
+cxref: Zotlabs/Lib/Apps.php
+
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index d7fe633ba..b71a28e63 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -37,6 +37,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/activity_order]activity_order[/zrl]
Called when generating the list of order options for the network page
+[zrl=[baseurl]/help/hook/addon_app_installed_filter]addon_app_installed_filter[/zrl]
+ Called when determining whether an addon_app is installed
+
[zrl=[baseurl]/help/hook/activity_received]activity_received[/zrl]
Called when an activity (post, comment, like, etc.) has been received from a zot source
@@ -49,6 +52,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/api_perm_is_allowed]api_perm_is_allowed[/zrl]
Called when perm_is_allowed() is executed from an API call.
+[zrl=[baseurl]/help/hook/app_installed_filter]app_installed_filter[/zrl]
+ Called when determining whether an app is installed
+
[zrl=[baseurl]/help/hook/app_menu]app_menu[/zrl]
Called when generating the app_menu dropdown (may be obsolete)
@@ -592,6 +598,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/stream_item]stream_item[/zrl]
Called for each item which is rendered for viewing via conversation()
+[zrl=[baseurl]/help/hook/system_app_installed_filter]system_app_installed_filter[/zrl]
+ Called when determining whether a system app is installed
+
[zrl=[baseurl]/help/hook/tagged]tagged[/zrl]
Called when a delivery is processed which results in you being tagged