From 488e425416f4c946a0f4c7de95e8e77d6ee107cf Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 14 Apr 2019 11:25:27 -0400 Subject: [PATCH] Move admin/tos to src/Module - Add Module\Admin\Tos class - Add route for admin/tos - Add admin aside menu entry - Remove admin_page_tos and admin_page_tos_post from mod/admin.php --- mod/admin.php | 57 ---------------------------------- src/App/Router.php | 2 ++ src/Module/Admin/Tos.php | 53 +++++++++++++++++++++++++++++++ src/Module/BaseAdminModule.php | 3 ++ 4 files changed, 58 insertions(+), 57 deletions(-) create mode 100644 src/Module/Admin/Tos.php diff --git a/mod/admin.php b/mod/admin.php index dd441023d..af4c874c2 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -126,9 +126,6 @@ function admin_post(App $a) } $return_path = 'admin/themes/' . $theme . (!empty($_GET['mode']) ? '?mode=' . $_GET['mode'] : ''); break; - case 'tos': - admin_page_tos_post($a); - break; case 'features': admin_page_features_post($a); break; @@ -289,9 +286,6 @@ function admin_content(App $a) case 'deleteitem': $o = admin_page_deleteitem($a); break; - case 'tos': - $o = admin_page_tos($a); - break; default: notice(L10n::t("Item not found.")); } @@ -305,57 +299,6 @@ function admin_content(App $a) } } -/** - * @brief Subpage to define the display of a Terms of Usage page. - * - * @param App $a - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_tos(App $a) -{ - $tos = new Tos(); - $t = Renderer::getMarkupTemplate('admin/tos.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Terms of Service'), - '$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::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', L10n::t('Display Privacy Statement'), Config::get('system', 'tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR.', 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')], - '$preview' => L10n::t('Privacy Statement Preview'), - '$privtext' => $tos->privacy_complete, - '$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')], - '$form_security_token' => BaseModule::getFormSecurityToken("admin_tos"), - '$submit' => L10n::t('Save Settings'), - ]); -} - -/** - * @brief Process send data from Admin TOS Page - * - * @param App $a - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_tos_post(App $a) -{ - BaseModule::checkFormSecurityTokenRedirectOnError('/admin/tos', 'admin_tos'); - - if (empty($_POST['page_tos'])) { - return; - } - - $displaytos = !empty($_POST['displaytos']); - $displayprivstatement = !empty($_POST['displayprivstatement']); - $tostext = (!empty($_POST['tostext']) ? strip_tags(trim($_POST['tostext'])) : ''); - - Config::set('system', 'tosdisplay', $displaytos); - Config::set('system', 'tosprivstatement', $displayprivstatement); - Config::set('system', 'tostext', $tostext); - - $a->internalRedirect('admin/tos'); - - return; // NOTREACHED -} - /** * @brief Subpage to modify the server wide block list via the admin panel. * diff --git a/src/App/Router.php b/src/App/Router.php index 4137c4ada..ca362f484 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -121,6 +121,8 @@ class Router $this->routeCollector->addGroup('/admin', function (RouteCollector $collector) { $collector->addRoute(['GET'] , '[/]' , Module\Admin\Summary::class); $collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class); + + $collector->addRoute(['GET', 'POST'], '/tos' , Module\Admin\Tos::class); }); } diff --git a/src/Module/Admin/Tos.php b/src/Module/Admin/Tos.php new file mode 100644 index 000000000..efab22f8e --- /dev/null +++ b/src/Module/Admin/Tos.php @@ -0,0 +1,53 @@ +internalRedirect('admin/tos'); + } + + public static function content() + { + parent::content(); + + $tos = new \Friendica\Module\Tos(); + $t = Renderer::getMarkupTemplate('admin/tos.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Terms of Service'), + '$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::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', L10n::t('Display Privacy Statement'), Config::get('system', 'tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR.', 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')], + '$preview' => L10n::t('Privacy Statement Preview'), + '$privtext' => $tos->privacy_complete, + '$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')], + '$form_security_token' => parent::getFormSecurityToken('admin_tos'), + '$submit' => L10n::t('Save Settings'), + ]); + } +} \ No newline at end of file diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index 2df7a6b82..90f781037 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -52,6 +52,9 @@ abstract class BaseAdminModule extends BaseModule 'overview' => ['admin' , L10n::t('Overview') , 'overview'], 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] ]], + 'configuration' => [L10n::t('Configuration'), [ + 'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'], + ]], ]; $addons_admin = [];