Добавлен модуль Рассылка / Подписка
This commit is contained in:
commit
87bb4c3dd2
16
README.md
Normal file
16
README.md
Normal file
@ -0,0 +1,16 @@
|
||||
## mailer
|
||||
|
||||
# Модуль Рассылка / Подписка v2.2.1
|
||||
|
||||
### адаптирован для AVE.CMS 3.0 v1.5
|
||||
|
||||
## Данный модуль позволяет создавать внутренние (по группам пользователей сайта), внешние (по спискам) и комбинированные рассылки.
|
||||
|
||||
* Для вывода в публичной части сайта формы подписки на рассылку, используйте системный тег <strong>[mod_subscribe:XXX]</strong>, где XXX - идентификатор списка рассылки, в который будет добавлен подписчик.
|
||||
|
||||
|
||||
## Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку mailer со всем ее содержимым внутри!
|
||||
|
||||
## Changelog:
|
||||
|
||||
29.06.2014 - версия 2.2.1
|
1153
class.mailer.php
Normal file
1153
class.mailer.php
Normal file
File diff suppressed because it is too large
Load Diff
4
lang/index.php
Normal file
4
lang/index.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
211
lang/ru.txt
Normal file
211
lang/ru.txt
Normal file
@ -0,0 +1,211 @@
|
||||
[public]
|
||||
MAILER_EMAIL = "E-mail"
|
||||
MAILER_LNAME = "Фамилия"
|
||||
MAILER_FNAME = "Имя"
|
||||
MAILER_MNAME = "Отчество"
|
||||
MAILER_SUBSCRIBE = "Подписаться"
|
||||
MAILER_UNSUBSCRIBE = "Отписаться"
|
||||
|
||||
MAILER_WRONG_EMAIL = "Неверный синтаксис email-а!"
|
||||
MAILER_DELETED = "Получатель <a href="mailto:%email%" target="_blank">%email%</a> успешно удалён из списка рассылки!"
|
||||
MAILER_DEL_NO = "Получатель <a href="mailto:%email%" target="_blank">%email%</a> отсутствует в списке рассылки!<br/>Возможно, вы уже отправляли заявку на удаление."
|
||||
MAILER_SUBSCRIBED = "Получатель <a href="mailto:%email%" target="_blank">%email%</a> успешно добавлен в список рассылки!"
|
||||
MAILER_SUBSCRIBE_EXIST = "Получатель <a href="mailto:%email%" target="_blank">%email%</a> уже есть в списке рассылки!<br>Возможно, вы отправляли заявку ранее. Поля ФИО были обновлены."
|
||||
|
||||
[admin]
|
||||
MAILER_MODULE_NAME = "Рассылка"
|
||||
MAILER_MODULE_INFO = "На этой странице вы можете написать новое письмо и просмотреть список выполненных рассылок. Для отправки внешней рассылки необходимо сначала создать список рассылки в соответствующем разделе модуля."
|
||||
MAILER_MANAGE_MAILS = "Управление рассылками"
|
||||
MAILER_MANAGE_LISTS = "Управление списками рассылки"
|
||||
MAILER_NEW_MAIL = "Создать рассылку"
|
||||
MAILER_NEW_LIST = "Создать список рассылки"
|
||||
MAILER_YES = "да"
|
||||
MAILER_NO = "нет"
|
||||
MAILER_OR = "или"
|
||||
MAILER_MAILS_CTRL = "Для выбора нескольких используйте <b>Ctrl</b>"
|
||||
MAILER_ADD_BTN = "Создать список рассылки"
|
||||
MAILER_ADD_CONT_BTN = "Создать и продолжить (CTRL+S)"
|
||||
MAILER_EDIT_BTN = "Сохранить изменения"
|
||||
MAILER_EDIT_CONT_BTN = "Сохранить и продолжить (CTRL+S)"
|
||||
MAILER_SAVED = "Сохранено"
|
||||
MAILER_ACTIONS = "Действия"
|
||||
MAILER_ACTIONS_EDIT = "Редактировать"
|
||||
MAILER_ACTIONS_COPY = "Копировать"
|
||||
MAILER_ACTIONS_SHOW = "Показать письмо в новой вкладке"
|
||||
MAILER_ACTIONS_HOWSAVE = "Для сохранения нажмите одну из кнопок под таблицей"
|
||||
MAILER_ACTIONS_DEL = "Удалить"
|
||||
MAILER_ACTIONS_DOWNLOAD = "Загрузить в формате csv"
|
||||
MAILER_ACTIONS_WIPE = "Очистить<br/>(удалить всех получателей)"
|
||||
MAILER_ACTIONS_WIPE_2 = "Удалить всех получателей из списка"
|
||||
MAILER_INPUT_ADD_ROW = "Добавить ряд"
|
||||
MAILER_SAVING = "Сохранение..."
|
||||
MAILER_SENDING = "Отправка..."
|
||||
MAILER_DELETING = "Удаление..."
|
||||
MAILER_SHOWING = "Просмотр..."
|
||||
MAILER_ADDING = "Добавление..."
|
||||
MAILER_SENDING_TEST = "Тестовая отправка..."
|
||||
MAILER_WIPING = "Очистка..."
|
||||
MAILER_SHOW_AUTHOR_TIT = "Просмотреть учётную запись пользователя"
|
||||
MAILER_WRITE_EMAIL = "Написать письмо"
|
||||
MAILER_LOOK = "Посмотреть"
|
||||
MAILER_LOOK_LIST = "Посмотреть список"
|
||||
MAILER_ER_EMAIL_SYN = "Неверный синтаксис email-а!"
|
||||
MAILS_SAVED = "Сохранено"
|
||||
MAILER_EMAIL_OK = "Правильный email"
|
||||
MAILER_SENT_OK = "Рассылка успешно отправлена"
|
||||
MAILER_SENT_OK_TEXT = "Рассылка была успешно отправлена и сохранена в список 'Выполненных рассылок'."
|
||||
MAILER_SENT_OK_LINK = "Вернуться к рассылкам"
|
||||
MAILER_NOFILE = "Файл не найден!"
|
||||
|
||||
MAILER_MAILS_HEAD = "Выполненные рассылки"
|
||||
MAILER_MAILS_TPL_H = "Сохранённые рассылки (черновики)"
|
||||
MAILER_MAILS_AUTHOR = "Автор"
|
||||
MAILER_MAILS_SUBJECT = "Тема"
|
||||
MAILER_MAILS_DATE = "Дата отправки"
|
||||
MAILER_MAILS_CREATED = "Дата создания"
|
||||
MAILER_MAILS_FROM = "Отправитель"
|
||||
MAILER_MAILS_FORMAT = "Формат"
|
||||
MAILER_MAILS_REC_ADD = "Дополнительные получатели"
|
||||
MAILER_MAILS_REC_ADD_I = "Здесь можно через <b>точку с запятой</b> указать дополнительные email-ы только для этой рассылки"
|
||||
MAILER_MAILS_RECIEVERS = "Получатели"
|
||||
MAILER_MAILS_ATTACHS = "Прикреплённые файлы"
|
||||
MAILER_MAILS_NOITEMS = "Нет выполненных рассылок"
|
||||
MAILER_MAILS_TPL_NO = "Нет сохранённых рассылок"
|
||||
MAILER_MAILS_ADD_TITLE = "Создание рассылки"
|
||||
MAILER_MAILS_EDIT_TITLE = "Редактирование рассылки"
|
||||
MAILER_MAILS_NEW_TITLE = "Новая рассылка"
|
||||
MAILER_MAILS_HEAD_MAIL = "Параметры письма"
|
||||
MAILER_MAILS_HEAD_SET = "Параметры отправки"
|
||||
MAILER_MAILS_REC_GROUPS = "группы пользователей сайта"
|
||||
MAILER_MAILS_REC_LISTS = "списки рассылки"
|
||||
MAILER_MAILS_FROM_NAME = "Имя отправителя"
|
||||
MAILER_MAILS_FROM_EMAIL = "Адрес отправителя"
|
||||
MAILER_MAILS_FROM_COPY = "Поставить отправителя в копию"
|
||||
MAILER_MAILS_APPEAL = "Обращение к получателю"
|
||||
MAILER_MAILS_APPEAL_I = "Подставляется в %NAME%, если ФИО пустое"
|
||||
MAILER_MAILS_APPEAL_D = "уважаемый клиент"
|
||||
MAILER_MAILS_TEXT = "Текст"
|
||||
MAILER_MAILS_TEXT_I = "Шаблоны:<br /><b>%NAME%</b> = ФИО<br /><b>%ID%</b> = {№ рассылки} {C|G|L|A} {id получателя},<br />где C - сам отправитель, G - из группы, L - из списка, A - доп. получатель<br /><b>%SHOW%</b> = ссылка для просмотра письма в браузере при неправильном отображении"
|
||||
MAILER_MAILS_TEXT_D = "Здравствуйте, %NAME%!"
|
||||
MAILER_MAILS_ATTACH = "Прикрепить файлы"
|
||||
MAILER_MAILS_ATTACH_A = "Добавить файл"
|
||||
MAILER_MAILS_ATTACH_I = "Прикрепляйте файлы только если собираетесь отправить эту рассылку прямо сейчас"
|
||||
MAILER_MAILS_SAVEATTACH = "Сохранить файлы после отправки?"
|
||||
MAILER_MAILS_TEST_BTN = "Тестовая отправка"
|
||||
MAILER_MAILS_SEND_BTN = "Отправить"
|
||||
MAILER_MAILS_SAVE_BTN = "Сохранить черновик"
|
||||
MAILER_MAILS_SAVE_BTN_C = "Сохранить и продолжить (Ctrl+S)"
|
||||
MAILER_MAILS_SEND_Q = "Вы уверены, что расслылка готова к отправке?"
|
||||
MAILER_MAILS_SEND_TEST = "Отправить тестовое письмо на следующие адреса<br/>(разделяйте <b>точкой с запятой</b>)"
|
||||
MAILER_MAILS_TEST_OK = "Тестовое письмо было успешно отправлено адресатам:"
|
||||
MAILER_MAILS_FINAL_REC = "Финальный список рассылки"
|
||||
MAILER_MAILS_FINAL_TXT = "Сохраните черновик перед просмотром Ctrl+S"
|
||||
MAILER_MAILS_MAKE_FIN = "Просмотреть"
|
||||
MAILER_MAILS_FIN_INFO = "Список откроется во всплывающем окне (разблокируйте)"
|
||||
MAILER_MAILS_DEL_Q = "Удалить черновик рассылки"
|
||||
MAILER_MAILS_SHOW = "Показать письмо в новой вкладке (%SHOW%)"
|
||||
MAILER_MAILS_SHOW_ALERT = "Сохраните рассылку первый раз перед просмотром!"
|
||||
MAILER_MAILS_TIMING = "Способ отправки"
|
||||
MAILER_MAILS_TIM_ALL = "Все сразу"
|
||||
MAILER_MAILS_TIM_100 = "По 100 писем в час"
|
||||
MAILER_MAILS_TIM_200 = "По 200 писем в час"
|
||||
MAILER_MAILS_TIM_300 = "По 300 писем в час"
|
||||
MAILER_MAILS_DELAY = "Задержка <strong>1 час</strong>, отправка следующей порции писем: <strong id="delay_time"></strong>. Чтобы продолжить прямо сейчас, нажмите <strong>Ctrl+G</strong>"
|
||||
MAILER_MAILS_STOP = "Чтобы остановить процесс отправки, нажмите <strong>Ctrl+Q</strong>"
|
||||
|
||||
MAILER_MAILS_SEARCH = "Найти"
|
||||
MAILER_SEARCHING = "Поиск..."
|
||||
MAILER_MAILS_FIND = "Поиск выполненных рассылок по полям:"
|
||||
MAILER_MAILS_FIND_NO = "Ничего не найдено"
|
||||
MAILER_MAILS_FIND_IN = "Введите слово или фрагмент текста для поиска"
|
||||
MAILER_ERR_SEACRH_WORDS = "Введите слово для поиска!"
|
||||
MAILER_ERR_SEACRH = "Выберите хотя бы одно поле!"
|
||||
MAILER_SEARCH_FROM_E = "Email отправителя"
|
||||
MAILER_SEARCH_FROM_N = "Имя отправителя"
|
||||
MAILER_SEARCH_SUB = "Тема"
|
||||
MAILER_SEARCH_BODY = "Текст"
|
||||
MAILER_SEARCH_REC = "Получатели (только по email-ам)"
|
||||
|
||||
MAILER_ERR_FROM_NAME = "Введите имя отправителя!"
|
||||
MAILER_ERR_FROM_EMAIL = "Укажите правильный email отправителя!"
|
||||
MAILER_ERR_TO = "Выберите хотя бы один список рассылки или группу получателей,<br />либо укажите дополнительные email-ы!"
|
||||
MAILER_ERR_TO_ADD = "Проверьте правильность введённых email-ов!"
|
||||
MAILER_ERR_SUBJECT = "Укажите тему рассылки!"
|
||||
MAILER_ERR_BODY = "Введите текст письма!"
|
||||
MAILER_ALERT_ATTACH = "Выбранные Вами файлы вложений сохранены не будут.<br />Указывайте вложения только перед отправкой письма!"
|
||||
|
||||
MAILER_LISTS_INFO = "В этом разделе выводятся все списки рассылки"
|
||||
MAILER_LISTS_EDIT_INFO = "Здесь вы можете отредактировать и дополнить список рассылки. Чтобы добавить сразу несколько получателей, нажмите крестик справа от полей для ввода информации. Добавление/изменение получателей осуществляется по нажатию кнопок сохранения; удаление выполняется без перезагрузки страницы.<br/>Для массового добавления получателей в список используйте раздел 'Импорт получателей'."
|
||||
MAILER_LISTS_HEAD = "Списки рассылки"
|
||||
MAILER_LIST_HEAD = "Список"
|
||||
MAILER_LISTS_TITLE = "Название"
|
||||
MAILER_LISTS_DESCR = "Описание"
|
||||
MAILER_LISTS_AUTHOR = "Автор"
|
||||
MAILER_LISTS_DATE = "Дата создания"
|
||||
MAILER_LISTS_NUMBER = "Кол-во"
|
||||
MAILER_LISTS_NUMBER_F = "Кол-во получателей в списке"
|
||||
MAILER_LISTS_DELCHECK = "Удалить выбранные"
|
||||
MAILER_LISTS_NOITEMS = "Нет списков рассылки"
|
||||
|
||||
MAILER_LISTS_ADD = "Добавить список"
|
||||
MAILER_LISTS_ADD_NAME = "Название списка рассылки"
|
||||
MAILER_LISTS_CREATE = "Создать список рассылки"
|
||||
MAILER_LISTS_CREATE_T = "Новый список"
|
||||
MAILER_LISTS_CREATE_MES = "Укажите название списка рассылки!"
|
||||
MAILER_LISTS_FIND = "Найти список"
|
||||
|
||||
MAILER_LISTS_ADD_TITLE = "Создание списка рассылки"
|
||||
MAILER_LISTS_EDIT_TITLE = "Редактирование списка рассылки"
|
||||
MAILER_LISTS_SET_COM = "Общие настройки списка рассылки"
|
||||
MAILER_LISTS_SET_REC = "Получатели"
|
||||
MAILER_LISTS_DESCR_INFO = "Напишите, пожалуйста, подробное описание списка рассылки"
|
||||
MAILER_LISTS_NOTITLE = "Укажите название списка рассылки!"
|
||||
|
||||
MAILER_LISTS_IMPORT = "Импорт получателей"
|
||||
MAILER_LISTS_IMPORT_T = "Прямой ввод"
|
||||
MAILER_LISTS_IMPORT_T_1 = "Разделитель получателей:"
|
||||
MAILER_LISTS_IMPORT_T_2 = "Разделителей полей:"
|
||||
MAILER_LISTS_IMPORT_T_H = "Если разделитель - новая строка, используйте \r\n"
|
||||
MAILER_LISTS_IMPORT_F = "Импорт из файла CSV"
|
||||
MAILER_LISTS_IMPORT_F_I = "Возможен импорт из файлов CSV кодировок cp1251 и UTF-8."
|
||||
MAILER_LISTS_IMPORT_F_H = "Внимание! Некоторые версии MS Excel сохраняют csv с разделителем <b>;</b> независимо от выбранного формата.<br/>Перед импортом проверяйте файл в блокноте."
|
||||
MAILER_LISTS_IMPORT_F_D = "Разделитель столбцов:"
|
||||
|
||||
MAILER_REC_STATUS_I = "Письмо получат только отмеченные получатели. Сняв флажок, Вы можете временно отключить адресата от рассылки.<br/>Если чекбокс запрещён, это означает, что подписчик отказался от рассылки"
|
||||
MAILER_REC_STATUS_I2 = "Письмо получат только отмеченные получатели. Сняв флажок, Вы можете временно отключить адресата от рассылки."
|
||||
MAILER_REC_EMAIL = "Email"
|
||||
MAILER_REC_LASTN = "Фамилия"
|
||||
MAILER_REC_FIRSTN = "Имя"
|
||||
MAILER_REC_MIDN = "Отчество"
|
||||
MAILER_REC_COMMENTS = "Комментарии"
|
||||
MAILER_REC_NOITEMS = "Список получателей пуст"
|
||||
MAILER_REC_EMAIL_OK = "Данный email можно добавить в список"
|
||||
MAILER_REC_EMAIL_NO = "Ошибка! Данный email уже есть в текущем списке рассылки"
|
||||
MAILER_REC_DEL = "Удалить получателя"
|
||||
MAILER_REC_DELETED = "Получатель был успешно удалён из списка рассылки"
|
||||
MAILER_REC_REFUSED = "Получатель отказался от рассылки"
|
||||
MAILER_REC_UNCHECKED = "Получатель был исключён из списка рассылки вручную"
|
||||
MAILER_REC_DATE_ADD = "Добавлен:"
|
||||
|
||||
MAILER_MULTI_HINT = "Позволяет за раз добавить нескольких получателей в несколько списков"
|
||||
MAILER_MULTI_INFO = "Здесь Вы можете за один раз добавить нескольких получателей в несколько списков"
|
||||
MAILER_MULTI_TITLE = "Мульти-добавление получателей"
|
||||
MAILER_MULTI_LISTS = "Списки"
|
||||
MAILER_MULTI_TITLE2 = "Мульти-добавление адресатов в списки"
|
||||
MAILER_MULTI_BTN = "Добавить получателей"
|
||||
MAILER_MULTI_BTN_CTRL = "Добавить и продолжить (CTRL+S)"
|
||||
MAILER_MULTI_NOLIST = "Выберите хотя бы один список!"
|
||||
MAILER_MULTI_EMAIL_OK = "Правильный синтаксис email-а"
|
||||
|
||||
MAILER_COUNT_TITLE = "Просмотр финального списка получателей рассылки"
|
||||
MAILER_GROUPS = "Группы"
|
||||
MAILER_GROUP = "Группа"
|
||||
MAILER_LOGIN = "Логин"
|
||||
MAILER_COUNT_INFO = "Если строка получателя выделена красным, значит, он по каким-то причинам не попадёт в финальный список рассылки"
|
||||
MAILER_COUNT_ER_REPEAT = "Получатель с таким email-ом уже вошёл в фиальный список. См. таблицу выше."
|
||||
MAILER_COUNT_NOLISTS = "Отсутствуют получатели из списков рассылки"
|
||||
MAILER_COUNT_NOGROUPS = "Отсутствуют получатели из групп пользователей сайта"
|
||||
MAILER_COUNT_NOADD = "Отсутствуют дополнительные получатели"
|
||||
MAILER_COUNT_SUM = "Итого"
|
||||
MAILER_COUNT_ALL = "Всего получателей"
|
||||
MAILER_COUNT_ALL_INFO = "За вычетом красных строк"
|
196
module.php
Normal file
196
module.php
Normal file
@ -0,0 +1,196 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* AVE.cms - Модуль Рассылки
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module_mailer
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
if (!defined('BASE_DIR')) exit;
|
||||
|
||||
if (defined('ACP'))
|
||||
{
|
||||
$modul['ModuleName'] = 'Рассылка / Подписка';
|
||||
$modul['ModuleSysName'] = 'mailer';
|
||||
$modul['ModuleVersion'] = '2.2.1';
|
||||
$modul['ModuleDescription'] = 'Данный модуль позволяет создавать внутренние (по группам пользователей сайта), внешние (по спискам) и комбинированные рассылки. Для вывода в публичной части сайта формы подписки на рассылку, используйте системный тег <strong>[mod_subscribe:XXX]</strong>, где XXX - идентификатор списка рассылки, в который будет добавлен подписчик.';
|
||||
$modul['ModuleAutor'] = 'val005';
|
||||
$modul['ModuleCopyright'] = '© 2007-2013 AVE.CMS';
|
||||
$modul['ModuleIsFunction'] = 1;
|
||||
$modul['ModuleTemplate'] = 1;
|
||||
$modul['ModuleAdminEdit'] = 1;
|
||||
$modul['ModuleFunction'] = 'mod_subscribe';
|
||||
$modul['ModuleTag'] = '[mod_subscribe:XXX]';
|
||||
$modul['ModuleTagLink'] = null;
|
||||
$modul['ModuleAveTag'] = '#\\\[mod_subscribe:(\\\d+)]#';
|
||||
$modul['ModulePHPTag'] = "<?php mod_subscribe(''$1''); ?>";
|
||||
}
|
||||
|
||||
/**
|
||||
* Обработка тега модуля
|
||||
*
|
||||
* @param int $list_id идентификатор списка рассылки
|
||||
*/
|
||||
function mod_subscribe($list_id)
|
||||
{
|
||||
include_once(BASE_DIR . '/modules/mailer/class.mailer.php');
|
||||
$mailer = new mailer;
|
||||
$mailer->tpl_dir = BASE_DIR . '/modules/mailer/templates/';
|
||||
|
||||
global $AVE_Template;
|
||||
$lang_file = BASE_DIR . '/modules/mailer/lang/' . $_SESSION['user_language'] . '.txt';
|
||||
$AVE_Template->config_load($lang_file, 'public');
|
||||
|
||||
$list_id = (int)preg_replace('/\D/', '', $list_id);
|
||||
$_POST['email'] = trim($_POST['email']);
|
||||
|
||||
switch ($_POST['action'])
|
||||
{
|
||||
case 'subscribe':
|
||||
$result = $mailer->mailerSubscribe();
|
||||
switch ($result)
|
||||
{
|
||||
case 0:
|
||||
$mes = $AVE_Template->get_config_vars('MAILER_WRONG_EMAIL');
|
||||
break;
|
||||
|
||||
case 1:
|
||||
$mes = str_replace('%email%',$_POST['email'],$AVE_Template->get_config_vars('MAILER_SUBSCRIBED'));
|
||||
$AVE_Template->assign('hide_sub',true);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
$mes = str_replace('%email%',$_POST['email'],$AVE_Template->get_config_vars('MAILER_SUBSCRIBE_EXIST'));
|
||||
$AVE_Template->assign('hide_sub',true);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'unsubscribe':
|
||||
$result = $mailer->mailerUnsubscribe();
|
||||
switch ($result)
|
||||
{
|
||||
case 0:
|
||||
$mes = str_replace('%email%',$_POST['email'],$AVE_Template->get_config_vars('MAILER_DEL_NO')); break;
|
||||
case 1:
|
||||
$mes = str_replace('%email%',$_POST['email'],$AVE_Template->get_config_vars('MAILER_DELETED')); break;
|
||||
}
|
||||
$AVE_Template->assign('hide_unsub',true);
|
||||
break;
|
||||
}
|
||||
$AVE_Template->assign('message', $mes);
|
||||
$AVE_Template->assign('action', $_POST['action']);
|
||||
$AVE_Template->assign('list_id', $list_id);
|
||||
$AVE_Template->display($mailer->tpl_dir . 'public_form.tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* Внешнее обращение
|
||||
*/
|
||||
if (!defined('ACP') && $_REQUEST['module'] == 'mailer')
|
||||
{
|
||||
global $AVE_DB;
|
||||
switch ($_REQUEST['action'])
|
||||
{
|
||||
case 'show':
|
||||
$mail = $AVE_DB->Query("
|
||||
SELECT body, appeal, type
|
||||
FROM " . PREFIX . "_module_mailer_mails
|
||||
WHERE id = " . $_REQUEST['id']
|
||||
)->FetchRow();
|
||||
$body = str_replace(
|
||||
array('%NAME%' ,'%SHOW%'),
|
||||
array($mail->appeal ,'#'),
|
||||
$mail->body);
|
||||
echo ($mail -> type == 'text') ? '<pre>'.$body.'</pre>' : $body;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Админка
|
||||
*/
|
||||
if (defined('ACP') && $_REQUEST['mod'] == 'mailer')
|
||||
{
|
||||
include_once(BASE_DIR . '/modules/mailer/class.mailer.php');
|
||||
$mailer = new mailer;
|
||||
$mailer->tpl_dir = BASE_DIR . '/modules/mailer/templates/';
|
||||
|
||||
$lang_file = BASE_DIR . '/modules/mailer/lang/' . $_SESSION['admin_language'] . '.txt';
|
||||
$AVE_Template->config_load($lang_file, 'admin');
|
||||
|
||||
switch ($_REQUEST['moduleaction'])
|
||||
{
|
||||
// Вывод списка рассылок
|
||||
case '':
|
||||
case '1':
|
||||
$mailer->mailerShowMails();
|
||||
break;
|
||||
|
||||
// Загрузка вложения из отправленной рассылки
|
||||
case 'getfile':
|
||||
if (file_exists($_REQUEST['file']))
|
||||
{
|
||||
if ($_REQUEST['check']) exit('1');
|
||||
else $mailer->_mailerGetFile($_REQUEST['file']);
|
||||
}
|
||||
exit;
|
||||
|
||||
// Вывод списка рассылок
|
||||
case 'editmail':
|
||||
include_once(BASE_DIR . '/class/class.user.php');
|
||||
$AVE_User = new AVE_User;
|
||||
$mailer->mailerEditMail();
|
||||
break;
|
||||
|
||||
case 'savemail':
|
||||
include_once(BASE_DIR . '/class/class.user.php');
|
||||
$AVE_User = new AVE_User;
|
||||
$mailer->mailerSaveMail($_REQUEST['id'],$_REQUEST['act']);
|
||||
break;
|
||||
|
||||
case 'countmail':
|
||||
$mailer->mailerCountMail($_REQUEST['id']);
|
||||
break;
|
||||
|
||||
case 'testsend':
|
||||
$emails = $mailer->mailerTestSend($_REQUEST['id'],$_REQUEST['emails']);
|
||||
echo implode(', ',$emails);
|
||||
exit;
|
||||
|
||||
case 'sendmail':
|
||||
$mailer->mailerSendMail();
|
||||
break;
|
||||
|
||||
case 'showlists':
|
||||
$mailer->mailerShowLists();
|
||||
break;
|
||||
|
||||
case 'editlist':
|
||||
$mailer->mailerEditList();
|
||||
break;
|
||||
|
||||
case 'savelist':
|
||||
$mailer->mailerSaveList();
|
||||
break;
|
||||
|
||||
case 'multiadd':
|
||||
$mailer->mailerMultiAdd();
|
||||
break;
|
||||
|
||||
case 'multisave':
|
||||
$mailer->mailerMultiSave();
|
||||
break;
|
||||
|
||||
case 'delreceiver':
|
||||
$mailer->_mailerDelReceiver($_REQUEST['rec_id']);
|
||||
break;
|
||||
|
||||
case 'checkemail':
|
||||
echo $mailer->_mailerCheckEmail(trim($_REQUEST['email']),(int)trim($_REQUEST['list_id']));
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
101
sql.php
Normal file
101
sql.php
Normal file
@ -0,0 +1,101 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* AVE.cms - Модуль Внутренней Рассылки
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module_mailer
|
||||
* @author Arcanum, val005
|
||||
* @since 2.01
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
/**
|
||||
* mySQL-запросы для установки, обновления и удаления модуля
|
||||
*/
|
||||
|
||||
$module_sql_install = array();
|
||||
$module_sql_deinstall = array();
|
||||
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_mailer_mails";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_mailer_lists";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_mailer_receivers";
|
||||
|
||||
$module_sql_install[] = "CREATE TABLE CPPREFIX_module_mailer_mails (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
author_id int(10) unsigned NOT NULL,
|
||||
date int(10) unsigned default NULL,
|
||||
from_name varchar(255) NOT NULL default '',
|
||||
from_email varchar(255) NOT NULL default '',
|
||||
from_copy enum('0','1') NOT NULL default '0',
|
||||
to_groups text NOT NULL default '',
|
||||
to_lists text NOT NULL default '',
|
||||
to_add text NOT NULL default '',
|
||||
subject varchar(255) NOT NULL default '',
|
||||
type varchar(255) NOT NULL default '',
|
||||
appeal varchar(255) NOT NULL default '',
|
||||
body longtext NOT NULL default '',
|
||||
attach text NOT NULL default '',
|
||||
saveattach enum('0','1') NOT NULL default '1',
|
||||
timing varchar(255) NOT NULL default '',
|
||||
sent enum('0','1') NOT NULL default '0',
|
||||
done longtext NOT NULL default '',
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||||
|
||||
$module_sql_install[] = "CREATE TABLE CPPREFIX_module_mailer_lists (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
title varchar(255) NOT NULL default '',
|
||||
descr longtext NOT NULL default '',
|
||||
author_id int(10) unsigned NOT NULL,
|
||||
date int(10) unsigned default NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||||
|
||||
$module_sql_install[] = "CREATE TABLE CPPREFIX_module_mailer_receivers (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
list_id int(10) unsigned NOT NULL,
|
||||
status enum('0','1','2') NOT NULL default '1',
|
||||
email varchar(255) NOT NULL default '',
|
||||
lastname varchar(255) NOT NULL default '',
|
||||
firstname varchar(255) NOT NULL default '',
|
||||
middlename varchar(255) NOT NULL default '',
|
||||
comments text NOT NULL default '',
|
||||
date int(10) unsigned default NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||||
|
||||
// Обновление модуля
|
||||
$module_sql_update[] = "
|
||||
UPDATE
|
||||
`CPPREFIX_module`
|
||||
SET
|
||||
ModuleAveTag = '" . $modul['ModuleAveTag'] . "',
|
||||
ModulePHPTag = '" . $modul['ModulePHPTag'] . "',
|
||||
ModuleVersion = '" . $modul['ModuleVersion'] . "'
|
||||
WHERE
|
||||
ModuleSysName = '" . $modul['ModuleSysName'] . "'
|
||||
LIMIT 1;
|
||||
";
|
||||
|
||||
$module_sql_update[] = "
|
||||
RENAME TABLE
|
||||
`CPPREFIX_modul_mailer_mails`
|
||||
TO
|
||||
`CPPREFIX_module_mailer_mails`
|
||||
";
|
||||
|
||||
$module_sql_update[] = "
|
||||
RENAME TABLE
|
||||
`CPPREFIX_modul_mailer_lists`
|
||||
TO
|
||||
`CPPREFIX_module_mailer_lists`
|
||||
";
|
||||
|
||||
$module_sql_update[] = "
|
||||
RENAME TABLE
|
||||
`CPPREFIX_modul_mailer_receivers`
|
||||
TO
|
||||
`CPPREFIX_module_mailer_receivers`
|
||||
";
|
||||
?>
|
136
templates/admin_count_mail.tpl
Normal file
136
templates/admin_count_mail.tpl
Normal file
@ -0,0 +1,136 @@
|
||||
<div class="title" style="margin-top:25px">
|
||||
<h5>{#MAILER_COUNT_TITLE#} '{$count_mail.title}'</h5>
|
||||
</div>
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_LISTS_HEAD#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="34" />
|
||||
<col width="150" />
|
||||
<col width="1" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td align="center"><div align="center"><a href="javascript:void(0);" class="help rightDir icon_sprite ico_info" title="{#MAILER_COUNT_INFO#}"></a></div></td>
|
||||
<td>{#MAILER_LIST_HEAD#}</td>
|
||||
<td>{#MAILER_REC_EMAIL#}</td>
|
||||
<td>{#MAILER_REC_LASTN#}</td>
|
||||
<td>{#MAILER_REC_FIRSTN#}</td>
|
||||
<td>{#MAILER_REC_COMMENTS#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$count_mail.lists key=title item=list}
|
||||
{foreach from=$list item=rec}
|
||||
<tr class="{if $rec->s}red{/if}">
|
||||
<td>{if $rec->s}<a class="help rightDir icon_sprite ico_info" href="javascript:void(0);" title="{if $rec->status == 0}{#MAILER_REC_UNCHECKED#}{elseif $rec->status == 2}{#MAILER_REC_REFUSED#}{else}{#MAILER_COUNT_ER_REPEAT#}{/if}"></a>{/if}</td>
|
||||
<td>{$title|escape}</td>
|
||||
<td><a href="mailto:{$rec->email|escape}" target="_blank">{$rec->email}</a></td>
|
||||
<td>{$rec->lastname|escape}</td>
|
||||
<td>{$rec->firstname|escape}</td>
|
||||
<td>{$rec->comments|escape}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{if !$count_mail.lists}
|
||||
<div class="rowElem">
|
||||
<ul class="messages">
|
||||
<li class="highlight yellow">{#MAILER_COUNT_NOLISTS#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_GROUPS#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="34" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td align="center"><div align="center"><a href="javascript:void(0);" class="help rightDir icon_sprite ico_info" title="{#MAILER_COUNT_INFO#}"></a></div></td>
|
||||
<td>{#MAILER_GROUP#}</td>
|
||||
<td>{#MAILER_REC_EMAIL#}</td>
|
||||
<td>{#MAILER_LOGIN#}</td>
|
||||
<td>{#MAILER_REC_LASTN#}</td>
|
||||
<td>{#MAILER_REC_FIRSTN#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$count_mail.groups key=title item=group}
|
||||
{foreach from=$group item=rec}
|
||||
<tr{if $rec->s} class="red"{/if}>
|
||||
<td>{if $rec->s}<a class="help rightDir icon_sprite ico_info" href="javascript:void(0);" title="{#MAILER_COUNT_ER_REPEAT#}"></a>{/if}</td>
|
||||
<td>{$title|escape}</td>
|
||||
<td><a href="mailto:{$rec->email|escape}" target="_blank">{$rec->email}</a></td>
|
||||
<td>{$rec->user_name|escape}</td>
|
||||
<td>{$rec->lastname|escape}</td>
|
||||
<td>{$rec->firstname|escape}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{if !$count_mail.groups}
|
||||
<div class="rowElem">
|
||||
<ul class="messages">
|
||||
<li class="highlight yellow">{#MAILER_COUNT_NOGROUPS#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_MAILS_REC_ADD#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="34" />
|
||||
<col />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td align="center"><div align="center"><a href="javascript:void(0);" class="help rightDir icon_sprite ico_info" title="{#MAILER_COUNT_INFO#}"></a></div></td>
|
||||
<td>{#MAILER_REC_EMAIL#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$count_mail.add item=rec}
|
||||
<tr{if $rec.s} class="red"{/if}>
|
||||
<td>{if $rec.s}<a class="help rightDir icon_sprite ico_info" href="javascript:void(0);" title="{if $rec.s == 1}{#MAILER_COUNT_ER_REPEAT#}{elseif $rec.s == 2}{#MAILER_ER_EMAIL_SYN#}{/if}"></a>{/if}</td>
|
||||
<td><a {if $rec.s == 2}style="text-decoration:line-through"{/if} href="mailto:{$rec.email|escape}" target="_blank">{$rec.email}</a>{if $rec.from} ({#MAILER_MAILS_FROM#}){/if}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{if !$count_mail.add}
|
||||
<div class="rowElem">
|
||||
<ul class="messages">
|
||||
<li class="highlight yellow">{#MAILER_COUNT_NOADD#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_COUNT_SUM#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<tr class="noborder">
|
||||
<td width="250">{#MAILER_COUNT_ALL#}<br /><small>{#MAILER_COUNT_ALL_INFO#}</small></td>
|
||||
<td>
|
||||
<div class="pr12">
|
||||
{$count_mail.number}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
276
templates/admin_edit_list.tpl
Normal file
276
templates/admin_edit_list.tpl
Normal file
@ -0,0 +1,276 @@
|
||||
<div class="title">
|
||||
<h5>{if !$smarty.request.id}{#MAILER_LISTS_ADD_TITLE#}{else}{#MAILER_LISTS_EDIT_TITLE#}{/if}</h5>
|
||||
</div>
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#MAILER_LISTS_EDIT_INFO#}
|
||||
</div>
|
||||
</div>
|
||||
<div class="breadCrumbHolder module">
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB">
|
||||
<a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}">{#MAILER_MODULE_NAME#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=showlists&cp={$sess}">{#MAILER_MANAGE_LISTS#}</a>
|
||||
</li>
|
||||
<li>{if !$smarty.request.id}{#MAILER_LISTS_ADD_TITLE#}{else}{#MAILER_LISTS_EDIT_TITLE#}{/if}</li>
|
||||
<li><strong class="code">{if !$smarty.request.id}{#MAILER_LISTS_CREATE_T#}{else}{$list->title|escape}{/if}</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<form action="index.php?do=modules&action=modedit&mod=mailer&moduleaction=savelist&id={$smarty.request.id}&return=1&cp={$sess}" method="post" class="mainForm" enctype="multipart/form-data">
|
||||
<div class="widget first">
|
||||
<div class="head{if $smarty.request.id != ''} closed{/if}">
|
||||
<h5 class="iFrames">{#MAILER_LISTS_SET_COM#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic" id="list_com_set">
|
||||
<tr class="noborder">
|
||||
<td width="250">{#MAILER_LISTS_TITLE#}</td>
|
||||
<td><div class="pr12">
|
||||
<input id="list_title" class="mousetrap" type="text" value="{$list->title|escape}" name="title" placeholder="{#MAILER_LISTS_TITLE#}" style="width:250px;" />
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="250">{#MAILER_LISTS_DESCR#}</td>
|
||||
<td><div class="pr12">
|
||||
<textarea class="mousetrap" name="descr" style="width:300px;height:50px" placeholder="{#MAILER_LISTS_DESCR_INFO#}">{$list->descr}</textarea>
|
||||
</div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input type="submit" class="basicBtn" value="{if !$smarty.request.id}{#MAILER_ADD_BTN#} {else}{#MAILER_EDIT_BTN#}{/if}" formaction="index.php?do=modules&action=modedit&mod=mailer&moduleaction=savelist&id={$smarty.request.id}&cp={$sess}" />
|
||||
|
||||
<input type="submit" class="blackBtn" value="{if !$smarty.request.id}{#MAILER_ADD_CONT_BTN#} {else}{#MAILER_EDIT_CONT_BTN#}{/if}" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $page_nav}
|
||||
<div class="pagination" style="margin-top:26px;">
|
||||
<ul class="pages">
|
||||
{$page_nav}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="widget first" id="receivers_list">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_LISTS_SET_REC#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="34" />
|
||||
<col width="34" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col />
|
||||
<col width="20" />
|
||||
<col width="20" />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td></td>
|
||||
<td align="center"><div align="center"><a href="javascript:void(0);" class="help rightDir icon_sprite ico_info" title="{#MAILER_REC_STATUS_I#}"></a></div></td>
|
||||
<td>{#MAILER_REC_EMAIL#}</td>
|
||||
<td>{#MAILER_REC_LASTN#}</td>
|
||||
<td>{#MAILER_REC_FIRSTN#}</td>
|
||||
<td>{#MAILER_REC_MIDN#}</td>
|
||||
<td>{#MAILER_REC_COMMENTS#}</td>
|
||||
<td colspan="2">{#MAILER_ACTIONS#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="receivers_list_body">
|
||||
<tr id="input_row_0">
|
||||
<td></td>
|
||||
<td><input type="checkbox" class="mousetrap status" value="1" name="new[0][status]" checked="checked"/></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][email]" placeholder="{#MAILER_REC_EMAIL#}" style="width:90%" onchange="if($(this).val()) checkemail($(this).val());" /></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][lastn]" placeholder="{#MAILER_REC_LASTN#}" style="width:90%" /></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][firstn]" placeholder="{#MAILER_REC_FIRSTN#}" style="width:90%" /></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][midn]" placeholder="{#MAILER_REC_MIDN#}" style="width:90%" /></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][comments]" placeholder="{#MAILER_REC_COMMENTS#}" style="width:95%" /></td>
|
||||
<td colspan="2" align="center">
|
||||
<input onclick="input_addrow($(this));" type="button" class="topleftDir basicBtn addrow_btn" value="+" style="padding:2px 6px;" title="{#MAILER_INPUT_ADD_ROW#}" />
|
||||
<a class="icon_sprite ico_delete" style="cursor:pointer;display:none" onClick="$(this).parent().parent().remove();"></a></td>
|
||||
</tr>
|
||||
{foreach from=$receivers item=rec}
|
||||
<tr id="rec_{$rec->id}">
|
||||
<td><a class="rightDir icon_sprite ico_info help" href="javascript:void(0);" title="{#MAILER_REC_DATE_ADD#} {$rec->date|date_format:$TIME_FORMAT|pretty_date}"></a></td>
|
||||
<td>
|
||||
<input type="hidden" name="status[{$rec->id}]" value="{if $rec->status=="2"}2{else}0{/if}"/>
|
||||
<input type="checkbox" class="toprightDir" name="status[{$rec->id}]" value="1" {if $rec->status=="1"}checked="checked"{elseif $rec->status=="2"} disabled="disabled" title="{#MAILER_REC_REFUSED#}"{/if}/></td>
|
||||
<td><a href="mailto:{$rec->email|escape}" target="_blank">{$rec->email}</a></td>
|
||||
<td class="lastn">{$rec->lastname|escape}</td>
|
||||
<td class="firstn">{$rec->firstname|escape}</td>
|
||||
<td class="midn">{$rec->middlename|escape}</td>
|
||||
<td class="comments">{$rec->comments|escape}</td>
|
||||
<td align="center"><a id="rec_btn_{$rec->id}" class="topleftDir icon_sprite ico_edit" style="cursor:pointer" onclick="edit_string({$rec->id});" title="{#MAILER_ACTIONS_EDIT#}"></a></td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_delete" onClick="del_receiver({$rec->id},'{$rec->email|escape}')" title="{#MAILER_ACTIONS_DEL#}" style="cursor:pointer"></a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{if !$receivers}
|
||||
<div class="rowElem">
|
||||
<ul class="messages">
|
||||
<li class="highlight yellow">{#MAILER_REC_NOITEMS#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{if $page_nav}
|
||||
<div class="pagination" style="margin-top:26px;">
|
||||
<ul class="pages">
|
||||
{$page_nav}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="widget first">
|
||||
<div class="head closed">
|
||||
<h5 class="iFrames">{#MAILER_LISTS_IMPORT#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<tr class="noborder">
|
||||
<td width="250">{#MAILER_LISTS_IMPORT_T#}<br /><small>{#MAILER_LISTS_IMPORT_T_I#}</small></td>
|
||||
<td>
|
||||
<div class="pr12">
|
||||
<textarea class="mousetrap" name="import" style="width:100%; height:200px;" ></textarea>
|
||||
</div>
|
||||
<div class="pr12" style="margin-top:10px;">
|
||||
<label style="float:left;padding-left:0;">{#MAILER_LISTS_IMPORT_T_1#}</label><input class="mousetrap" type="text" autocomplete="off" name="import_delim_1" style="width:30px;float:left;text-align:center;" value="{if $smarty.session.mailer.list_import_delim_1}{$smarty.session.mailer.list_import_delim_1|stripslashes}{else};{/if}" />
|
||||
<label style="float:left">{#MAILER_LISTS_IMPORT_T_2#}</label><input class="mousetrap" type="text" autocomplete="off" name="import_delim_2" style="width:30px;float:left;text-align:center;" value="{if $smarty.session.mailer.list_import_delim_2}{$smarty.session.mailer.list_import_delim_2|stripslashes}{else},{/if}" />
|
||||
</div>
|
||||
<div class="pr12" style="clear:both;">
|
||||
<small>{#MAILER_LISTS_IMPORT_T_H#}</small>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="250">{#MAILER_LISTS_IMPORT_F#}<br /><small>{#MAILER_LISTS_IMPORT_F_I#}</small></td>
|
||||
<td>
|
||||
<div class="pr12">
|
||||
<input type="file" name="import_file" class="fileInput" />
|
||||
</div>
|
||||
<div class="pr12" style="margin-top:10px;">
|
||||
<label style="float:left;padding-left:0">{#MAILER_LISTS_IMPORT_F_D#}</label><input class="mousetrap" type="text" autocomplete="off" name="import_file_delim" style="width:30px;float:left;text-align:center;" value="{if $smarty.session.mailer.list_import_delim_csv}{$smarty.session.mailer.list_import_delim_csv|stripslashes}{else};{/if}" />
|
||||
</div>
|
||||
<div class="pr12" style="clear:both;">
|
||||
<small>{#MAILER_LISTS_IMPORT_F_H#}</small>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input type="submit" class="basicBtn" value="{if !$smarty.request.id}{#MAILER_ADD_BTN#} {else}{#MAILER_EDIT_BTN#}{/if}" formaction="index.php?do=modules&action=modedit&mod=mailer&moduleaction=savelist&id={$smarty.request.id}&cp={$sess}" />
|
||||
|
||||
<input type="submit" class="blackBtn" value="{if !$smarty.request.id}{#MAILER_ADD_CONT_BTN#} {else}{#MAILER_EDIT_CONT_BTN#}{/if}" />
|
||||
<input type="hidden" value="{$smarty.request.page}" name="page"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script language="javascript">
|
||||
$(document).ready(function() {ldelim}
|
||||
Mousetrap.bind(['ctrl+s', 'meta+s'], function(e) {ldelim}
|
||||
if (e.preventDefault) {ldelim}
|
||||
e.preventDefault();
|
||||
{rdelim}
|
||||
else {ldelim}
|
||||
// internet explorer
|
||||
e.returnValue = false;
|
||||
{rdelim}
|
||||
$("form").submit();
|
||||
return false;
|
||||
{rdelim});
|
||||
input_new = 0;
|
||||
|
||||
$("form").submit(function() {ldelim}
|
||||
if (!$("#list_title").val()) {ldelim}
|
||||
jAlert('{#MAILER_LISTS_NOTITLE#}','{#MAILER_SAVING#}',function(){ldelim}$("#list_com_set").show();$("#list_title").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
|
||||
function edit_string(id){ldelim}
|
||||
fields = {ldelim}0:"lastn",1:"firstn",2:"midn",3:"comments"{rdelim}
|
||||
for(var f in fields) {ldelim}
|
||||
field = fields[f];
|
||||
value = $("#rec_"+id+" td."+field).text();
|
||||
$("#rec_"+id+" td."+field).empty();
|
||||
$("[name=new\\[0\\]\\["+field+"\\]]").clone().attr("value",value).attr("name","edit["+id+"]["+field+"]").appendTo("#rec_"+id+" td."+field);
|
||||
{rdelim}
|
||||
$("#rec_btn_"+id).removeAttr("onclick").removeClass("ico_edit").attr("title","{#MAILER_ACTIONS_HOWSAVE#}").addClass("ico_edit_no");
|
||||
{rdelim}
|
||||
|
||||
function input_addrow(object){ldelim}
|
||||
id = object.parent().parent().attr("id");
|
||||
var tpl = /input_row_([0-9]*)/ig;
|
||||
var num_old = Number(tpl.exec(id)[1]);
|
||||
var num_new = num_old+1;
|
||||
$("#input_row_"+num_old).clone().attr("id","input_row_"+num_new).prependTo("#receivers_list_body");
|
||||
$("#input_row_"+num_old+" .addrow_btn").hide();
|
||||
$("#input_row_"+num_old+" .ico_delete").show();
|
||||
$("#input_row_"+num_new+" input").not(".addrow_btn, .status").removeAttr("value");
|
||||
$("#input_row_"+num_new).find("input").each(function(){ldelim}
|
||||
var tpl = /new\[[0-9]*\]\[(.*)\]/ig;
|
||||
var namepart = tpl.exec($(this).attr("name"))[1];
|
||||
$(this).attr("name","new["+num_new+"]["+namepart+"]");
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
|
||||
function checkemail(email){ldelim}
|
||||
$.ajax({ldelim}
|
||||
beforeSend:
|
||||
function(){ldelim}
|
||||
$.alerts._overlay('show');
|
||||
{rdelim},
|
||||
url: 'index.php',
|
||||
data: ({ldelim}
|
||||
'do': 'modules',
|
||||
action: 'modedit',
|
||||
mod: 'mailer',
|
||||
moduleaction: 'checkemail',
|
||||
list_id: '{$smarty.request.id}',
|
||||
email: email,
|
||||
cp: '{$sess}'
|
||||
{rdelim}),
|
||||
timeout:3000,
|
||||
success:
|
||||
function(data){ldelim}
|
||||
$.alerts._overlay('hide');
|
||||
switch (Number(data)) {ldelim}
|
||||
case 0:
|
||||
$.jGrowl("{#MAILER_ER_EMAIL_SYN#}"); break;
|
||||
case 1:
|
||||
$.jGrowl("{#MAILER_REC_EMAIL_OK#}"); break;
|
||||
case 2:
|
||||
$.jGrowl("{#MAILER_REC_EMAIL_NO#}"); break;
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim};
|
||||
|
||||
function del_receiver(rec_id,rec_email) {ldelim}
|
||||
jConfirm('{#MAILER_REC_DEL#} '+rec_email+'?','{#MAILER_DELETING#}',function(r) {ldelim}
|
||||
if(r) {ldelim}
|
||||
$.ajax({ldelim}
|
||||
url: 'index.php?do=modules&action=modedit&mod=mailer&cp=6c8fgl38te5rgloor09u1dglv1',
|
||||
data: ({ldelim}moduleaction:'delreceiver', rec_id:rec_id{rdelim}),
|
||||
success: function(data) {ldelim}
|
||||
$.jGrowl('{#MAILER_REC_DELETED#}');
|
||||
$("#rec_"+rec_id).hide();
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
</script>
|
428
templates/admin_edit_mail.tpl
Normal file
428
templates/admin_edit_mail.tpl
Normal file
@ -0,0 +1,428 @@
|
||||
<div class="title">
|
||||
<h5>{if !$smarty.request.id}{#MAILER_MAILS_ADD_TITLE#}{else}{#MAILER_MAILS_EDIT_TITLE#}{/if}</h5>
|
||||
</div>
|
||||
{*<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#MAILER_MAILS_ADD_INFO#}
|
||||
</div>
|
||||
</div>*}
|
||||
<div class="breadCrumbHolder module">
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB">
|
||||
<a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}">{#MAILER_MODULE_NAME#}</a>
|
||||
</li>
|
||||
<li>{if !$smarty.request.id}{#MAILER_MAILS_ADD_TITLE#}{else}{#MAILER_MAILS_EDIT_TITLE#}{/if}</li>
|
||||
<li><strong class="code">{if !$smarty.request.id}{#MAILER_MAILS_NEW_TITLE#}{else}{$mail->subject}{/if}</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<form action="index.php?do=modules&action=modedit&mod=mailer&moduleaction=savemail&act=go&id={$smarty.request.id}&cp={$sess}" method="post" enctype="multipart/form-data" class="mainForm" id="mail_form">
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_MAILS_HEAD_MAIL#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="250">
|
||||
<tr class="noborder">
|
||||
<td>{#MAILER_MAILS_SUBJECT#}</td>
|
||||
<td><div class="pr12">
|
||||
<input class="mousetrap" name="subject" type="text" id="subject" style="width:300px" value="{$mail->subject}" />
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_FORMAT#}</td>
|
||||
<td><div class="pr12">
|
||||
<input type="radio" name="type" value="html" {if $mail->type!='text'}checked="checked"{/if}/>
|
||||
<label>HTML</label>
|
||||
<input id="radio_text" type="radio" name="type" value="text" {if $mail->type=='text'}checked="checked"{/if}/>
|
||||
<label>{#MAILER_MAILS_TEXT#}</label>
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_TEXT#}<br /><small>{#MAILER_MAILS_TEXT_I#}</small></td>
|
||||
<td>
|
||||
<div class="pr12" id="html">
|
||||
<textarea class="mousetrap" name="body" id="codemirror" style="width:100%;height:300px">{$mail->body}</textarea>
|
||||
</div>
|
||||
<div class="pr12" id="text">
|
||||
<textarea class="mousetrap" name="body" style="width:100%;height:300px">{$mail->body}</textarea>
|
||||
</div>
|
||||
<div class="pr12" style="margin-top:4px;">
|
||||
<a style="float:left; margin:6px 3px 0;" class="icon_sprite ico_list" target="_blank" href="/index.php?module=mailer&action=show&id={$mail->id}&onlycontent=1"></a>
|
||||
<strong><a {if !$smarty.request.id}onClick="jAlert('{#MAILER_MAILS_SHOW_ALERT#}','{#MAILER_SHOWING#}');return false;"{/if} style="float:left; padding:4px 0" target="_blank" href="/index.php?module=mailer&action=show&id={$smarty.request.id}&onlycontent=1">{#MAILER_MAILS_SHOW#} »</a></strong>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_APPEAL#}<br /><small>{#MAILER_MAILS_APPEAL_I#}</small></td>
|
||||
<td><div class="pr12" id="ed1">
|
||||
<input class="mousetrap" type="text" name="appeal" value="{$mail->appeal}" style="width:300px" />
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_ATTACH#}<br /><small>{#MAILER_MAILS_ATTACH_I#}</small></td>
|
||||
<td id="attach_td">
|
||||
<div style="clear:both;margin:4px 0;">
|
||||
<input name="attach[]" type="file" class="fileInput multi" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_SAVEATTACH#}</td>
|
||||
<td><div class="pr12">
|
||||
<input type="radio" name="saveattach" value="1" {if $mail->saveattach}checked="checked"{/if} />
|
||||
<label>{#MAILER_YES#}</label>
|
||||
<input type="radio" name="saveattach" value="0" {if !$mail->saveattach}checked="checked"{/if} />
|
||||
<label>{#MAILER_NO#}</label>
|
||||
</div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input onclick="save_func(false);" class="basicBtn" type="button" value="{#MAILER_MAILS_SAVE_BTN#}" />
|
||||
|
||||
<input class="blackBtn SaveEdit" type="button" value="{#MAILER_MAILS_SAVE_BTN_C#}" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_MAILS_HEAD_SET#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="250">
|
||||
<tr class="noborder">
|
||||
<td>{#MAILER_MAILS_FROM_NAME#}</td>
|
||||
<td><div class="pr12">
|
||||
<input class="mousetrap" name="from_name" type="text" id="from_name" value="{$mail->from_name}" style="width:300px" />
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_FROM_EMAIL#}</td>
|
||||
<td><div class="pr12">
|
||||
<input class="mousetrap" name="from_email" type="text" id="from_email" value="{$mail->from_email}" style="width:300px" onchange="if($(this).val()) checkemail($(this).val());" />
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_FROM_COPY#}</td>
|
||||
<td><div class="pr12">
|
||||
<input class="mousetrap" id="from_copy" name="from_copy" type="checkbox" value="1"{if $mail->from_copy} checked{/if} />
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_RECIEVERS#}: {#MAILER_MAILS_REC_GROUPS#} "{$mail->site_name}"<br />
|
||||
<small>{#MAILER_MAILS_CTRL#}</small></td>
|
||||
<td><div class="pr12">
|
||||
<select class="mousetrap" id="groups" name="to_groups[]" size="{if $mail->usergroups|@count < 8}{$mail->usergroups|@count}{else}8{/if}" multiple="multiple" style="min-width:310px">
|
||||
{foreach from=$mail->usergroups item=usergroup}
|
||||
<option value="{$usergroup->user_group}" {if $usergroup->user_group|in_array:$mail->to_groups} selected="selected"{/if}>{$usergroup->user_group_name|escape}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_RECIEVERS#}: {#MAILER_MAILS_REC_LISTS#}<br />
|
||||
<small>{#MAILER_MAILS_CTRL#}</small></td>
|
||||
<td><div class="pr12">
|
||||
<select class="mousetrap" id="lists" name="to_lists[]" size="{if $mail->lists|@count < 8}{$mail->lists|@count}{else}8{/if}" multiple="multiple" style="min-width:310px">
|
||||
{foreach from=$mail->lists item=title key=id}
|
||||
<option value="{$id}" {if $id|in_array:$mail->to_lists} selected="selected"{/if}>{$title|escape}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_REC_ADD#}<br /><small>{#MAILER_MAILS_REC_ADD_I#}</small></td>
|
||||
<td><div class="pr12">
|
||||
<textarea class="mousetrap" name="to_add" id="to_add" style="width:300px; height:50px" onchange="if($(this).val()) checkemail($(this).val());">{$mail->to_add}</textarea>
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_FINAL_REC#}</td>
|
||||
<td><div class="pr12">
|
||||
<input type="button" class="greenBtn" onclick="countMail();" value="{#MAILER_MAILS_MAKE_FIN#}"/> ({#MAILER_MAILS_FINAL_TXT#})
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MAILS_TIMING#}</td>
|
||||
<td><div class="pr12">
|
||||
<select name="timing" id="timing">
|
||||
<option value="" {if $mail->timing==''}selected=selected{/if}>{#MAILER_MAILS_TIM_ALL#}</option>
|
||||
<option value="100" {if $mail->timing=='100'}selected=selected{/if}>{#MAILER_MAILS_TIM_100#}</option>
|
||||
<option value="200" {if $mail->timing=='200'}selected=selected{/if}>{#MAILER_MAILS_TIM_200#}</option>
|
||||
<option value="300" {if $mail->timing=='300'}selected=selected{/if}>{#MAILER_MAILS_TIM_300#}</option>
|
||||
</select>
|
||||
</div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input onclick="save_func(false);" class="basicBtn" type="button" value="{#MAILER_MAILS_SAVE_BTN#}" />
|
||||
|
||||
<input class="blackBtn SaveEdit" type="button" value="{#MAILER_MAILS_SAVE_BTN_C#}" />
|
||||
|
||||
<input type="button" onclick="test();" class="greenBtn" value="{#MAILER_MAILS_TEST_BTN#}" />
|
||||
|
||||
<input type="button" onclick="presend();" id="butt_send" class="redBtn" value="{#MAILER_MAILS_SEND_BTN#}" /><span id="send_stop" style="display:none"> {#MAILER_MAILS_STOP#}</span>
|
||||
<div id="progressbar" style="display:none;clear:both;margin-top:10px;"></div>
|
||||
<div id="delay" class="highlight yellow" style="display:none;margin-top:10px;">{#MAILER_MAILS_DELAY#}</div>
|
||||
<div id="sent_ok" class="highlight yellow" style="{if !$mail->sent}display:none;{/if}margin-top:10px;">{if $mail->sent}{$mail->date|date_format:$TIME_FORMAT|pretty_date} {/if}{#MAILER_SENT_OK_TEXT#}
|
||||
<strong><a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}">» {#MAILER_SENT_OK_LINK#}</a></strong></div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
{if $mail->sent} $(':input').attr('disabled','disabled');{/if}
|
||||
|
||||
function test() {ldelim}
|
||||
if (full_check(false)) {ldelim}
|
||||
jPrompt('{#MAILER_MAILS_SEND_TEST#}','{$test_email}','{#MAILER_SENDING_TEST#}',function(emails){ldelim}
|
||||
if(!emails) return false;
|
||||
$("#mail_form").ajaxSubmit({ldelim}
|
||||
url: 'index.php?do=modules&action=modedit&mod=mailer&moduleaction=testsend&id={$smarty.request.id}&cp={$sess}',
|
||||
data: ({ldelim}'emails': emails{rdelim}),
|
||||
beforeSubmit: function() {ldelim}$.alerts._overlay('show');{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$.alerts._overlay('hide');
|
||||
$.jGrowl('{#MAILER_MAILS_TEST_OK#} '+data);
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
|
||||
function presend() {ldelim}
|
||||
if (full_check(true)) {ldelim}
|
||||
jConfirm('{#MAILER_MAILS_SEND_Q#}','{#MAILER_SENDING#}',function(b){ldelim}
|
||||
if (b){ldelim}
|
||||
$("#mail_form").ajaxSubmit({ldelim}
|
||||
url: 'index.php?do=modules&action=modedit&mod=mailer&moduleaction=savemail&id={$smarty.request.id}&cp={$sess}',
|
||||
data: ({ldelim}act:'send'{rdelim}),
|
||||
beforeSubmit: function() {ldelim}
|
||||
$("#progressbar").show().progressbar({ldelim}value: 0{rdelim});
|
||||
$('#send_stop').fadeIn();
|
||||
$.alerts._overlay('show');
|
||||
{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
$(':input').attr('disabled','disabled');
|
||||
mail_id = Number(data);
|
||||
send();
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
|
||||
function send() {ldelim}
|
||||
if(delay) {ldelim}
|
||||
$('#delay').fadeOut();
|
||||
$.alerts._overlay('show');
|
||||
delay = false;
|
||||
{rdelim}
|
||||
$("#mail_form").ajaxSubmit({ldelim}
|
||||
url: 'index.php?do=modules&action=modedit&mod=mailer&moduleaction=sendmail&id={$smarty.request.id}&cp={$sess}',
|
||||
data: ({ldelim}mail_id: mail_id{rdelim}),
|
||||
success: function(data) {ldelim}
|
||||
if (data == 'finish') {ldelim}
|
||||
$.alerts._overlay('hide');
|
||||
$.jGrowl("{#MAILER_SENT_OK#}");
|
||||
$("#sent_ok").show();
|
||||
location.reload();
|
||||
{rdelim}
|
||||
else if (data == 'pause') {ldelim}
|
||||
// считаем время + час
|
||||
var current = new Date();
|
||||
var hour = current.getTime() + 3600000;
|
||||
var d = new Date(hour);
|
||||
var month = d.getMonth()+1;
|
||||
var date_str = d.getDate()+'.'+month+'.'+d.getFullYear()+' '+d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
|
||||
// вставляем в сообщение и показываем
|
||||
$('#delay_time').text(date_str);
|
||||
$('#delay').fadeIn();
|
||||
$.alerts._overlay('hide');
|
||||
delay = true;
|
||||
send_delay = setTimeout(function(){ldelim}send(){rdelim},3600000);
|
||||
{rdelim}
|
||||
else {ldelim}
|
||||
$("#progressbar").progressbar({ldelim}value: Number(data){rdelim});
|
||||
send();
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
|
||||
var save_form = {ldelim}
|
||||
url: 'index.php?do=modules&action=modedit&mod=mailer&moduleaction=savemail&id={$smarty.request.id}&cp={$sess}',
|
||||
beforeSubmit: function() {ldelim}$.alerts._overlay('show');{rdelim},
|
||||
data: ({ldelim}act:'ajaxsave'{rdelim}),
|
||||
success: function(data) {ldelim}
|
||||
$.jGrowl('{#MAILS_SAVED#}');
|
||||
{if !$smarty.request.id} location.href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&id="+data+"&cp={$sess}";
|
||||
{else}$.alerts._overlay('hide');{/if}
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
|
||||
function save_func(ajax) {ldelim}
|
||||
if (!$("#subject").val()) {ldelim}
|
||||
jAlert('{#MAILER_ERR_SUBJECT#}','{#MAILER_SENDING#}',
|
||||
function() {ldelim}$("#subject").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
|
||||
if ($(".fileInput").val()) {ldelim}
|
||||
jAlert('{#MAILER_ALERT_ATTACH#}','{#MAILER_SAVING#}',
|
||||
function() {ldelim}
|
||||
if(!ajax) $("#mail_form").submit();
|
||||
else {ldelim}
|
||||
$("#mail_form").ajaxSubmit(save_form);
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
else {ldelim}
|
||||
if(!ajax) $("#mail_form").submit();
|
||||
else $("#mail_form").ajaxSubmit(save_form);
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
|
||||
{if !$mail->sent}
|
||||
{literal}
|
||||
$(document).ready(function() {
|
||||
delay = false;
|
||||
|
||||
Mousetrap.bind(['ctrl+s', 'meta+s'], function(e) {
|
||||
if (e.preventDefault) e.preventDefault();
|
||||
else e.returnValue = false;
|
||||
save_func(true);
|
||||
return false;
|
||||
});
|
||||
|
||||
Mousetrap.bind(['ctrl+g', 'meta+g'], function(e) {
|
||||
if (e.preventDefault) e.preventDefault();
|
||||
else e.returnValue = false;
|
||||
if(delay) {
|
||||
clearInterval(send_delay);
|
||||
send();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
Mousetrap.bind(['ctrl+q', 'meta+q'], function(e) {
|
||||
if (e.preventDefault) e.preventDefault();
|
||||
else e.returnValue = false;
|
||||
location.reload();
|
||||
return false;
|
||||
});
|
||||
|
||||
$(".SaveEdit").click(function(e) {
|
||||
if (e.preventDefault) e.preventDefault();
|
||||
else e.returnValue = false;
|
||||
save_func(true);
|
||||
return false;
|
||||
});
|
||||
});
|
||||
{/literal}
|
||||
{/if}
|
||||
|
||||
{literal}
|
||||
$(document).ready(function() {
|
||||
|
||||
var active_type = $("input[name=type]:checked").attr("value");
|
||||
if (active_type == 'text') {
|
||||
$("#html").hide(); $("#text").show(); $("#html textarea").attr("name","");
|
||||
}
|
||||
else {
|
||||
$("#text").hide(); $("#html").show(); $("#text textarea").attr("name","");
|
||||
}
|
||||
|
||||
$("input[name=type]").click(function() {
|
||||
if($(this).attr("value")=='text') {
|
||||
$("#html").hide();
|
||||
$("#html textarea").attr("name","");
|
||||
$("#text").show();
|
||||
$("#text textarea").attr("name","body");
|
||||
}
|
||||
else {
|
||||
$("#text").hide();
|
||||
$("#text textarea").attr("name","");
|
||||
$("#html").show();
|
||||
$("#html textarea").attr("name","body");
|
||||
}
|
||||
});
|
||||
});
|
||||
{/literal}
|
||||
|
||||
function countMail() {ldelim}
|
||||
window.open('index.php?do=modules&action=modedit&mod=mailer&moduleaction=countmail&id={$smarty.request.id}&cp={$sess}&pop=1','mailer_countmail_{$smarty.request.id}','top=0,left=0,width=900,height=600,scrollbars=1,resizable=1');
|
||||
{rdelim}
|
||||
|
||||
function checkemail(in_email){ldelim}
|
||||
emails = in_email.split(";");
|
||||
for (var key in emails) {ldelim}
|
||||
var email = emails[key];
|
||||
$.ajax({ldelim}
|
||||
beforeSend: function() {ldelim}
|
||||
$.alerts._overlay('show');
|
||||
{rdelim},
|
||||
url: 'index.php?do=modules&action=modedit&mod=mailer&cp={$sess}',
|
||||
data: ({ldelim}moduleaction:'checkemail', 'email':emails[key]{rdelim}),
|
||||
success: function(data) {ldelim}
|
||||
$.alerts._overlay('hide');
|
||||
switch (Number(data)) {ldelim}
|
||||
case 0:
|
||||
$.jGrowl("{#MAILER_ER_EMAIL_SYN#}");
|
||||
break;
|
||||
case 1: case 2:
|
||||
$.jGrowl("{#MAILER_EMAIL_OK#}");
|
||||
break;
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
|
||||
function full_check(rec) {ldelim}
|
||||
if (!$("#from_name").val()) {ldelim}
|
||||
jAlert('{#MAILER_ERR_FROM_NAME#}','{#MAILER_SENDING#}',
|
||||
function() {ldelim}$("#from_name").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
|
||||
if (!$("#from_email").val()) {ldelim}
|
||||
jAlert('{#MAILER_ERR_FROM_EMAIL#}','{#MAILER_SENDING#}',
|
||||
function() {ldelim}$("#from_email").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
|
||||
if (rec && !$("#groups").val() && !$("#lists").val() && !$("#to_add").val()) {ldelim}
|
||||
jAlert('{#MAILER_ERR_TO#}','{#MAILER_SENDING#}',
|
||||
function() {ldelim}$("#groups").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
|
||||
if (!$("#subject").val()) {ldelim}
|
||||
jAlert('{#MAILER_ERR_SUBJECT#}','{#MAILER_SENDING#}',
|
||||
function() {ldelim}$("#subject").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
|
||||
if (!$("textarea[name=body]").val()) {ldelim}
|
||||
jAlert('{#MAILER_ERR_BODY#}','{#MAILER_SENDING#}',
|
||||
function() {ldelim}$("textarea[name=body]").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
|
||||
return true;
|
||||
{rdelim}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
{include file="$codemirror_connect"}
|
||||
{include file="$codemirror_editor" conn_id="rsc" textarea_id='codemirror' height=500}
|
164
templates/admin_multi_add.tpl
Normal file
164
templates/admin_multi_add.tpl
Normal file
@ -0,0 +1,164 @@
|
||||
<div class="title">
|
||||
<h5>{#MAILER_MULTI_TITLE#}</h5>
|
||||
</div>
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#MAILER_MULTI_INFO#}
|
||||
</div>
|
||||
</div>
|
||||
<div class="breadCrumbHolder module">
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB">
|
||||
<a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}">{#MAILER_MODULE_NAME#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=showlists&cp={$sess}">{#MAILER_MANAGE_LISTS#}</a>
|
||||
</li>
|
||||
<li><strong class="code">{#MAILER_MULTI_TITLE#}</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<form action="index.php?do=modules&action=modedit&mod=mailer&moduleaction=multisave&return=1&cp={$sess}" method="post" class="mainForm">
|
||||
<div class="widget first">
|
||||
<div class="head{if $smarty.request.id != ''} closed{/if}">
|
||||
<h5 class="iFrames">{#MAILER_MULTI_TITLE2#}</h5>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<tr class="noborder">
|
||||
<td width="250">{#MAILER_MULTI_LISTS#}<br />
|
||||
<small>{#MAILER_MAILS_CTRL#}</small></td>
|
||||
<td><div class="pr12">
|
||||
<select class="mousetrap" name="lists[]" size="{if $lists|@count < 16}{$lists|@count}{else}16{/if}" multiple="multiple" style="width:100%" id="lists">
|
||||
{foreach from=$lists item=list}
|
||||
<option value="{$list->id}" {if $list->id|in_array:$smarty.session.mailer.multi_add} selected="selected"{/if}>{$list->title|escape}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="34" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col />
|
||||
<col width="20" />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td align="center"><div align="center"><a href="javascript:void(0);" style="cursor:help;" class="rightDir icon_sprite ico_info" title="{#MAILER_REC_STATUS_I2#}"></a></div></td>
|
||||
<td>{#MAILER_REC_EMAIL#}</td>
|
||||
<td>{#MAILER_REC_LASTN#}</td>
|
||||
<td>{#MAILER_REC_FIRSTN#}</td>
|
||||
<td>{#MAILER_REC_MIDN#}</td>
|
||||
<td>{#MAILER_REC_COMMENTS#}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="receivers_list_body">
|
||||
<tr id="input_row_0">
|
||||
<td><input type="checkbox" value="1" name="new[0][status]" checked="checked"/></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][email]" placeholder="{#MAILER_REC_EMAIL#}" style="width:90%" onchange="if($(this).val()) checkemail($(this).val());" /></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][lastn]" placeholder="{#MAILER_REC_LASTN#}" style="width:90%" /></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][firstn]" placeholder="{#MAILER_REC_FIRSTN#}" style="width:90%" /></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][midn]" placeholder="{#MAILER_REC_MIDN#}" style="width:90%" /></td>
|
||||
<td><input autocomplete="off" class="mousetrap" type="text" name="new[0][comments]" placeholder="{#MAILER_REC_COMMENTS#}" style="width:95%" /></td>
|
||||
<td align="center">
|
||||
<input onclick="input_addrow($(this));" type="button" class="topleftDir basicBtn addrow_btn" value="+" style="padding:2px 6px;" title="{#MAILER_INPUT_ADD_ROW#}" />
|
||||
<a class="icon_sprite ico_delete" style="cursor:pointer;display:none" onClick="$(this).parent().parent().remove();"></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="rowElem">
|
||||
<input class="basicBtn" type="submit" formaction="index.php?do=modules&action=modedit&mod=mailer&moduleaction=multisave&cp={$sess}" value="{#MAILER_MULTI_BTN#}" />
|
||||
<input class="blackBtn" type="submit" value="{#MAILER_MULTI_BTN_CTRL#}" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {ldelim}
|
||||
Mousetrap.bind(['ctrl+s', 'meta+s'], function(e) {ldelim}
|
||||
if (e.preventDefault) {ldelim}
|
||||
e.preventDefault();
|
||||
{rdelim}
|
||||
else {ldelim}
|
||||
// internet explorer
|
||||
e.returnValue = false;
|
||||
{rdelim}
|
||||
$("form").submit();
|
||||
return false;
|
||||
{rdelim});
|
||||
input_new = 0;
|
||||
|
||||
$("form").submit(function() {ldelim}
|
||||
if (!$("#lists").val()) {ldelim}
|
||||
jAlert('{#MAILER_MULTI_NOLIST#}','{#MAILER_ADDING#}',function(){ldelim}$("#lists").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
|
||||
function edit_string(id){ldelim}
|
||||
fields = {ldelim}0:"lastn",1:"firstn",2:"midn",3:"comments"{rdelim}
|
||||
for(var f in fields) {ldelim}
|
||||
field = fields[f];
|
||||
value = $("#rec_"+id+" td."+field).text();
|
||||
$("#rec_"+id+" td."+field).empty();
|
||||
$("[name=new\\[0\\]\\["+field+"\\]]").clone().attr("value",value).attr("name","edit["+id+"]["+field+"]").appendTo("#rec_"+id+" td."+field);
|
||||
{rdelim}
|
||||
$("#rec_btn_"+id).removeAttr("onclick").removeClass("ico_edit").attr("title","{#MAILER_ACTIONS_HOWSAVE#}").addClass("ico_edit_no");
|
||||
{rdelim}
|
||||
|
||||
function input_addrow(object){ldelim}
|
||||
id = object.parent().parent().attr("id");
|
||||
var tpl = /input_row_([0-9]*)/ig;
|
||||
var num_old = Number(tpl.exec(id)[1]);
|
||||
var num_new = num_old+1;
|
||||
$("#input_row_"+num_old).clone().attr("id","input_row_"+num_new).prependTo("#receivers_list_body");
|
||||
$("#input_row_"+num_old+" .addrow_btn").hide();
|
||||
$("#input_row_"+num_old+" .ico_delete").show();
|
||||
$("#input_row_"+num_new+" input").not(".addrow_btn").removeAttr("value");
|
||||
$("#input_row_"+num_new).find("input").each(function(){ldelim}
|
||||
var tpl = /new\[[0-9]*\]\[(.*)\]/ig;
|
||||
var namepart = tpl.exec($(this).attr("name"))[1];
|
||||
$(this).attr("name","new["+num_new+"]["+namepart+"]");
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
|
||||
function checkemail(email){ldelim}
|
||||
$.ajax({ldelim}
|
||||
beforeSend:
|
||||
function(){ldelim}
|
||||
$.alerts._overlay('show');
|
||||
{rdelim},
|
||||
url: 'index.php',
|
||||
data: ({ldelim}
|
||||
'do': 'modules',
|
||||
action: 'modedit',
|
||||
mod: 'mailer',
|
||||
moduleaction: 'checkemail',
|
||||
email: email,
|
||||
cp: '{$sess}'
|
||||
{rdelim}),
|
||||
timeout:3000,
|
||||
success:
|
||||
function(data){ldelim}
|
||||
$.alerts._overlay('hide');
|
||||
switch (Number(data)) {ldelim}
|
||||
case 0:
|
||||
$.jGrowl("{#MAILER_ER_EMAIL_SYN#}"); break;
|
||||
case 1:
|
||||
$.jGrowl("{#MAILER_MULTI_EMAIL_OK#}"); break;
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim};
|
||||
</script>
|
95
templates/admin_show_lists.tpl
Normal file
95
templates/admin_show_lists.tpl
Normal file
@ -0,0 +1,95 @@
|
||||
<div class="title">
|
||||
<h5>{#MAILER_MANAGE_LISTS#}</h5>
|
||||
</div>
|
||||
{*<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#MAILER_LISTS_INFO#}
|
||||
</div>
|
||||
</div>*}
|
||||
<div class="breadCrumbHolder module">
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB">
|
||||
<a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}">{#MAILER_MODULE_NAME#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<strong class="code">{#MAILER_MANAGE_LISTS#}</strong>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_LISTS_HEAD#}</h5>
|
||||
<div class="num">
|
||||
<a class="greenNum" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&cp={$sess}">{#MAILER_NEW_LIST#}</a>
|
||||
</div>
|
||||
<div class="num">
|
||||
<a class="basicNum" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}">{#MAILER_MANAGE_MAILS#}</a>
|
||||
</div>
|
||||
<div class="num">
|
||||
<a class="redNum botDir" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=multiadd&cp={$sess}" title="{#MAILER_MULTI_HINT#}">{#MAILER_MULTI_TITLE#}</a>
|
||||
</div>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="30" />
|
||||
<col width="250" />
|
||||
<col />
|
||||
<col width="150" />
|
||||
<col width="150" />
|
||||
<col width="40" />
|
||||
<col width="20" />
|
||||
<col width="20" />
|
||||
<col width="20" />
|
||||
<col width="20" />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td align="center">id</td>
|
||||
<td>{#MAILER_LISTS_TITLE#}</td>
|
||||
<td>{#MAILER_LISTS_DESCR#}</td>
|
||||
<td>{#MAILER_LISTS_AUTHOR#}</td>
|
||||
<td>{#MAILER_LISTS_DATE#}</td>
|
||||
<td class="topleftDir" title="{#MAILER_LISTS_NUMBER_F#}">{#MAILER_LISTS_NUMBER#}</td>
|
||||
<td colspan="4">{#MAILER_ACTIONS#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$lists item=list}
|
||||
<tr>
|
||||
<td align="center">{$list->id}</td>
|
||||
<td><strong>
|
||||
<a class="toprightDir" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&id={$list->id}&cp={$sess}" title="{#MAILER_LISTS_A_EDIT#}">{$list->title}</a>
|
||||
</strong></td>
|
||||
<td>
|
||||
<div style="overflow:auto; max-height:80px">{$list->descr}</div></td>
|
||||
<td align="center"><a class="topDir" title="{#MAILER_SHOW_AUTHOR_TIT#}" href="index.php?do=user&action=edit&id={$list->author_id}&cp={$sess}">{$list->author_name|escape}</a></td>
|
||||
<td align="center">{$list->date|date_format:$TIME_FORMAT|pretty_date}</td>
|
||||
<td align="center" class="topDir" title="{#MAILER_LISTS_NUMBER_F#}">{$list->number}</td>
|
||||
<td align="center"><a class="topDir icon_sprite ico_edit" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&id={$list->id}&cp={$sess}" title="{#MAILER_ACTIONS_EDIT#}"></a></td>
|
||||
<td align="center"><a class="topDir icon_sprite ico_recylce ConfirmDelete" dir="{#MAILER_WIPING#}" name="{#MAILER_ACTIONS_WIPE_2#} '{$list->title}'?" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&wipe=1&id={$list->id}&cp={$sess}&page={$smarty.request.page}" title="{#MAILER_ACTIONS_WIPE#}"></a></td>
|
||||
<td align="center"><a class="topDir icon_sprite ico_delete ConfirmDelete" dir="{#MAILER_DELETING#}" name="{#MAILER_ACTIONS_DEL#} '{$list->title}'?" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&delete=1&id={$list->id}&cp={$sess}&page={$smarty.request.page}" title="{#MAILER_ACTIONS_DEL#}"></a></td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_install" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&download=1&id={$list->id}&cp={$sess}" title="{#MAILER_ACTIONS_DOWNLOAD#}"></a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{if !$lists}
|
||||
<div class="rowElem">
|
||||
<ul class="messages">
|
||||
<li class="highlight yellow">{#MAILER_LISTS_NOITEMS#}</li>
|
||||
</ul>
|
||||
</div>{/if}
|
||||
</div>
|
||||
{if $page_nav}
|
||||
<div class="pagination">
|
||||
<ul class="pages">
|
||||
{$page_nav}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
313
templates/admin_show_mails.tpl
Normal file
313
templates/admin_show_mails.tpl
Normal file
@ -0,0 +1,313 @@
|
||||
<div class="title">
|
||||
<h5>{#MAILER_MANAGE_MAILS#}</h5>
|
||||
</div>
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#MAILER_MODULE_INFO#}
|
||||
</div>
|
||||
</div>
|
||||
<div class="breadCrumbHolder module">
|
||||
<div class="breadCrumb module">
|
||||
<ul>
|
||||
<li class="firstB">
|
||||
<a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index.php?do=modules&cp={$sess}">{#MODULES_SUB_TITLE#}</a>
|
||||
</li>
|
||||
<li> {#MAILER_MODULE_NAME#} </li>
|
||||
<li>
|
||||
<strong class="code">{#MAILER_MANAGE_MAILS#}</strong>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget first">
|
||||
<div class="head">
|
||||
<h5 class="iFrames">{#MAILER_MAILS_TPL_H#}</h5>
|
||||
<div class="num">
|
||||
<a class="basicNum" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&cp={$sess}">{#MAILER_NEW_MAIL#}</a>
|
||||
</div>
|
||||
<div class="num">
|
||||
<a class="greenNum" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=showlists&cp={$sess}">{#MAILER_MANAGE_LISTS#}</a>
|
||||
</div>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="30" />
|
||||
<col />
|
||||
<col width="100" />
|
||||
<col width="90" />
|
||||
<col width="140" />
|
||||
<col width="200" />
|
||||
<col width="1" />
|
||||
<col width="1" />
|
||||
<col width="1" />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td>Id</td>
|
||||
<td>{#MAILER_MAILS_SUBJECT#}</td>
|
||||
<td>{#MAILER_MAILS_AUTHOR#}</td>
|
||||
<td>{#MAILER_MAILS_CREATED#}</td>
|
||||
<td>{#MAILER_MAILS_FROM#}</td>
|
||||
<td>{#MAILER_MAILS_RECIEVERS#}</td>
|
||||
<td colspan="3">{#MAILER_ACTIONS#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$mails.tpl item=mail}
|
||||
<tr>
|
||||
<td>{$mail->id}</td>
|
||||
<td><a class="toprightDir" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&id={$mail->id}&cp={$sess}" title="{#MAILER_ACTIONS_EDIT#}"><strong>{$mail->subject|escape}</strong></a></td>
|
||||
<td><a class="topDir" title="{#MAILER_SHOW_AUTHOR_TIT#}" href="index.php?do=user&action=edit&id={$list->author_id}&cp={$sess}">{$mail->author_name}</a></td>
|
||||
<td align="right" class="date_text dgrey">{$mail->date|date_format:$TIME_FORMAT|pretty_date}</td>
|
||||
<td><a class="topDir" href="mailto:{$mail->from_email|escape}" target="_blank" title="{#MAILER_WRITE_EMAIL#}">{$mail->from_email|escape}</a><br/>{$mail->from_name|escape}</td>
|
||||
<td style="padding:0 0 0 10px">
|
||||
<div style="overflow:auto;max-height:60px">
|
||||
{if $mail->from_copy}{#MAILER_MAILS_FROM#}
|
||||
{if $mail->to_groups || $mail->to_lists || $mail->to_add}<hr />{/if}
|
||||
{/if}
|
||||
{foreach from=$mail->to_groups item=group name=foreach}
|
||||
{$group->user_group_name|escape}{if !$smarty.foreach.foreach.last}, {/if}{/foreach}
|
||||
{if $mail->to_groups && ($mail->to_lists || $mail->to_add)}<hr />{/if}
|
||||
{foreach from=$mail->to_lists item=list name=foreach}
|
||||
<a target="_blank" class="topDir" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&id={$list->id}&cp={$sess}" title="{#MAILER_LOOK_LIST#} '{$list->title|escape}'">{$list->title|escape}</a>{if !$smarty.foreach.foreach.last}, {/if}{/foreach}
|
||||
{if $mail->to_lists && $mail->to_add}<hr />{/if}
|
||||
{foreach from=$mail->to_add item=add name=foreach}
|
||||
<a class="topDir" href="mailto:{$add|escape}" target="_blank" title="{#MAILER_WRITE_EMAIL#}">{$add|escape}</a>{if !$smarty.foreach.foreach.last}, {/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
</td>
|
||||
<td align="center"><a class="topDir icon_sprite ico_edit" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&id={$mail->id}&cp={$sess}" title="{#MAILER_ACTIONS_EDIT#}"></a></td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_list" target="_blank" href="/index.php?module=mailer&action=show&id={$mail->id}&onlycontent=1" title="{#MAILER_ACTIONS_SHOW#}"></a></td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_delete ConfirmDelete" dir="{#MAILER_DELETING#}" name="{#MAILER_MAILS_DEL_Q#} '{$mail->subject}'?" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=savemail&id={$mail->id}&act=delete&cp={$sess}&page={$smarty.request.page}" title="{#MAILER_ACTIONS_DEL#}"></a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{if !$mails.tpl}
|
||||
<div class="rowElem">
|
||||
<ul class="messages">
|
||||
<li class="highlight yellow">{#MAILER_MAILS_TPL_NO#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="widget first">
|
||||
<ul class="tabs">
|
||||
<li{if !$search} class="activeTab"{/if}><a href="#tab1">{#MAILER_MAILS_HEAD#}</a></li>
|
||||
<li{if $search} class="activeTab"{/if}><a href="#tab2">{#MAILER_MAILS_SEARCH#}</a></li>
|
||||
</ul>
|
||||
<div class="tab_container">
|
||||
<div id="tab1" class="tab_content" style="display:{if $search}none{else}block{/if}">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="30" />
|
||||
<col />
|
||||
<col width="100" />
|
||||
<col width="90" />
|
||||
<col width="140" />
|
||||
<col width="200" />
|
||||
<col width="140" />
|
||||
<col width="1" />
|
||||
<col width="1" />
|
||||
<col width="1" />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td>Id</td>
|
||||
<td>{#MAILER_MAILS_SUBJECT#}</td>
|
||||
<td>{#MAILER_MAILS_AUTHOR#}</td>
|
||||
<td>{#MAILER_MAILS_DATE#}</td>
|
||||
<td>{#MAILER_MAILS_FROM#}</td>
|
||||
<td>{#MAILER_MAILS_RECIEVERS#}</td>
|
||||
<td>{#MAILER_MAILS_ATTACHS#}</td>
|
||||
<td colspan="3">{#MAILER_ACTIONS#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$mails.sent item=mail}
|
||||
<tr>
|
||||
<td>{$mail->id}</td>
|
||||
<td><a class="toprightDir" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&id={$mail->id}&cp={$sess}" title="{#MAILER_LOOK#}"><strong>{$mail->subject|escape}</strong></a></td>
|
||||
<td><a class="topDir" title="{#MAILER_SHOW_AUTHOR_TIT#}" href="index.php?do=user&action=edit&id={$list->author_id}&cp={$sess}">{$mail->author_name|escape}</a></td>
|
||||
<td align="right" class="date_text dgrey">{$mail->date|date_format:$TIME_FORMAT|pretty_date}</td>
|
||||
<td><a href="mailto:{$mail->from_email|escape}" target="_blank">{$mail->from_email|escape}</a><br/>{$mail->from_name|escape}</td>
|
||||
<td style="padding:0 0 0 10px">
|
||||
<div style="overflow:auto;max-height:60px">
|
||||
{if $mail->from_copy}{#MAILER_MAILS_FROM#}
|
||||
{if $mail->to_groups || $mail->to_lists || $mail->to_add}<hr />{/if}
|
||||
{/if}
|
||||
{foreach from=$mail->to_groups item=group name=foreach}
|
||||
{$group->user_group_name|escape}{if !$smarty.foreach.foreach.last}, {/if}{/foreach}
|
||||
{if $mail->to_groups && ($mail->to_lists || $mail->to_add)}<hr />{/if}
|
||||
{foreach from=$mail->to_lists item=list name=foreach}
|
||||
<a target="_blank" class="topDir" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&id={$list->id}&cp={$sess}" title="{#MAILER_LOOK_LIST#} '{$list->title|escape}'">{$list->title|escape}</a>{if !$smarty.foreach.foreach.last}, {/if}{/foreach}
|
||||
{if $mail->to_lists && $mail->to_add}<hr />{/if}
|
||||
{foreach from=$mail->to_add item=add name=foreach}
|
||||
<a class="topDir" href="mailto:{$add|escape}" target="_blank" title="{#MAILER_WRITE_EMAIL#}">{$add|escape}</a>{if !$smarty.foreach.foreach.last}, {/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
</td>
|
||||
<td style="padding:0 0 0 10px">
|
||||
<div style="overflow:auto;max-height:60px">
|
||||
{if $mail->saveattach !='1'}
|
||||
{foreach from=$mail->attach item=attachment name=foreach}
|
||||
{$attachment.name}{if !$smarty.foreach.foreach.last},<br />{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{foreach from=$mail->attach item=attachment name=foreach}
|
||||
<a onClick="get_file('{$attachment.path}')" class="pointer">{$attachment.name}</a>{if !$smarty.foreach.foreach.last},<br />{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
</td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_look" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&id={$mail->id}&cp={$sess}" title="{#MAILER_LOOK#}"></a></td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_list" target="_blank" href="/index.php?module=mailer&action=show&id={$mail->id}&onlycontent=1" title="{#MAILER_ACTIONS_SHOW#}"></a></td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_copy" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&copy_id={$mail->id}&cp={$sess}" title="{#MAILER_ACTIONS_COPY#}"></a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{if !$mails.sent}
|
||||
<div class="rowElem">
|
||||
<ul class="messages">
|
||||
<li class="highlight yellow">{#MAILER_MAILS_NOITEMS#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<div id="tab2" class="tab_content" style="display:{if !$search}none{else}block{/if}">
|
||||
<form method="post" action="index.php?do=modules&action=modedit&mod=mailer&moduleaction=1&cp={$sess}" class="mainForm" onSubmit="return check_find();" id="search">
|
||||
<div class="rowElem">
|
||||
<label>{#MAILER_MAILS_FIND#}</label>
|
||||
<div style="float:left;margin-top:10px">
|
||||
<input placeholder="{#MAILER_MAILS_FIND_IN#}" name="search_words" type="text" value="{$search_words}" style="width:400px">
|
||||
<input type="submit" class="basicBtn" value="{#MAILER_MAILS_SEARCH#}" /><br>
|
||||
<input type="checkbox" class="float" name="search[from_email]" value="1"{if !$search || $search.from_email} checked="checked"{/if}><label>{#MAILER_SEARCH_FROM_E#}</label>
|
||||
<input type="checkbox" class="float" name="search[from_name]" value="1"{if !$search || $search.from_name} checked="checked"{/if}><label>{#MAILER_SEARCH_FROM_N#}</label>
|
||||
<input type="checkbox" class="float" name="search[subject]" value="1"{if !$search || $search.subject} checked="checked"{/if}><label>{#MAILER_SEARCH_SUB#}</label>
|
||||
<input type="checkbox" class="float" name="search[body]" value="1"{if !$search || $search.body} checked="checked"{/if}><label>{#MAILER_SEARCH_BODY#}</label>
|
||||
<input type="checkbox" class="float" name="search[done]" value="1"{if !$search || $search.done} checked="checked"{/if}><label>{#MAILER_SEARCH_REC#}</label>
|
||||
</div>
|
||||
<div class="fix"></div>
|
||||
</div>
|
||||
</form>
|
||||
{if $search}
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="30" />
|
||||
<col />
|
||||
<col width="100" />
|
||||
<col width="90" />
|
||||
<col width="140" />
|
||||
<col width="200" />
|
||||
<col width="140" />
|
||||
<col width="1" />
|
||||
<col width="1" />
|
||||
<thead>
|
||||
<tr class="noborder">
|
||||
<td>Id</td>
|
||||
<td>{#MAILER_MAILS_SUBJECT#}</td>
|
||||
<td>{#MAILER_MAILS_AUTHOR#}</td>
|
||||
<td>{#MAILER_MAILS_DATE#}</td>
|
||||
<td>{#MAILER_MAILS_FROM#}</td>
|
||||
<td>{#MAILER_MAILS_RECIEVERS#}</td>
|
||||
<td>{#MAILER_MAILS_ATTACHS#}</td>
|
||||
<td colspan="2">{#MAILER_ACTIONS#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{foreach from=$mails.find item=mail}
|
||||
<tr>
|
||||
<td>{$mail->id}</td>
|
||||
<td><a class="toprightDir" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&id={$mail->id}&cp={$sess}" title="{#MAILER_LOOK#}"><strong>{$mail->subject|escape}</strong></a></td>
|
||||
<td><a class="topDir" title="{#MAILER_SHOW_AUTHOR_TIT#}" href="index.php?do=user&action=edit&id={$list->author_id}&cp={$sess}">{$mail->author_name|escape}</a></td>
|
||||
<td align="right" class="date_text dgrey">{$mail->date|date_format:$TIME_FORMAT|pretty_date}</td>
|
||||
<td><a href="mailto:{$mail->from_email|escape}" target="_blank">{$mail->from_email|escape}</a><br/>{$mail->from_name|escape}</td>
|
||||
<td style="padding:0 0 0 10px">
|
||||
<div style="overflow:auto;max-height:60px">
|
||||
{if $mail->from_copy}{#MAILER_MAILS_FROM#}
|
||||
{if $mail->to_groups || $mail->to_lists || $mail->to_add}<hr />{/if}
|
||||
{/if}
|
||||
{foreach from=$mail->to_groups item=group name=foreach}
|
||||
{$group->user_group_name|escape}{if !$smarty.foreach.foreach.last}, {/if}{/foreach}
|
||||
{if $mail->to_groups && ($mail->to_lists || $mail->to_add)}<hr />{/if}
|
||||
{foreach from=$mail->to_lists item=list name=foreach}
|
||||
<a target="_blank" class="topDir" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editlist&id={$list->id}&cp={$sess}" title="{#MAILER_LOOK_LIST#} '{$list->title|escape}'">{$list->title|escape}</a>{if !$smarty.foreach.foreach.last}, {/if}{/foreach}
|
||||
{if $mail->to_lists && $mail->to_add}<hr />{/if}
|
||||
{foreach from=$mail->to_add item=add name=foreach}
|
||||
<a class="topDir" href="mailto:{$add|escape}" target="_blank" title="{#MAILER_WRITE_EMAIL#}">{$add|escape}</a>{if !$smarty.foreach.foreach.last}, {/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
</td>
|
||||
<td style="padding:0 0 0 10px">
|
||||
<div style="overflow:auto;max-height:60px">
|
||||
{if $mail->saveattach !='1'}
|
||||
{foreach from=$mail->attach item=attachment name=foreach}
|
||||
{$attachment.name}{if !$smarty.foreach.foreach.last},<br />{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{foreach from=$mail->attach item=attachment name=foreach}
|
||||
<a onClick="get_file('{$attachment.path}');" style="cursor:pointer">{$attachment.name}</a>{if !$smarty.foreach.foreach.last},<br />{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
</td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_look" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&id={$mail->id}&cp={$sess}" title="{#MAILER_LOOK#}"></a></td>
|
||||
<td align="center"><a class="topleftDir icon_sprite ico_copy" href="index.php?do=modules&action=modedit&mod=mailer&moduleaction=editmail&copy_id={$mail->id}&cp={$sess}" title="{#MAILER_ACTIONS_COPY#}"></a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{if !$mails.find}
|
||||
<div class="rowElem">
|
||||
<ul class="messages">
|
||||
<li class="highlight yellow">{#MAILER_MAILS_FIND_NO#}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
<div class="fix"></div>
|
||||
</div>
|
||||
{if $page_nav}
|
||||
<div class="pagination">
|
||||
<ul class="pages">
|
||||
{$page_nav}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
<script>
|
||||
function get_file(file) {ldelim}
|
||||
$.ajax({ldelim}
|
||||
url: 'index.php?do=modules&action=modedit&mod=mailer&cp={$sess}',
|
||||
data: ({ldelim}
|
||||
'moduleaction': 'getfile',
|
||||
'file': file,
|
||||
'check': true
|
||||
{rdelim}),
|
||||
beforeSend: function() {ldelim}$.alerts._overlay('show');{rdelim},
|
||||
success: function(data) {ldelim}
|
||||
if (data == '1') {ldelim}
|
||||
document.location.href = "index.php?do=modules&action=modedit&mod=mailer&moduleaction=getfile&file="+file+"&cp={$sess}";
|
||||
$.alerts._overlay('hide');
|
||||
{rdelim}
|
||||
else {ldelim}
|
||||
jAlert(file,'{#MAILER_NOFILE#}');
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim};
|
||||
function check_find() {ldelim}
|
||||
if (!$("input[name=search_words]").val()) {ldelim}
|
||||
jAlert('{#MAILER_ERR_SEACRH_WORDS#}','{#MAILER_SEARCHING#}',
|
||||
function() {ldelim}$("input[name=search_words]").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
|
||||
if (!$("#search input[type=checkbox]:checked").val()) {ldelim}
|
||||
jAlert('{#MAILER_ERR_SEACRH#}','{#MAILER_SEARCHING#}',
|
||||
function() {ldelim}$("#search").focus();{rdelim});
|
||||
return false;
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
</script>
|
4
templates/index.php
Normal file
4
templates/index.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
64
templates/public_form.tpl
Normal file
64
templates/public_form.tpl
Normal file
@ -0,0 +1,64 @@
|
||||
<section id="tabs" style="height:264px">
|
||||
<h2 class="tab_btn">{#MAILER_SUBSCRIBE#}</h2>
|
||||
<div class="tab_lay">
|
||||
{if $action=="subscribe"}
|
||||
<article>
|
||||
{$message}
|
||||
</article><br>
|
||||
{/if}
|
||||
{if !$hide_sub}
|
||||
<form method="post">
|
||||
<table class="mod_table" style="width:auto">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{#MAILER_EMAIL#}*:</td>
|
||||
<td><input type="text" value="{$smarty.post.email|escape}" name="email" style="width:200px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_LNAME#}:</td>
|
||||
<td><input type="text" value="{$smarty.post.lname|escape}" name="lname" style="width:200px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_FNAME#}:</td>
|
||||
<td><input type="text" value="{$smarty.post.fname|escape}" name="fname" style="width:200px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#MAILER_MNAME#}:</td>
|
||||
<td><input type="text" value="{$smarty.post.mname|escape}" name="mname" style="width:200px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="c" colspan="2"><input type="hidden" name="list_id" value="{$list_id}">
|
||||
<input type="hidden" name="action" value="subscribe">
|
||||
<input type="submit" value="{#MAILER_SUBSCRIBE#}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
{/if}
|
||||
</div>
|
||||
<h2 class="tab_btn{if $action=="unsubscribe"} active{/if}">{#MAILER_UNSUBSCRIBE#}</h2>
|
||||
<div class="tab_lay">
|
||||
{if $action=="unsubscribe"}
|
||||
<article>
|
||||
{$message}
|
||||
</article><br>
|
||||
{/if}
|
||||
{if !$hide_unsub}
|
||||
<form method="post">
|
||||
<table class="mod_table" style="width:auto">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{#MAILER_EMAIL#}*:</td>
|
||||
<td><input type="text" value="" name="email" style="width:200px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="c" colspan="2"><input type="hidden" name="list_id" value="{$list_id}">
|
||||
<input type="hidden" name="action" value="unsubscribe">
|
||||
<input type="submit" value="{#MAILER_UNSUBSCRIBE#}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
{/if}
|
||||
</div>
|
||||
</section>
|
1
templates/public_result.tpl
Normal file
1
templates/public_result.tpl
Normal file
@ -0,0 +1 @@
|
||||
{$message}
|
Loading…
x
Reference in New Issue
Block a user