diff --git a/admin_templates.php b/admin_templates.php index 21088873..ca098bd4 100644 --- a/admin_templates.php +++ b/admin_templates.php @@ -220,9 +220,10 @@ if ($action == '') { $template_add_data = include_once dirname(__FILE__) . '/lib/formfields/admin/templates/formfield.template_add.php'; - UI::twigBuffer('user/form.html.twig', [ + UI::twigBuffer('user/form-replacers.html.twig', [ 'formaction' => $linker->getLink(array('section' => 'templates')), - 'formdata' => $template_add_data['template_add'] + 'formdata' => $template_add_data['template_add'], + 'replacers' => $template_add_data['template_replacers'] ]); UI::twigOutputBuffer(); } elseif (isset($_POST['send']) && $_POST['send'] == 'send') { @@ -388,23 +389,24 @@ if ($action == '') { } else { $templatesdefined = array(); - $free_templates = ''; + $free_templates = []; while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { $templatesdefined[] = $row['varname']; } foreach (array_diff($file_templates, $templatesdefined) as $template) { - $free_templates .= \Froxlor\UI\HTML::makeoption($lng['admin']['templates'][$template], $template, '', true); + $free_templates[$template] = $lng['admin']['templates'][$template]; } $filetemplate_add_data = include_once dirname(__FILE__) . '/lib/formfields/admin/templates/formfield.filetemplate_add.php'; - $filetemplate_add_form = \Froxlor\UI\HtmlForm::genHTMLForm($filetemplate_add_data); - $title = $filetemplate_add_data['filetemplate_add']['title']; - $image = $filetemplate_add_data['filetemplate_add']['image']; - - eval("echo \"" . \Froxlor\UI\Template::getTemplate("templates/filetemplates_add") . "\";"); + UI::twigBuffer('user/form-replacers.html.twig', [ + 'formaction' => $linker->getLink(array('section' => 'templates')), + 'formdata' => $filetemplate_add_data['filetemplate_add'], + 'replacers' => $filetemplate_add_data['filetemplate_replacers'] + ]); + UI::twigOutputBuffer(); } } } elseif ($action == 'edit' && $subjectid != 0 && $mailbodyid != 0) { @@ -449,7 +451,7 @@ if ($action == '') { } else { $result = \Froxlor\PhpHelper::htmlentitiesArray($result); - $template = $lng['admin']['templates'][str_replace('_subject', '', $result['varname'])]; + $template_name = $lng['admin']['templates'][str_replace('_subject', '', $result['varname'])]; $subject = $result['value']; $result_stmt = Database::prepare(" SELECT `language`, `varname`, `value` @@ -460,7 +462,7 @@ if ($action == '') { )); $result = $result_stmt->fetch(PDO::FETCH_ASSOC); - $template_name = str_replace('_mailbody', '', $result['varname']); + $template = str_replace('_mailbody', '', $result['varname']); // don't escape the already escaped language-string so save up before htmlentities() $language = $result['language']; @@ -468,12 +470,13 @@ if ($action == '') { $mailbody = $result['value']; $template_edit_data = include_once dirname(__FILE__) . '/lib/formfields/admin/templates/formfield.template_edit.php'; - $template_edit_form = \Froxlor\UI\HtmlForm::genHTMLForm($template_edit_data); - $title = $template_edit_data['template_edit']['title']; - $image = $template_edit_data['template_edit']['image']; - - eval("echo \"" . \Froxlor\UI\Template::getTemplate("templates/templates_edit") . "\";"); + UI::twigBuffer('user/form-replacers.html.twig', [ + 'formaction' => $linker->getLink(array('section' => 'templates')), + 'formdata' => $template_edit_data['template_edit'], + 'replacers' => $template_edit_data['template_replacers'] + ]); + UI::twigOutputBuffer(); } } } elseif ($action == 'editf' && $id != 0) { diff --git a/lib/formfields/admin/templates/formfield.filetemplate_add.php b/lib/formfields/admin/templates/formfield.filetemplate_add.php index 8af538b0..95ce565c 100644 --- a/lib/formfields/admin/templates/formfield.filetemplate_add.php +++ b/lib/formfields/admin/templates/formfield.filetemplate_add.php @@ -14,6 +14,7 @@ * @package Formfields * */ + return array( 'filetemplate_add' => array( 'title' => $lng['admin']['templates']['template_add'], @@ -26,17 +27,44 @@ return array( 'template' => array( 'label' => $lng['admin']['templates']['action'], 'type' => 'select', - 'select_var' => $free_templates, - 'selected' => '@TODO' + 'select_var' => $free_templates ), 'filecontent' => array( 'label' => $lng['admin']['templates']['filecontent'], 'type' => 'textarea', 'cols' => 60, 'rows' => 12 + ), + 'filesend' => array( + 'type' => 'hidden', + 'value' => 'filesend' ) ) ) ) - ) + ), + 'filetemplate_replacers' => [ + 'replacers' => [ + [ + 'var' => 'SERVERNAME', + 'description' => $lng['admin']['templates']['SERVERNAME'] + ], + [ + 'var' => 'CUSTOMER', + 'description' => $lng['admin']['templates']['CUSTOMER'] + ], + [ + 'var' => 'ADMIN', + 'description' => $lng['admin']['templates']['ADMIN'] + ], + [ + 'var' => 'CUSTOMER_EMAIL', + 'description' => $lng['admin']['templates']['CUSTOMER_EMAIL'] + ], + [ + 'var' => 'ADMIN_EMAIL', + 'description' => $lng['admin']['templates']['ADMIN_EMAIL'] + ] + ] + ] ); diff --git a/lib/formfields/admin/templates/formfield.template_add.php b/lib/formfields/admin/templates/formfield.template_add.php index a47d752d..0eb6700c 100644 --- a/lib/formfields/admin/templates/formfield.template_add.php +++ b/lib/formfields/admin/templates/formfield.template_add.php @@ -50,5 +50,6 @@ return array( ) ) ) - ) + ), + 'template_replacers' => include __DIR__ . '/template.replacers.php' ); diff --git a/lib/formfields/admin/templates/formfield.template_edit.php b/lib/formfields/admin/templates/formfield.template_edit.php index c3b9ef19..50c424a3 100644 --- a/lib/formfields/admin/templates/formfield.template_edit.php +++ b/lib/formfields/admin/templates/formfield.template_edit.php @@ -32,8 +32,8 @@ return array( 'template' => array( 'label' => $lng['admin']['templates']['action'], 'type' => 'hidden', - 'value' => $template, - 'display' => $template + 'value' => $template_name, + 'display' => $template_name ), 'subject' => array( 'label' => $lng['admin']['templates']['subject'], @@ -46,9 +46,18 @@ return array( 'cols' => 60, 'rows' => 12, 'value' => $mailbody + ), + 'subjectid' => array( + 'type' => 'hidden', + 'value' => $subjectid + ), + 'mailbodyid' => array( + 'type' => 'hidden', + 'value' => $mailbodyid ) ) ) ) - ) + ), + 'template_replacers' => include __DIR__ . '/template.replacers.php' ); diff --git a/lib/formfields/admin/templates/template.replacers.php b/lib/formfields/admin/templates/template.replacers.php new file mode 100644 index 00000000..3a2625a2 --- /dev/null +++ b/lib/formfields/admin/templates/template.replacers.php @@ -0,0 +1,135 @@ + (2010-) + * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt + * @package Formfields + * + */ +return [ + 'replacers' => [ + [ + 'var' => 'SALUTATION', + 'description' => $lng['admin']['templates']['SALUTATION'] + ], + [ + 'var' => 'FIRSTNAME', + 'description' => $lng['admin']['templates']['FIRSTNAME'] + ], + [ + 'var' => 'NAME', + 'description' => $lng['admin']['templates']['NAME'] + ], + [ + 'var' => 'COMPANY', + 'description' => $lng['admin']['templates']['COMPANY'] + ], + [ + 'var' => 'CUSTOMER_NO', + 'description' => $lng['admin']['templates']['CUSTOMER_NO'] + ], + [ + 'var' => 'USERNAME', + 'description' => $lng['admin']['templates']['USERNAME'], + 'visible' => $template == 'createcustomer' || $template == 'password_reset' + ], + [ + 'var' => 'PASSWORD', + 'description' => $lng['admin']['templates']['PASSWORD'], + 'visible' => $template == 'createcustomer' + ], + [ + 'var' => 'EMAIL', + 'description' => $lng['admin']['templates']['EMAIL'], + 'visible' => $template == 'pop_success' + ], + [ + 'var' => 'PASSWORD', + 'description' => $lng['admin']['templates']['EMAIL_PASSWORD'], + 'visible' => $template == 'pop_success' + ], + [ + 'var' => 'LINK', + 'description' => $lng['admin']['templates']['LINK'], + 'visible' => $template == 'password_reset' + ], + [ + 'var' => 'TRAFFIC', + 'description' => $lng['admin']['templates']['TRAFFIC'], + 'visible' => $template == 'trafficmaxpercent' + ], + [ + 'var' => 'TRAFFICUSED', + 'description' => $lng['admin']['templates']['TRAFFICUSED'], + 'visible' => $template == 'trafficmaxpercent' + ], + [ + 'var' => 'DISKAVAILABLE', + 'description' => $lng['admin']['templates']['DISKAVAILABLE'], + 'visible' => $template == 'diskmaxpercent' + ], + [ + 'var' => 'DISKUSED', + 'description' => $lng['admin']['templates']['DISKUSED'], + 'visible' => $template == 'diskmaxpercent' + ], + [ + 'var' => 'MAX_PERCENT', + 'description' => $lng['admin']['templates']['MAX_PERCENT'], + 'visible' => $template == 'trafficmaxpercent' || $template == 'diskmaxpercent' + ], + [ + 'var' => 'USAGE_PERCENT', + 'description' => $lng['admin']['templates']['USAGE_PERCENT'], + 'visible' => $template == 'trafficmaxpercent' || $template == 'diskmaxpercent' + ], + [ + 'var' => 'DB_NAME', + 'description' => $lng['admin']['templates']['DB_NAME'], + 'visible' => $template == 'new_database_by_customer' + ], + [ + 'var' => 'DB_PASS', + 'description' => $lng['admin']['templates']['DB_PASS'], + 'visible' => $template == 'new_database_by_customer' + ], + [ + 'var' => 'DB_DESC', + 'description' => $lng['admin']['templates']['DB_DESC'], + 'visible' => $template == 'new_database_by_customer' + ], + [ + 'var' => 'DB_SRV', + 'description' => $lng['admin']['templates']['DB_SRV'], + 'visible' => $template == 'new_database_by_customer' + ], + [ + 'var' => 'PMA_URI', + 'description' => $lng['admin']['templates']['PMA_URI'], + 'visible' => $template == 'new_database_by_customer' + ], + [ + 'var' => 'USR_NAME', + 'description' => $lng['admin']['templates']['USR_NAME'], + 'visible' => $template == 'new_ftpaccount_by_customer' + ], + [ + 'var' => 'USR_PASS', + 'description' => $lng['admin']['templates']['USR_PASS'], + 'visible' => $template == 'new_ftpaccount_by_customer' + ], + [ + 'var' => 'USR_PATH', + 'description' => $lng['admin']['templates']['USR_PATH'], + 'visible' => $template == 'new_ftpaccount_by_customer' + ] + ] +]; diff --git a/templates/Froxlor/user/form-replacers.html.twig b/templates/Froxlor/user/form-replacers.html.twig new file mode 100644 index 00000000..a1cd88c7 --- /dev/null +++ b/templates/Froxlor/user/form-replacers.html.twig @@ -0,0 +1,23 @@ +{% extends "Froxlor/user/form.html.twig" %} + +{% block content %} + + {{ parent() }} + + {% if replacers is not empty and replacers is iterable %} +
+
+
{{ lng('admin.templates.template_replace_vars') }}
+
+ {% for replacer in replacers.replacers %} + {% if (replacer.visible is defined and replacer.visible) or replacer.visible is not defined %} +
{{ '{' }}{{ replacer.var }}{{ '}' }}
+
{{ replacer.description }}
+ {% endif %} + {% endfor %} +
+
+
+ {% endif %} + +{% endblock %}