Skip to content
This repository was archived by the owner on Jan 28, 2025. It is now read-only.

Commit cf64931

Browse files
committed
Merge pull request #19 from dle-modules/dev
v1.2
2 parents 26f08ec + 075e3bf commit cf64931

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+356
-10
lines changed

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Исключаем всё (файлы от DLE нам не нужны)
2+
/*
3+
4+
# Кроме самого .gitignore (и как следствие всего, что в нём написано)
5+
!.gitignore
6+
7+
# Кроме папок и файлов модуля
8+
!/engine/modules/uniform/
9+
!/engine/ajax/uniform/
10+
!/templates/Default/uniform/
11+
!/README.md
12+
!/LICENSE
13+
!/CHANGELOG.md

CHANGELOG.md

Lines changed: 26 additions & 0 deletions

README.md

Lines changed: 1 addition & 1 deletion
File renamed without changes.
File renamed without changes.

upload/engine/modules/uniform/cfg.php renamed to engine/modules/uniform/cfg.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
'selectFields' => !empty($selectFields) ? $selectFields : (isset($arConf['selectFields'])) ? $arConf['selectFields'] : false,
2424
'checkboxFields' => !empty($checkboxFields) ? $checkboxFields : (isset($arConf['checkboxFields'])) ? $arConf['checkboxFields'] : false,
2525
'radioFields' => !empty($radioFields) ? $radioFields : (isset($arConf['radioFields'])) ? $arConf['radioFields'] : false,
26-
'version' => '1.0',
27-
'releaseDate' => '10.05.2015',
26+
'sendAsPlain' => !empty($sendAsPlain) ? true : (isset($arConf['sendAsPlain'])) ? true : false,
27+
'sendToAuthor' => !empty($sendToAuthor) ? true : (isset($arConf['sendToAuthor'])) ? true : false,
28+
'version' => '1.2',
29+
'releaseDate' => '09.01.2016',
2830
);
File renamed without changes.

upload/engine/modules/uniform/sendmail.php renamed to engine/modules/uniform/sendmail.php

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@
3535
$mailPost = setConditions($mailPost, 'field', array(), $mailTpl);
3636

3737
foreach ($arSendMail as $tag => $value) {
38-
$value = str_replace(array("\r", "\n"), array('', '<br>'), $value);
38+
if (!$cfg['sendAsPlain']) {
39+
$value = str_replace(array("\r", "\n"), array('', '<br>'), $value);
40+
}
3941
$arTplTags['{' . $tag . '}'] = $value;
4042

4143
if (isset($value) && $value != '') {
@@ -47,15 +49,17 @@
4749
$allMailFields .= '[' . $tag . ']{' . $tag . '}[/' . $tag . '] : ' . $value . '<br>';
4850
}
4951

50-
$mailTpl->set('{send_date}', langdate($config['timestamp_active']));
51-
$mailTpl->copy_template = preg_replace_callback("#\{send_date=(.+?)\}#i", "formdate", $mailTpl->copy_template);
52+
$mailTpl->set('{send_date}', date($config['timestamp_active'], time()));
53+
5254

5355
// Страница, с которой был вызван модуль
5456
$mailTpl->set('{current_page}', $_SERVER['HTTP_REFERER']);
5557

5658
// Определяем заголовок письма
5759
preg_match("'\\[header\\](.*?)\\[\\/header\\]'si", $mailTpl->copy_template, $mailHeader);
58-
$emailHeader = trim($mailHeader[1]);
60+
// Если передано поле header — подставим его в header :)
61+
$emailHeader = (isset($arSendMail['header']) && $arSendMail['header'] != '') ? trim($arSendMail['header']) : trim($mailHeader[1]);
62+
$emailHeader = stripslashes($emailHeader);
5963

6064
// Обрабатываем теги шаблона
6165
$mailTpl->set('', $arTplTags);
@@ -75,14 +79,18 @@
7579

7680

7781
$message = trim($message);
78-
$message = preg_replace(array("'\r'", "'\n'"), '', $message);
82+
if (!$cfg['sendAsPlain']) {
83+
$message = str_replace(array("\r", "\n"), '', $message);
84+
}
85+
$message = stripslashes($message);
7986

8087
// Подключаем класс для отправки почты.
8188
include_once ENGINE_DIR . '/classes/mail.class.php';
82-
$mail = new dle_mail($config, true);
89+
$asHtml = ($cfg['sendAsPlain']) ? false : true;
90+
$mail = new dle_mail($config, $asHtml);
8391

8492
// Определяем параметры отправки письма
85-
if ($config['use_admin_mail']) {
93+
if ($config['use_admin_mail'] && $config['version_id'] < 10.5) {
8694
$mail->from = $config['admin_mail'];
8795
} else {
8896
if ($arSendMail['email'] != '' && in_array('email', $arRequired)) {

upload/engine/modules/uniform/uniform.php renamed to engine/modules/uniform/uniform.php

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,51 @@
9393
$post = $mailPost = $_POST;
9494
unset($post['csrfToken'], $post['formConfig'], $mailPost['csrfToken'], $mailPost['formConfig']);
9595

96+
// Если в посте передано поле newsId, нужно получить информацию из новости
97+
if (isset($post['newsId']) && (int) $post['newsId'] > 0) {
98+
$newsItem = $db->super_query('SELECT p.id, p.autor, p.title, u.name, u.email, u.allow_mail FROM ' . PREFIX . '_post p LEFT JOIN ' . USERPREFIX . '_users u ON (p.autor=u.name) WHERE id = ' . (int) $post['newsId']);
99+
// Если запрос нашёл новость — работаем
100+
if ($newsItem['id'] > 0) {
101+
// Если автор новости разрешил отправлять ему письма и в конфиге есть sendToAuthor — добавим ещё одного получателя
102+
if ($newsItem['allow_mail'] && $cfg['sendToAuthor']) {
103+
$cfg['emails'] .= ',' . $newsItem['email'];
104+
}
105+
106+
// Добавим в массив $_POST данные из новости
107+
foreach ($newsItem as $key => $value) {
108+
if ($key == 'title') {
109+
$value = stripslashes($value);
110+
}
111+
$_POST['news_' . $key] = $value;
112+
}
113+
}
114+
}
115+
116+
echo "<pre class='dle-pre'>";
117+
print_r($member_id);
118+
echo "</pre>";
119+
120+
// Добавляем данные из конфига DLE для возможности использовать в email сообщении
121+
$_POST['site_home_title'] = $config['home_title'];
122+
$_POST['site_http_home_url'] = $config['http_home_url'];
123+
$_POST['site_short_title'] = $config['short_title'];
124+
125+
// Добавляем данные пользователя, заполнившего форму
126+
$_POST['user_group'] = $member_id['user_group'];
127+
if ($member_id['user_group'] == 5) {
128+
$_POST['user_name'] = 'Гость';
129+
$_POST['user_fullname'] = '';
130+
$_POST['user_email'] = '';
131+
$_POST['user_foto'] = '';
132+
$_POST['user_land'] = '';
133+
} else {
134+
$_POST['user_name'] = $member_id['name'];
135+
$_POST['user_fullname'] = $member_id['fullname'];
136+
$_POST['user_email'] = $member_id['email'];
137+
$_POST['user_foto'] = $member_id['foto'];
138+
$_POST['user_land'] = $member_id['land'];
139+
}
140+
96141
// Получаем массив обязательных полей
97142
$arRequired = getArray($cfg['required']);
98143

@@ -214,6 +259,10 @@
214259
$tpl->set('[uf_default_value]', '');
215260
$tpl->set('[/uf_default_value]', '');
216261

262+
// Если пользователь авторизован — подставим его email в поле email.
263+
if ($member_id['user_group'] !== 5) {
264+
$tpl->copy_template = str_replace('{uf_field_email}', $member_id['email'], $tpl->copy_template);
265+
}
217266
$tpl->copy_template = preg_replace("'\\{uf_field_(.*?)\\}'si", '', $tpl->copy_template);
218267
$tpl->copy_template = preg_replace("'\\[uf_error_(.*?)\\](.*?)\\[/uf_error_(.*?)\\]'is", '', $tpl->copy_template);
219268
$tpl->copy_template = preg_replace("'\\[uf_email_error\\](.*?)\\[/uf_email_error\\]'is", '', $tpl->copy_template);
File renamed without changes.

0 commit comments

Comments
 (0)