diff --git a/misc/init.sh b/misc/init.sh
index f2f0206..173511d 100755
--- a/misc/init.sh
+++ b/misc/init.sh
@@ -84,6 +84,10 @@ echo
tar xzvf /tmp/mlmmj-light-web-master/misc/templates.tar.gz -C /tmp/mlmmj-light-web-master/misc
rm /tmp/mlmmj-light-web-master/misc/templates.tar.gz
echo
+echo "Unpacking smarty..."
+tar xzvf /tmp/mlmmj-light-web-master/misc/smarty.tar.gz -C /tmp/mlmmj-light-web-master/misc
+rm /tmp/mlmmj-light-web-master/misc/smarty.tar.gz
+echo
echo "Compiling foot_filter..."
echo
make -C /tmp/mlmmj-light-web-master/misc/move/foot_filter
diff --git a/misc/smarty.tar.gz b/misc/smarty.tar.gz
new file mode 100644
index 0000000..07d875a
Binary files /dev/null and b/misc/smarty.tar.gz differ
diff --git a/misc/smarty/templates_c/085c43aa609e2e11c05d0026471aaaa2a26be865_0.file.error.tpl.php b/misc/smarty/templates_c/085c43aa609e2e11c05d0026471aaaa2a26be865_0.file.error.tpl.php
deleted file mode 100644
index 1e4fb21..0000000
--- a/misc/smarty/templates_c/085c43aa609e2e11c05d0026471aaaa2a26be865_0.file.error.tpl.php
+++ /dev/null
@@ -1,57 +0,0 @@
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_588b2f056f0767_75452529',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '085c43aa609e2e11c05d0026471aaaa2a26be865' =>
- array (
- 0 => '/var/www/html/smarty/templates_ru/error.tpl',
- 1 => 1485516367,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_588b2f056f0767_75452529 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
-
-
-
- tpl_vars['error_code']->value == 1) {?>
- Домен может содержать только латинские буквы, точки, дефисы и цифры.
- tpl_vars['error_code']->value == 2) {?>
- Пароль может содержать только латинские буквы и цифры.
- tpl_vars['error_code']->value == 3) {?>
- Неверный пароль.
- tpl_vars['error_code']->value == 4) {?>
- Такой домен не зарегистрирован.
- tpl_vars['error_code']->value == 5) {?>
- Название рассылки может содержать только латинские буквы, цифры и символы нижнего подчёркивания.
- tpl_vars['error_code']->value == 6) {?>
- Длина названия рассылки не может превышать 30-ти символов.
- tpl_vars['error_code']->value == 7) {?>
- Длина префикса не может превышать 128-ти символов.
- tpl_vars['error_code']->value == 8) {?>
- Длина подписи не может превышать 1024-ти символов.
- tpl_vars['error_code']->value == 9) {?>
- Среди подписчиков есть некорректный e-mail.
-
- Неизвестная ошибка.
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_5890e7cc706e70_54046020',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '0b36f150fb6660b8982bed805054bb093a12538d' =>
- array (
- 0 => '/var/www/html/misc/smarty/templates_en/index.tpl',
- 1 => 1485850802,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_5890e7cc706e70_54046020 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
->
- function validate_form()
- {
- var name = document.getElementById('add_list_input').value;
- var name = name.toLowerCase();
-
- if (name == "")
- {
- return false;
- }
-
- if (name.length > 30)
- {
- alert("Название списка рассылки должно содержать не более 30-ти символов.");
- return false;
- }
-
- if ( name.match(/[^a-z0-9_]/) )
- {
- alert("Название списка рассылки может содержать только латинские буквы, цифры и символы нижнего подчёркивания.");
- return false;
- }
- }
-
- function confirm_delete()
- {
- return confirm("Вы действительно хотите удалить список рассылки?");
- }
-
->
-
-
-
- tpl_vars['domain']->value;?>
-
-
-
-
- smarty->ext->_foreach->init($_smarty_tpl, $_smarty_tpl->tpl_vars['lists']->value, 'list');
-if ($_from !== null) {
-foreach ($_from as $_smarty_tpl->tpl_vars['list']->value) {
-?>
-
-
- •
-
-
- tpl_vars['list']->value;?>
-
-
-
-
-
-
- smarty->ext->_foreach->restore($_smarty_tpl, 1);
-?>
-
-
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_5873c743903c86_86143891',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '33a0e2a90d50b199feaa83030d7da2c9680cee0a' =>
- array (
- 0 => '/var/www/html/smarty/templates/edit_list.tpl',
- 1 => 1483982647,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_5873c743903c86_86143891 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_588e3ba3c46a98_78970628',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '53d7e28d1426936f3a3d534fc6fbcdf5d2e8c239' =>
- array (
- 0 => '/var/www/html/misc/smarty/templates_ru/login.tpl',
- 1 => 1485716381,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_588e3ba3c46a98_78970628 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
->
- function validate_form()
- {
- var domain = document.getElementById('domain_input').value;
- var password = document.getElementById('password_input').value;
-
- if (domain == "")
- {
- alert("Введите домен.");
- return false;
- }
-
- if (password == "")
- {
- alert("Введите пароль.");
- return false;
- }
- if ( domain.match(/[^A-Za-z0-9\-\.]/) )
- {
- alert("Домен может содержать только латинские буквы, цифры, точки и дефисы.");
- return false;
- }
- if ( password.match(/[^A-Za-z0-9]/) )
- {
- alert("Пароль может содержать только латинские буквы и цифры.");
- return false;
- }
- }
-
->
-
-
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_5869ce142bdbc4_61874071',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '569f7c9bad1e95dec6a51c7c51b98d4db367f54c' =>
- array (
- 0 => '/var/www/html/smarty/templates/index.tpl',
- 1 => 1483329013,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_5869ce142bdbc4_61874071 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
- Список рассылок:
- smarty->ext->_foreach->init($_smarty_tpl, $_smarty_tpl->tpl_vars['lists']->value, 'list');
-if ($_from !== null) {
-foreach ($_from as $_smarty_tpl->tpl_vars['list']->value) {
-?>
- tpl_vars['list']->value;?>
- [Удалить ]
- smarty->ext->_foreach->restore($_smarty_tpl, 1);
-?>
-
-
-
- Имя рассылки:
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_5869d7d16e2888_57689057',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '617b12a6bfb47e737ab55bf29207ecb92147b506' =>
- array (
- 0 => '/var/www/html/smarty/templates/login.tpl',
- 1 => 1483329039,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_5869d7d16e2888_57689057 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
-
- Домен:
-
- Пароль:
-
-
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_5888e7322dafc3_21846058',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '6820e2ed7eda3869d8307c28df0b8fa212af00dd' =>
- array (
- 0 => '/var/www/html/smarty/templates_ru/index.tpl',
- 1 => 1485367020,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_5888e7322dafc3_21846058 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
->
- function validate_form()
- {
- var name = document.getElementById('add_list_input').value;
- var name = name.toLowerCase();
-
- if (name == "")
- {
- return false;
- }
-
- if (name.length > 30)
- {
- alert("Название списка рассылки должно содержать не более 30-ти символов.");
- return false;
- }
-
- if ( name.match(/[^a-z0-9_]/) )
- {
- alert("Название списка рассылки может содержать только латинские буквы, цифры и символы нижнего подчёркивания.");
- return false;
- }
- }
-
->
-
-
-
- tpl_vars['domain']->value;?>
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_5890e7c59eb3e0_65385644',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '6a01fa4a4840b59937570aeacc80d159739f4ab1' =>
- array (
- 0 => '/var/www/html/misc/smarty/templates_en/edit_list.tpl',
- 1 => 1485891494,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_5890e7c59eb3e0_65385644 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
->
- // Do not use Smarty here
- function switch_moderators_form()
- {
- // Get a selected value
- var select = document.getElementById("list_type");
- var selected_value = select.options[select.selectedIndex].value;
-
- // If selected conference list type, then disable moderators form
- if (selected_value == "2")
- {
- document.getElementById("moderators").disabled = true;
- document.getElementById("moderators_header").style.color = "#777777";
- }
- else
- {
- document.getElementById("moderators").disabled = false;
- document.getElementById("moderators_header").style.color = "#222222";
- }
- }
-
- function validate_form()
- {
- var prefix = document.getElementById('prefix').value;
- var footer = document.getElementById('footer').value;
- var subscribers = document.getElementById('subscribers').value;
- var moderators = document.getElementById('moderators').value;
-
- // Regex for a valid e-mail
- var re_email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
-
- // Transform subscribers and moderators into array
- subscribers = subscribers.split("\n");
- moderators = moderators.split("\n");
-
- if (prefix.length > 128)
- {
- alert("A prefix length can not be longer than 128 characters.");
- return false;
- }
-
- if (footer.length > 1024)
- {
- alert("A footer length can not be longer than 1024 characters.");
- return false;
- }
-
- for(var i in subscribers)
- {
- if ( subscribers[i] != "" && !re_email.test(subscribers[i]) )
- {
- alert('Subscriber "' + subscribers[i] + '" (line #' + (parseFloat(i)+1) + ') have incorrect email.');
- return false;
- }
- }
-
- for(var i in moderators)
- {
- if ( moderators[i] != "" && !re_email.test(moderators[i]) )
- {
- alert('Moderator "' + moderators[i] + '" (line #' + (parseFloat(i)+1) + ') have incorrect email.');
- return false;
- }
- }
- }
- //
-
->
-
-
-
-
-
-
-
-
-
-
- tpl_vars['subscribers']->value;?>
-
-
-
-
-
-
-
- tpl_vars['moderators']->value;?>
-
-
-
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_5890eda331cf62_87676770',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '74de2eb1870f65e47bdebde8c12ed050e90ded57' =>
- array (
- 0 => '/var/www/html/misc/smarty/templates_ru/index.tpl',
- 1 => 1485892241,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_5890eda331cf62_87676770 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
->
- function validate_form()
- {
- var name = document.getElementById('add_list_input').value;
- var name = name.toLowerCase();
-
- if (name == "")
- {
- return false;
- }
-
- if (name.length > 30)
- {
- alert("Название списка рассылки должно содержать не более 30-ти символов.");
- return false;
- }
-
- if ( name.match(/[^a-z0-9_]/) )
- {
- alert("Название списка рассылки может содержать только латинские буквы, цифры и символы нижнего подчёркивания.");
- return false;
- }
- }
-
- function confirm_delete()
- {
- return confirm("Вы действительно хотите удалить список рассылки?");
- }
-
->
-
-
-
- tpl_vars['domain']->value;?>
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_589041dd3259d1_17665347',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- '9f1de615a6b90a928a6f77b08d01bdc17781ec0b' =>
- array (
- 0 => '/var/www/html/misc/smarty/templates_ru/edit_list.tpl',
- 1 => 1485849048,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_589041dd3259d1_17665347 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
->
- // Do not use Smarty here
- function switch_moderators_form()
- {
- // Get a selected value
- var select = document.getElementById("list_type");
- var selected_value = select.options[select.selectedIndex].value;
-
- // If selected conference list type, then disable moderators form
- if (selected_value == "2")
- {
- document.getElementById("moderators").disabled = true;
- document.getElementById("moderators_header").style.color = "#777777";
- }
- else
- {
- document.getElementById("moderators").disabled = false;
- document.getElementById("moderators_header").style.color = "#222222";
- }
- }
-
- function validate_form()
- {
- var prefix = document.getElementById('prefix').value;
- var footer = document.getElementById('footer').value;
- var subscribers = document.getElementById('subscribers').value;
- var moderators = document.getElementById('moderators').value;
-
- // Regex for a valid e-mail
- var re_email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
-
- // Transform subscribers and moderators into array
- subscribers = subscribers.split("\n");
- moderators = moderators.split("\n");
-
- if (prefix.length > 128)
- {
- alert("Длина префикса не должна превышать 128-ми символов.");
- return false;
- }
-
- if (footer.length > 1024)
- {
- alert("Длина подписи не должна превышать 1024-ёх символов.");
- return false;
- }
-
- for(var i in subscribers)
- {
- if ( subscribers[i] != "" && !re_email.test(subscribers[i]) )
- {
- alert('Подписчик "' + subscribers[i] + '" (строка №' + (parseFloat(i)+1) + ') является невалидным адресом электронной почты.');
- return false;
- }
- }
-
- for(var i in moderators)
- {
- if ( moderators[i] != "" && !re_email.test(moderators[i]) )
- {
- alert('Модератор "' + moderators[i] + '" (строка №' + (parseFloat(i)+1) + ') является невалидным адресом электронной почты.');
- return false;
- }
- }
- }
- //
-
->
-
-
-
-
-
-
-
-
-
-
- tpl_vars['subscribers']->value;?>
-
-
-
-
-
-
-
- tpl_vars['moderators']->value;?>
-
-
-
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_588dcdb0c8d950_81798250',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- 'aa00a58a15f019bd5c0612378cd3ff5f5b6adcae' =>
- array (
- 0 => '/var/www/html/misc/smarty/templates_ru/error.tpl',
- 1 => 1485688232,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_588dcdb0c8d950_81798250 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
-
-
-
- tpl_vars['error_code']->value == 1) {?>
- Домен может содержать только латинские буквы, точки, дефисы и цифры.
- tpl_vars['error_code']->value == 2) {?>
- Пароль может содержать только латинские буквы и цифры.
- tpl_vars['error_code']->value == 3) {?>
- Неверный пароль.
- tpl_vars['error_code']->value == 4) {?>
- Такой домен не зарегистрирован.
- tpl_vars['error_code']->value == 5) {?>
- Название рассылки может содержать только латинские буквы, цифры и символы нижнего подчёркивания.
- tpl_vars['error_code']->value == 6) {?>
- Длина названия рассылки не может превышать 30-ти символов.
- tpl_vars['error_code']->value == 7) {?>
- Длина префикса не может превышать 128-ти символов.
- tpl_vars['error_code']->value == 8) {?>
- Длина подписи не может превышать 1024-ти символов.
- tpl_vars['error_code']->value == 9) {?>
- Среди подписчиков есть некорректный e-mail.
- tpl_vars['error_code']->value == 10) {?>
- Среди модераторов есть некорректный e-mail.
-
- Неизвестная ошибка.
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_58878934506f48_92126530',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- 'ccdf76791105fd7c77f366b69d3a18e59c5c2b67' =>
- array (
- 0 => '/var/www/html/smarty/templates_ru/login.tpl',
- 1 => 1485277488,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_58878934506f48_92126530 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
->
- function validate_form()
- {
- var domain = document.getElementById('domain_input').value;
- var password = document.getElementById('password_input').value;
-
- if (domain == "")
- {
- alert("Введите домен.");
- return false;
- }
-
- if (password == "")
- {
- alert("Введите пароль.");
- return false;
- }
- }
-
->
-
-
-
-
-
-
-_decodeProperties($_smarty_tpl, array (
- 'version' => '3.1.31',
- 'unifunc' => 'content_588b8aa37593d1_30807545',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- 'fb61d69ef038dcd720aa2782f00f9ee0f411ff19' =>
- array (
- 0 => '/var/www/html/smarty/templates_ru/edit_list.tpl',
- 1 => 1485537120,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-),false)) {
-function content_588b8aa37593d1_30807545 (Smarty_Internal_Template $_smarty_tpl) {
-?>
-
-
-
-
->
- // Do not use Smarty here
- function switch_moderators_form()
- {
- // Get a selected value
- var select = document.getElementById("list_type");
- var selected_value = select.options[select.selectedIndex].value;
-
- // If selected conference list type, then disable moderators form
- if (selected_value == "2")
- {
- document.getElementById("moderators").disabled = true;
- document.getElementById("moderators_header").style.color = "#777777";
- }
- else
- {
- document.getElementById("moderators").disabled = false;
- document.getElementById("moderators_header").style.color = "#222222";
- }
- }
-
- function validate_form()
- {
- var prefix = document.getElementById('prefix').value;
- var footer = document.getElementById('footer').value;
- var subscribers = document.getElementById('subscribers').value;
- var moderators = document.getElementById('moderators').value;
-
- // Regex for a valid e-mail
- var re_email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
-
- // Transform subscribers and moderators into array
- subscribers = subscribers.split("\n");
- moderators = moderators.split("\n");
-
- if (prefix.length > 128)
- {
- alert("Длина префикса не должна превышать 128-ми символов.");
- return false;
- }
-
- if (footer.length > 1024)
- {
- alert("Длина подписи не должна превышать 1024-ёх символов.");
- return false;
- }
-
- for(var i in subscribers)
- {
- if ( subscribers[i] != "" && !re_email.test(subscribers[i]) )
- {
- alert('Подписчик "' + subscribers[i] + '" (строка №' + (parseFloat(i)+1) + ') является невалидным адресом электронной почты.');
- return false;
- }
- }
-
- for(var i in moderators)
- {
- if ( moderators[i] != "" && !re_email.test(moderators[i]) )
- {
- alert('Модератор "' + moderators[i] + '" (строка №' + (parseFloat(i)+1) + ') является невалидным адресом электронной почты.');
- return false;
- }
- }
- }
- //
-
->
-
-
-
-
-
-
-
-
-
-
- tpl_vars['subscribers']->value;?>
-
-
-
-
-
-
-
- tpl_vars['moderators']->value;?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-