2022-02-15 17:15:29 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								declare ( strict_types  =  1 );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// {{{ License
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// 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/>.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// }}}
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-28 17:06:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								namespace  Plugin\Blog ;  
						 
					
						
							
								
									
										
										
										
											2022-02-15 17:15:29 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								use  App\Core\Event ;  
						 
					
						
							
								
									
										
										
										
											2022-04-03 21:40:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								use  function  App\Core\I18n\_m ;  
						 
					
						
							
								
									
										
										
										
											2022-02-15 17:15:29 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								use  App\Core\Modules\Plugin ;  
						 
					
						
							
								
									
										
										
										
											2022-03-27 16:43:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								use  App\Core\Router ;  
						 
					
						
							
								
									
										
										
										
											2022-03-28 17:06:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								use  App\Util\Common ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								use  App\Util\HTML ;  
						 
					
						
							
								
									
										
										
										
											2022-04-03 21:40:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								use  EventResult ;  
						 
					
						
							
								
									
										
										
										
											2022-03-28 17:06:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								use  Plugin\Blog\Controller  as  C ;  
						 
					
						
							
								
									
										
										
										
											2022-02-15 17:15:29 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  Blog  extends  Plugin  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2022-04-03 21:40:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  function  onAddRoute ( Router  $r ) :  EventResult 
							 
						 
					
						
							
								
									
										
										
										
											2022-02-15 17:15:29 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $r -> connect ( id :  'blog_post' ,  uri_path :  '/blog/post' ,  target :  [ C\Post :: class ,  'makePost' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  Event :: next ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-28 17:06:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-03 21:40:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  function  onAppendCardProfile ( array  $vars ,  array  & $res ) :  EventResult 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-28 17:06:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $actor  =  Common :: actor (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $group  =  $vars [ 'actor' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! \is_null ( $actor )  &&  $group -> isGroup ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $res []  =  HTML :: html ([ 'a'  =>  [ 'attrs'  =>  [ 'href'  =>  Router :: url ( 'blog_post' ,  [ 'in'  =>  $group -> getId ()]),  'title'  =>  _m ( 'Make a new blog post' ),  'class'  =>  'profile-extra-actions' ],  _m ( 'Post in blog' )]]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  Event :: next ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2022-02-15 17:15:29 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}