+/**
+ * @brief Subpage to define the display of a Terms of Usage page.
+ *
+ * @param App $a
+ * @return string
+ */
+function admin_page_tos(App $a)
+{
+ $tos = new Tos();
+ $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')],
+ '$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' => 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
+}