Added /tos module

This commit is contained in:
Tobias Diekershoff 2018-04-02 18:40:30 +02:00
parent 348ee3625d
commit 6c20b4507d
6 changed files with 126 additions and 1 deletions

View file

@ -109,6 +109,9 @@ function admin_post(App $a)
}
$return_path = 'admin/themes/' . $theme;
break;
case 'tos':
admin_page_tos_post($a);
break;
case 'features':
admin_page_features_post($a);
break;
@ -181,7 +184,8 @@ function admin_content(App $a)
'users' => ["admin/users/" , L10n::t("Users") , "users"],
'addons' => ["admin/addons/" , L10n::t("Addons") , "addons"],
'themes' => ["admin/themes/" , L10n::t("Themes") , "themes"],
'features' => ["admin/features/" , L10n::t("Additional features") , "features"] ]],
'features' => ["admin/features/" , L10n::t("Additional features") , "features"],
'tos' => ["admin/tos/" , L10n::t("Terms of Service") , "tos"] ]],
'database' => [ L10n::t('Database'), [
'dbsync' => ["admin/dbsync/" , L10n::t('DB updates') , "dbsync"],
'queue' => ["admin/queue/" , L10n::t('Inspect Queue') , "queue"], ]],
@ -265,6 +269,9 @@ 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."));
}
@ -281,6 +288,50 @@ function admin_content(App $a)
}
}
/**
* @brief Subpage to define the display of a Terms of Usage page.
*
* @param App $a
* @return string
*/
function admin_page_tos(App $a)
{
$t = get_markup_template('admin/tos.tpl');
return replace_macros($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 <a href="%s" target="_blank">EU-GDPR</a>.','https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')],
'$tostext' => ['tostext', L10n::t('The Terms of Usage'), 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' => get_form_security_token("admin_tos"),
'$submit' => L10n::t('Save Settings'),
]);
}
/**
* @brief Process send data from Admin TOS Page
*
* @param App $a
*/
function admin_page_tos_post(App $a)
{
check_form_security_token_redirectOnErr('/admin/tos', 'admin_tos');
if (!x($_POST, "page_tos")) {
return;
}
$displaytos = ((x($_POST, 'displaytos')) ? True : False);
$displayprivstatement = ((x($_POST, 'displayprivstatement')) ? True : False);
$tostext = ((x($_POST, 'tostext')) ? strip_tags(trim($_POST['tostext'])) : '');
Config::set('system', 'tosdisplay', $displaytos);
Config::set('system', 'tosprivstatement', $displayprivstatement);
Config::set('system', 'tostext', $tostext);
goaway('admin/tos');
return; // NOTREACHED
}
/**
* @brief Subpage to modify the server wide block list via the admin panel.
*
@ -1547,6 +1598,8 @@ function admin_page_users_post(App $a)
If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
If you ever want to delete your account, you can do so at %1$s/removeme
Thank you and welcome to %4$s.'));
$preamble = sprintf($preamble, $user['username'], $a->config['sitename']);