| 
									
										
										
										
											2009-09-21 14:39:22 -04:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2019-08-12 15:03:18 +01:00
										 |  |  | // This file is part of GNU social - https://www.gnu.org/software/social
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // GNU social is free software: you can redistribute it and/or modify
 | 
					
						
							|  |  |  | // it under the terms of the GNU Affero General Public License as published by
 | 
					
						
							|  |  |  | // the Free Software Foundation, either version 3 of the License, or
 | 
					
						
							|  |  |  | // (at your option) any later version.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // GNU social is distributed in the hope that it will be useful,
 | 
					
						
							|  |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					
						
							|  |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					
						
							|  |  |  | // GNU Affero General Public License for more details.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // You should have received a copy of the GNU Affero General Public License
 | 
					
						
							|  |  |  | // along with GNU social.  If not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							| 
									
										
										
										
											2009-09-21 14:39:22 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-07 22:47:17 +01:00
										 |  |  | defined('GNUSOCIAL') || die(); | 
					
						
							| 
									
										
										
										
											2009-09-21 14:39:22 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-12 19:57:15 -08:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2019-08-12 15:03:30 +01:00
										 |  |  |  * Queue handler for letting plugins handle stuff. | 
					
						
							| 
									
										
										
										
											2010-01-12 19:57:15 -08:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2019-08-12 15:03:30 +01:00
										 |  |  |  * The module queue handler accepts notices over the "plugin" queue | 
					
						
							| 
									
										
										
										
											2010-01-12 19:57:15 -08:00
										 |  |  |  * and simply passes them through the "HandleQueuedNotice" event. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This gives plugins a chance to do background processing without | 
					
						
							|  |  |  |  * actually registering their own queue and ensuring that things | 
					
						
							|  |  |  |  * are queued into it. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2019-08-12 15:03:30 +01:00
										 |  |  |  * Fancier plugins may wish to instead hook the 'GetQueueHandlerClass' | 
					
						
							| 
									
										
										
										
											2010-01-12 19:57:15 -08:00
										 |  |  |  * event with their own class, in which case they must ensure that | 
					
						
							|  |  |  |  * their notices get enqueued when they need them. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2009-09-21 14:39:22 -04:00
										 |  |  | class PluginQueueHandler extends QueueHandler | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     function transport() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return 'plugin'; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-12 15:03:18 +01:00
										 |  |  |     function handle($notice): bool | 
					
						
							| 
									
										
										
										
											2009-09-21 14:39:22 -04:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2019-08-07 22:47:17 +01:00
										 |  |  |         if (!($notice instanceof Notice)) { | 
					
						
							|  |  |  |             common_log(LOG_ERR, "Got a bogus notice, not broadcasting"); | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-04 22:57:20 -04:00
										 |  |  |         try { | 
					
						
							|  |  |  |             Event::handle('HandleQueuedNotice', array(&$notice)); | 
					
						
							| 
									
										
										
										
											2013-10-17 01:16:03 +02:00
										 |  |  |         } catch (NoProfileException $unp) { | 
					
						
							| 
									
										
										
										
											2012-05-04 22:57:20 -04:00
										 |  |  |             // We can't do anything about this, so just skip
 | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-09-21 14:39:22 -04:00
										 |  |  |         return true; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |