some work on mail/file template formfields

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2022-03-05 11:46:35 +01:00
parent 8256f31374
commit 54ce296018
6 changed files with 222 additions and 23 deletions

View File

@@ -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) {

View File

@@ -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']
]
]
]
);

View File

@@ -50,5 +50,6 @@ return array(
)
)
)
)
),
'template_replacers' => include __DIR__ . '/template.replacers.php'
);

View File

@@ -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'
);

View File

@@ -0,0 +1,135 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2010 the Froxlor Team (see authors).
*
* For the full copyright and license information, please view the COPYING
* file that was distributed with this source code. You can also view the
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
*
* @copyright (c) the authors
* @author Froxlor team <team@froxlor.org> (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'
]
]
];

View File

@@ -0,0 +1,23 @@
{% extends "Froxlor/user/form.html.twig" %}
{% block content %}
{{ parent() }}
{% if replacers is not empty and replacers is iterable %}
<div class="card mb-3">
<div class="card-body">
<h5 class="card-title">{{ lng('admin.templates.template_replace_vars') }}</h5>
<dl class="row">
{% for replacer in replacers.replacers %}
{% if (replacer.visible is defined and replacer.visible) or replacer.visible is not defined %}
<dt class="col-sm-3">{{ '{' }}{{ replacer.var }}{{ '}' }}</dt>
<dd class="col-sm-9">{{ replacer.description }}</dd>
{% endif %}
{% endfor %}
</dl>
</div>
</div>
{% endif %}
{% endblock %}