add get_photo hook to go along with get_profile_photo hook. This allows a plugin to over-ride the permissions for cover photos or insert a different photo in place of that requested

This commit is contained in:
zotlabs 2016-10-17 22:09:41 -07:00
parent 437aa168d1
commit 17091bd38c
4 changed files with 29 additions and 14 deletions

View File

@ -79,14 +79,11 @@ class Enotify {
if(! $sender_email)
$sender_email = 'Administrator' . '@' . \App::get_hostname();
$sender_name = get_config('system','from_email_name');
if(! $sender_name)
$sender_name = \Zotlabs\Lib\System::get_site_name();
$additional_mail_header = "";
if(array_key_exists('item', $params)) {

View File

@ -127,16 +127,6 @@ class Photo extends \Zotlabs\Web\Controller {
}
}
// If using resolution 1, make sure it exists before proceeding:
if($resolution == 1) {
$r = q("SELECT uid FROM photo WHERE resource_id = '%s' AND imgscale = %d LIMIT 1",
dbesc($photo),
intval($resolution)
);
if(! $r) {
$resolution = 2;
}
}
$r = q("SELECT uid FROM photo WHERE resource_id = '%s' AND imgscale = %d LIMIT 1",
dbesc($photo),
@ -166,6 +156,14 @@ class Photo extends \Zotlabs\Web\Controller {
intval($resolution)
);
$d = [ 'imgscale' => $resolution, 'resource_id' => $photo, 'photo' => $r, 'allowed' => $allowed ];
call_hooks('get_photo',$d);
$resolution = $d['imgscale'];
$photo = $d['resource_id'];
$r = $d['photo'];
$allowed = $d['allowed'];
if($r && $allowed) {
$data = dbunescbin($r[0]['content']);
$mimetype = $r[0]['mimetype'];
@ -200,6 +198,9 @@ class Photo extends \Zotlabs\Web\Controller {
}
}
if(! isset($data)) {
if(isset($resolution)) {
switch($resolution) {

14
doc/hook/get_photo.bb Normal file
View File

@ -0,0 +1,14 @@
[h2]get_photo[/h2]
Called when fetching the content of photos (except for profile photos) in mod_photo.
Hook arguments:
'imgscale' => integer resolution requested
'resource_id' => resource_id of requested photo
'photo' => array of matching photo table rows after querying for the photo
'allowed' => whether or not access to this resource is allowed

View File

@ -239,6 +239,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/get_features]get_features[/zrl]
Called when get_features() is called
[zrl=[baseurl]/help/hook/get_photo]get_photo[/zrl]
Called when photo content (except for profile photos) is fetched in mod_photo
[zrl=[baseurl]/help/hook/get_profile_photo]get_profile_photo[/zrl]
Called when local profile photo content is fetched in mod_photo