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:
		| @@ -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)) { | ||||
|   | ||||
| @@ -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
									
								
							
							
						
						
									
										14
									
								
								doc/hook/get_photo.bb
									
									
									
									
									
										Normal 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 | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -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 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user