2019-05-02 00:01:43 -04:00
< ? php
2020-02-09 09:45:36 -05:00
/**
2021-03-29 02:40:20 -04:00
* @ copyright Copyright ( C ) 2010 - 2021 , the Friendica project
2020-02-09 09:45:36 -05: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-05-02 00:01:43 -04:00
namespace Friendica\Module\Admin ;
2021-11-20 09:38:03 -05:00
use Friendica\App ;
2021-11-19 14:18:48 -05:00
use Friendica\Core\Config\Capability\IManageConfigValues ;
use Friendica\Core\L10n ;
2019-05-02 00:01:43 -04:00
use Friendica\Core\Renderer ;
2020-01-22 23:14:14 -05:00
use Friendica\Module\BaseAdmin ;
2021-11-21 14:06:36 -05:00
use Friendica\Module\Response ;
2021-11-20 09:38:03 -05:00
use Friendica\Util\Profiler ;
use Psr\Log\LoggerInterface ;
2019-05-02 00:01:43 -04:00
2020-01-22 23:14:14 -05:00
class Tos extends BaseAdmin
2019-05-02 00:01:43 -04:00
{
2021-11-19 14:18:48 -05:00
/** @var \Friendica\Module\Tos */
protected $tos ;
/** @var IManageConfigValues */
protected $config ;
2021-11-21 14:06:36 -05:00
public function __construct ( L10n $l10n , App\BaseURL $baseUrl , App\Arguments $args , LoggerInterface $logger , Profiler $profiler , Response $response , \Friendica\Module\Tos $tos , IManageConfigValues $config , array $server , array $parameters = [])
2021-11-19 14:18:48 -05:00
{
2021-11-21 14:06:36 -05:00
parent :: __construct ( $l10n , $baseUrl , $args , $logger , $profiler , $response , $server , $parameters );
2021-11-19 14:18:48 -05:00
$this -> tos = $tos ;
$this -> config = $config ;
}
2021-11-20 09:38:03 -05:00
protected function post ( array $request = [], array $post = [])
2019-05-02 00:01:43 -04:00
{
2020-09-08 10:44:27 -04:00
self :: checkAdminAccess ();
2019-05-02 00:01:43 -04:00
if ( empty ( $_POST [ 'page_tos' ])) {
return ;
}
2020-09-08 10:42:25 -04:00
self :: checkFormSecurityTokenRedirectOnError ( '/admin/tos' , 'admin_tos' );
2019-05-02 00:01:43 -04:00
$displaytos = ! empty ( $_POST [ 'displaytos' ]);
$displayprivstatement = ! empty ( $_POST [ 'displayprivstatement' ]);
$tostext = ( ! empty ( $_POST [ 'tostext' ]) ? strip_tags ( trim ( $_POST [ 'tostext' ])) : '' );
2021-11-19 14:18:48 -05:00
$this -> config -> set ( 'system' , 'tosdisplay' , $displaytos );
$this -> config -> set ( 'system' , 'tosprivstatement' , $displayprivstatement );
$this -> config -> set ( 'system' , 'tostext' , $tostext );
2019-05-02 00:01:43 -04:00
2021-11-19 14:18:48 -05:00
$this -> baseUrl -> redirect ( 'admin/tos' );
2019-05-02 00:01:43 -04:00
}
2021-11-20 09:38:03 -05:00
protected function content ( array $request = []) : string
2019-05-02 00:01:43 -04:00
{
2021-11-14 14:46:25 -05:00
parent :: content ();
2019-05-02 00:01:43 -04:00
$t = Renderer :: getMarkupTemplate ( 'admin/tos.tpl' );
return Renderer :: replaceMacros ( $t , [
2021-11-19 14:18:48 -05:00
'$title' => $this -> t ( 'Administration' ),
'$page' => $this -> t ( 'Terms of Service' ),
'$displaytos' => [ 'displaytos' , $this -> t ( 'Display Terms of Service' ), $this -> config -> get ( 'system' , 'tosdisplay' ), $this -> t ( 'Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.' )],
'$displayprivstatement' => [ 'displayprivstatement' , $this -> t ( 'Display Privacy Statement' ), $this -> config -> get ( 'system' , 'tosprivstatement' ), $this -> t ( 'Show some informations regarding the needed information to operate the node according e.g. to <a href="%s" target="_blank" rel="noopener noreferrer">EU-GDPR</a>.' , 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation' )],
'$preview' => $this -> t ( 'Privacy Statement Preview' ),
'$privtext' => $this -> tos -> privacy_complete ,
'$tostext' => [ 'tostext' , $this -> t ( 'The Terms of Service' ), $this -> config -> get ( 'system' , 'tostext' ), $this -> t ( 'Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.' )],
2020-09-08 10:42:25 -04:00
'$form_security_token' => self :: getFormSecurityToken ( 'admin_tos' ),
2021-11-19 14:18:48 -05:00
'$submit' => $this -> t ( 'Save Settings' ),
2019-05-02 00:01:43 -04:00
]);
}
}