2019-04-26 06:08:08 +02:00
< ? php
2020-02-09 15:45:36 +01:00
/**
2024-01-02 21:57:26 +01:00
* @ copyright Copyright ( C ) 2010 - 2024 , the Friendica project
2020-02-09 15:45:36 +01:00
*
* @ license GNU AGPL version 3 or any later version
*
* This program 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 .
*
* This program 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 this program . If not , see < https :// www . gnu . org / licenses />.
*
*/
2019-04-26 06:08:08 +02:00
2022-11-06 02:01:06 +01:00
namespace Friendica\Module\Moderation\Item ;
2019-04-26 06:08:08 +02:00
2022-11-08 09:24:20 +01:00
use Friendica\App ;
use Friendica\Core\Config\Capability\IManageConfigValues ;
use Friendica\Core\L10n ;
2019-04-26 06:08:08 +02:00
use Friendica\Core\Renderer ;
2022-11-08 09:24:20 +01:00
use Friendica\Core\Session\Capability\IHandleUserSessions ;
2019-04-26 06:08:08 +02:00
use Friendica\Model ;
2022-11-06 02:01:06 +01:00
use Friendica\Module\BaseModeration ;
2022-11-08 09:24:20 +01:00
use Friendica\Module\Response ;
use Friendica\Navigation\SystemMessages ;
use Friendica\Util\Profiler ;
use Psr\Log\LoggerInterface ;
2019-04-28 04:23:29 +02:00
2022-11-06 02:01:06 +01:00
class Source extends BaseModeration
2019-04-26 06:08:08 +02:00
{
2022-11-08 09:24:20 +01:00
/** @var IManageConfigValues */
private $config ;
public function __construct ( IManageConfigValues $config , App\Page $page , App $app , SystemMessages $systemMessages , IHandleUserSessions $session , L10n $l10n , App\BaseURL $baseUrl , App\Arguments $args , LoggerInterface $logger , Profiler $profiler , Response $response , array $server , array $parameters = [])
{
parent :: __construct ( $page , $app , $systemMessages , $session , $l10n , $baseUrl , $args , $logger , $profiler , $response , $server , $parameters );
$this -> config = $config ;
}
2021-11-20 15:38:03 +01:00
protected function content ( array $request = []) : string
2019-04-26 06:08:08 +02:00
{
2021-11-14 20:46:25 +01:00
parent :: content ();
2019-04-26 06:08:08 +02:00
2022-11-06 02:01:06 +01:00
$guid = basename ( $request [ 'guid' ] ? ? $this -> parameters [ 'guid' ] ? ? '' );
2019-04-26 06:08:08 +02:00
$item_uri = '' ;
$item_id = '' ;
$terms = [];
2022-11-08 09:24:20 +01:00
$source = '' ;
2019-04-26 06:08:08 +02:00
if ( ! empty ( $guid )) {
2021-01-16 05:16:09 +01:00
$item = Model\Post :: selectFirst ([ 'id' , 'uri-id' , 'guid' , 'uri' ], [ 'guid' => $guid ]);
2019-04-26 06:08:08 +02:00
2019-06-30 19:33:33 +02:00
if ( $item ) {
$item_id = $item [ 'id' ];
$item_uri = $item [ 'uri' ];
$terms = Model\Tag :: getByURIId ( $item [ 'uri-id' ], [ Model\Tag :: HASHTAG , Model\Tag :: MENTION , Model\Tag :: IMPLICIT_MENTION ]);
2022-11-08 09:24:20 +01:00
$activity = Model\Post\Activity :: getByURIId ( $item [ 'uri-id' ]);
if ( ! empty ( $activity )) {
$source = $activity [ 'activity' ];
}
2019-06-30 19:33:33 +02:00
}
2019-04-26 06:08:08 +02:00
}
2022-11-06 02:01:06 +01:00
$tpl = Renderer :: getMarkupTemplate ( 'moderation/item/source.tpl' );
return Renderer :: replaceMacros ( $tpl , [
2022-11-08 09:24:20 +01:00
'$l10n' => [
'title' => $this -> t ( 'Item Source' ),
'itemidlbl' => $this -> t ( 'Item Id' ),
'itemurilbl' => $this -> t ( 'Item URI' ),
'submit' => $this -> t ( 'Submit' ),
'termslbl' => $this -> t ( 'Terms' ),
'taglbl' => $this -> t ( 'Tag' ),
'typelbl' => $this -> t ( 'Type' ),
'termlbl' => $this -> t ( 'Term' ),
'urllbl' => $this -> t ( 'URL' ),
'mentionlbl' => $this -> t ( 'Mention' ),
'implicitlbl' => $this -> t ( 'Implicit Mention' ),
'error' => $this -> t ( 'Error' ),
'notfound' => $this -> t ( 'Item not found' ),
'nosource' => $this -> t ( 'No source recorded' ),
'noconfig' => ! $this -> config -> get ( 'debug' , 'store_source' ) ? $this -> t ( 'Please make sure the <code>debug.store_source</code> config key is set in <code>config/local.config.php</code> for future items to have sources.' ) : '' ,
],
'$guid_field' => [ 'guid' , $this -> t ( 'Item Guid' ), $guid , '' ],
'$guid' => $guid ,
'$item_uri' => $item_uri ,
'$item_id' => $item_id ,
'$terms' => $terms ,
'$source' => $source ,
2019-04-26 06:08:08 +02:00
]);
}
}