2022-02-16 02:15:29 +09: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-29 01:06:53 +09:00
namespace Plugin\Blog ;
2022-02-16 02:15:29 +09:00
use App\Core\Event ;
2022-04-04 05:40:32 +09:00
use function App\Core\I18n\_m ;
2022-02-16 02:15:29 +09:00
use App\Core\Modules\Plugin ;
2022-03-28 00:43:59 +09:00
use App\Core\Router ;
2022-03-29 01:06:53 +09:00
use App\Util\Common ;
use App\Util\HTML ;
2022-04-04 05:40:32 +09:00
use EventResult ;
2022-03-29 01:06:53 +09:00
use Plugin\Blog\Controller as C ;
2022-02-16 02:15:29 +09:00
class Blog extends Plugin
{
2022-04-04 05:40:32 +09:00
public function onAddRoute ( Router $r ) : EventResult
2022-02-16 02:15:29 +09:00
{
$r -> connect ( id : 'blog_post' , uri_path : '/blog/post' , target : [ C\Post :: class , 'makePost' ]);
return Event :: next ;
}
2022-03-29 01:06:53 +09:00
2022-10-20 06:39:17 +09:00
/**
* @ param ( array { actor : \App\Entity\Actor } & array < string , mixed > ) $vars
* @ param array < string > $res
*/
2022-04-04 05:40:32 +09:00
public function onAppendCardProfile ( array $vars , array & $res ) : EventResult
2022-03-29 01:06:53 +09: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-16 02:15:29 +09:00
}