@@ -1,7 +1,7 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | -require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_before.php'; |
|
4 | -require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php'; |
|
3 | +require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_before.php'; |
|
4 | +require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_after.php'; |
|
5 | 5 | $APPLICATION->SetTitle('Инструкция по созданию бота и настройке модуля'); |
6 | 6 | ?> |
7 | 7 | |
@@ -50,4 +50,4 @@ discard block |
||
50 | 50 | </ol> |
51 | 51 | |
52 | 52 | <?php |
53 | -require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_admin.php'; |
|
53 | +require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_admin.php'; |
@@ -1,25 +1,25 @@ |
||
1 | 1 | <?php |
2 | 2 | $menu = [ |
3 | - [ |
|
4 | - 'parent_menu' => 'global_menu_services', |
|
5 | - 'sort' => 1000, |
|
6 | - 'text' => 'Телеграм', |
|
7 | - 'title' => 'Телеграм', |
|
8 | - 'items_id' => 'menu_references', |
|
9 | - 'icon' => '', |
|
10 | - 'items' => [ |
|
11 | - [ |
|
12 | - 'text' => 'Настройки', |
|
13 | - 'url' => 'telegram_main.php?lang=' . LANGUAGE_ID, |
|
14 | - 'title' => 'Настройки', |
|
15 | - ], |
|
16 | - [ |
|
17 | - 'text' => 'Инструкция', |
|
18 | - 'url' => 'telegram_instruction.php?lang=' . LANGUAGE_ID, |
|
19 | - 'title' => 'Регистрация бота', |
|
20 | - ], |
|
21 | - ], |
|
22 | - ], |
|
3 | + [ |
|
4 | + 'parent_menu' => 'global_menu_services', |
|
5 | + 'sort' => 1000, |
|
6 | + 'text' => 'Телеграм', |
|
7 | + 'title' => 'Телеграм', |
|
8 | + 'items_id' => 'menu_references', |
|
9 | + 'icon' => '', |
|
10 | + 'items' => [ |
|
11 | + [ |
|
12 | + 'text' => 'Настройки', |
|
13 | + 'url' => 'telegram_main.php?lang=' . LANGUAGE_ID, |
|
14 | + 'title' => 'Настройки', |
|
15 | + ], |
|
16 | + [ |
|
17 | + 'text' => 'Инструкция', |
|
18 | + 'url' => 'telegram_instruction.php?lang=' . LANGUAGE_ID, |
|
19 | + 'title' => 'Регистрация бота', |
|
20 | + ], |
|
21 | + ], |
|
22 | + ], |
|
23 | 23 | ]; |
24 | 24 | |
25 | 25 | return $menu; |
@@ -39,8 +39,8 @@ discard block |
||
39 | 39 | </td> |
40 | 40 | <td class="adm-detail-content-cell-r"> |
41 | 41 | <input name="module_on" |
42 | - value="<?=Config::statusModule();?>" |
|
43 | - <?=Config::statusModule() ? 'checked="checked"' : '';?> |
|
42 | + value="<?=Config::statusModule(); ?>" |
|
43 | + <?=Config::statusModule() ? 'checked="checked"' : ''; ?> |
|
44 | 44 | type="checkbox" |
45 | 45 | class="module_on" |
46 | 46 | title=""> |
@@ -53,7 +53,7 @@ discard block |
||
53 | 53 | <td class="adm-detail-content-cell-r"> |
54 | 54 | <input name="token" |
55 | 55 | size="50" |
56 | - value="<?=Config::getToken();?>" |
|
56 | + value="<?=Config::getToken(); ?>" |
|
57 | 57 | type="text" |
58 | 58 | class="token" |
59 | 59 | title=""> |
@@ -66,9 +66,9 @@ discard block |
||
66 | 66 | <td class="adm-detail-content-cell-r"> |
67 | 67 | <select name="mail[]" class="mail" title="" size="<?=count($mailTemplates)?>" multiple> |
68 | 68 | <?php foreach ($mailTemplates as $item) : ?> |
69 | - <option value="<?=$item['EVENT_NAME'];?>" |
|
70 | - <?=in_array($item['EVENT_NAME'], Config::getMail(), true) ? 'selected' : '';?>> |
|
71 | - <?=$item['NAME'];?> |
|
69 | + <option value="<?=$item['EVENT_NAME']; ?>" |
|
70 | + <?=in_array($item['EVENT_NAME'], Config::getMail(), true) ? 'selected' : ''; ?>> |
|
71 | + <?=$item['NAME']; ?> |
|
72 | 72 | </option> |
73 | 73 | <?php endforeach; ?> |
74 | 74 | </select> |
@@ -142,8 +142,8 @@ discard block |
||
142 | 142 | </td> |
143 | 143 | <td class="adm-detail-content-cell-r"> |
144 | 144 | <input name="proxy_on" |
145 | - value="<?=Config::statusProxy();?>" |
|
146 | - <?=Config::statusProxy() ? 'checked="checked"' : '';?> |
|
145 | + value="<?=Config::statusProxy(); ?>" |
|
146 | + <?=Config::statusProxy() ? 'checked="checked"' : ''; ?> |
|
147 | 147 | type="checkbox" |
148 | 148 | class="proxy_on" |
149 | 149 | title=""> |
@@ -156,7 +156,7 @@ discard block |
||
156 | 156 | <td class="adm-detail-content-cell-r"> |
157 | 157 | <input name="proxy_url" |
158 | 158 | size="50" |
159 | - value="<?=Config::proxyData()['url'];?>" |
|
159 | + value="<?=Config::proxyData()['url']; ?>" |
|
160 | 160 | type="text" |
161 | 161 | class="proxy_url" |
162 | 162 | title=""> |
@@ -169,7 +169,7 @@ discard block |
||
169 | 169 | <td class="adm-detail-content-cell-r"> |
170 | 170 | <input name="proxy_port" |
171 | 171 | size="50" |
172 | - value="<?=Config::proxyData()['port'];?>" |
|
172 | + value="<?=Config::proxyData()['port']; ?>" |
|
173 | 173 | type="text" |
174 | 174 | class="proxy_port" |
175 | 175 | title=""> |
@@ -182,7 +182,7 @@ discard block |
||
182 | 182 | <td class="adm-detail-content-cell-r"> |
183 | 183 | <input name="proxy_user" |
184 | 184 | size="50" |
185 | - value="<?=Config::proxyData()['user'];?>" |
|
185 | + value="<?=Config::proxyData()['user']; ?>" |
|
186 | 186 | type="text" |
187 | 187 | class="proxy_user" |
188 | 188 | title=""> |
@@ -195,7 +195,7 @@ discard block |
||
195 | 195 | <td class="adm-detail-content-cell-r"> |
196 | 196 | <input name="proxy_pass" |
197 | 197 | size="50" |
198 | - value="<?=Config::proxyData()['pass'];?>" |
|
198 | + value="<?=Config::proxyData()['pass']; ?>" |
|
199 | 199 | type="text" |
200 | 200 | class="proxy_pass" |
201 | 201 | title=""> |
@@ -1,5 +1,5 @@ |
||
1 | 1 | <?php |
2 | 2 | $arModuleVersion = [ |
3 | - 'VERSION' => '1.0.4', |
|
4 | - 'VERSION_DATE' => '2018-10-14' |
|
3 | + 'VERSION' => '1.0.4', |
|
4 | + 'VERSION_DATE' => '2018-10-14' |
|
5 | 5 | ]; |
@@ -10,137 +10,137 @@ |
||
10 | 10 | */ |
11 | 11 | Class telegram_send extends CModule |
12 | 12 | { |
13 | - const MODULE_ID = 'telegram.send'; |
|
14 | - public $MODULE_ID; |
|
15 | - public $MODULE_VERSION; |
|
16 | - public $MODULE_VERSION_DATE; |
|
17 | - public $MODULE_NAME; |
|
18 | - public $MODULE_DESCRIPTION; |
|
19 | - public $MODULE_GROUP_RIGHTS; |
|
20 | - public $PARTNER_NAME; |
|
21 | - public $PARTNER_URI; |
|
22 | - private $errors; |
|
13 | + const MODULE_ID = 'telegram.send'; |
|
14 | + public $MODULE_ID; |
|
15 | + public $MODULE_VERSION; |
|
16 | + public $MODULE_VERSION_DATE; |
|
17 | + public $MODULE_NAME; |
|
18 | + public $MODULE_DESCRIPTION; |
|
19 | + public $MODULE_GROUP_RIGHTS; |
|
20 | + public $PARTNER_NAME; |
|
21 | + public $PARTNER_URI; |
|
22 | + private $errors; |
|
23 | 23 | |
24 | - /** |
|
25 | - * telegram_send constructor. |
|
26 | - */ |
|
27 | - public function __construct() |
|
28 | - { |
|
29 | - $arModuleVersion = []; |
|
30 | - include __DIR__ . '/version.php'; |
|
31 | - $this->MODULE_NAME = 'Телеграм'; |
|
32 | - $this->MODULE_DESCRIPTION = 'Отправка почтовых сообщений в телеграм'; |
|
33 | - $this->MODULE_ID = 'telegram.send'; |
|
34 | - $this->MODULE_VERSION = $arModuleVersion['VERSION']; |
|
35 | - $this->MODULE_VERSION_DATE = $arModuleVersion['VERSION_DATE']; |
|
36 | - $this->MODULE_GROUP_RIGHTS = 'N'; |
|
37 | - $this->PARTNER_NAME = 'Varrcan'; |
|
38 | - $this->PARTNER_URI = 'https://varrcan.me'; |
|
39 | - } |
|
24 | + /** |
|
25 | + * telegram_send constructor. |
|
26 | + */ |
|
27 | + public function __construct() |
|
28 | + { |
|
29 | + $arModuleVersion = []; |
|
30 | + include __DIR__ . '/version.php'; |
|
31 | + $this->MODULE_NAME = 'Телеграм'; |
|
32 | + $this->MODULE_DESCRIPTION = 'Отправка почтовых сообщений в телеграм'; |
|
33 | + $this->MODULE_ID = 'telegram.send'; |
|
34 | + $this->MODULE_VERSION = $arModuleVersion['VERSION']; |
|
35 | + $this->MODULE_VERSION_DATE = $arModuleVersion['VERSION_DATE']; |
|
36 | + $this->MODULE_GROUP_RIGHTS = 'N'; |
|
37 | + $this->PARTNER_NAME = 'Varrcan'; |
|
38 | + $this->PARTNER_URI = 'https://varrcan.me'; |
|
39 | + } |
|
40 | 40 | |
41 | - /** |
|
42 | - * Действия при установке модуля |
|
43 | - * @return bool|void |
|
44 | - */ |
|
45 | - public function doInstall() |
|
46 | - { |
|
47 | - global $USER; |
|
48 | - if ($USER->IsAdmin()) { |
|
49 | - ModuleManager::registerModule($this->MODULE_ID); |
|
50 | - $this->InstallEvents(); |
|
51 | - $this->InstallFiles(); |
|
52 | - } |
|
53 | - } |
|
41 | + /** |
|
42 | + * Действия при установке модуля |
|
43 | + * @return bool|void |
|
44 | + */ |
|
45 | + public function doInstall() |
|
46 | + { |
|
47 | + global $USER; |
|
48 | + if ($USER->IsAdmin()) { |
|
49 | + ModuleManager::registerModule($this->MODULE_ID); |
|
50 | + $this->InstallEvents(); |
|
51 | + $this->InstallFiles(); |
|
52 | + } |
|
53 | + } |
|
54 | 54 | |
55 | - /** |
|
56 | - * Регистрация событий |
|
57 | - * @return bool|void |
|
58 | - */ |
|
59 | - public function InstallEvents() |
|
60 | - { |
|
61 | - $eventManager = EventManager::getInstance(); |
|
62 | - $eventManager->registerEventHandler( |
|
63 | - 'main', |
|
64 | - 'OnBeforeEventSend', |
|
65 | - $this->MODULE_ID, |
|
66 | - 'Telegram\\Send\\Main', |
|
67 | - 'getEventSend' |
|
68 | - ); |
|
69 | - } |
|
55 | + /** |
|
56 | + * Регистрация событий |
|
57 | + * @return bool|void |
|
58 | + */ |
|
59 | + public function InstallEvents() |
|
60 | + { |
|
61 | + $eventManager = EventManager::getInstance(); |
|
62 | + $eventManager->registerEventHandler( |
|
63 | + 'main', |
|
64 | + 'OnBeforeEventSend', |
|
65 | + $this->MODULE_ID, |
|
66 | + 'Telegram\\Send\\Main', |
|
67 | + 'getEventSend' |
|
68 | + ); |
|
69 | + } |
|
70 | 70 | |
71 | - /** |
|
72 | - * Копирование файлов |
|
73 | - * |
|
74 | - * @param array $arParams |
|
75 | - */ |
|
76 | - public function InstallFiles($arParams = []) |
|
77 | - { |
|
78 | - if (!is_dir($_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/' . self::MODULE_ID) && !mkdir($concurrentDirectory = |
|
79 | - $_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/' . self::MODULE_ID) && !is_dir($concurrentDirectory)) { |
|
80 | - throw new \RuntimeException(sprintf('Directory "%s" was not created', $concurrentDirectory)); |
|
81 | - } |
|
82 | - CopyDirFiles( |
|
83 | - $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . self::MODULE_ID . '/install/admin', |
|
84 | - $_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin', |
|
85 | - true, |
|
86 | - true |
|
87 | - ); |
|
88 | - CopyDirFiles( |
|
89 | - $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . self::MODULE_ID . '/install/js/', |
|
90 | - $_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/', |
|
91 | - true, |
|
92 | - true |
|
93 | - ); |
|
94 | - } |
|
71 | + /** |
|
72 | + * Копирование файлов |
|
73 | + * |
|
74 | + * @param array $arParams |
|
75 | + */ |
|
76 | + public function InstallFiles($arParams = []) |
|
77 | + { |
|
78 | + if (!is_dir($_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/' . self::MODULE_ID) && !mkdir($concurrentDirectory = |
|
79 | + $_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/' . self::MODULE_ID) && !is_dir($concurrentDirectory)) { |
|
80 | + throw new \RuntimeException(sprintf('Directory "%s" was not created', $concurrentDirectory)); |
|
81 | + } |
|
82 | + CopyDirFiles( |
|
83 | + $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . self::MODULE_ID . '/install/admin', |
|
84 | + $_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin', |
|
85 | + true, |
|
86 | + true |
|
87 | + ); |
|
88 | + CopyDirFiles( |
|
89 | + $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . self::MODULE_ID . '/install/js/', |
|
90 | + $_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/', |
|
91 | + true, |
|
92 | + true |
|
93 | + ); |
|
94 | + } |
|
95 | 95 | |
96 | - /** |
|
97 | - * Действия при удалении модуля |
|
98 | - */ |
|
99 | - public function doUninstall() |
|
100 | - { |
|
101 | - $this->UnInstallEvents(); |
|
102 | - $this->UnInstallFiles(); |
|
103 | - $this->UnInstallDB(); |
|
104 | - ModuleManager::unregisterModule($this->MODULE_ID); |
|
105 | - } |
|
96 | + /** |
|
97 | + * Действия при удалении модуля |
|
98 | + */ |
|
99 | + public function doUninstall() |
|
100 | + { |
|
101 | + $this->UnInstallEvents(); |
|
102 | + $this->UnInstallFiles(); |
|
103 | + $this->UnInstallDB(); |
|
104 | + ModuleManager::unregisterModule($this->MODULE_ID); |
|
105 | + } |
|
106 | 106 | |
107 | - /** |
|
108 | - * Удаление событий |
|
109 | - * @return bool|void |
|
110 | - */ |
|
111 | - public function UnInstallEvents() |
|
112 | - { |
|
107 | + /** |
|
108 | + * Удаление событий |
|
109 | + * @return bool|void |
|
110 | + */ |
|
111 | + public function UnInstallEvents() |
|
112 | + { |
|
113 | 113 | |
114 | - $eventManager = EventManager::getInstance(); |
|
115 | - $eventManager->unRegisterEventHandler( |
|
116 | - 'main', |
|
117 | - 'OnBeforeEventSend', |
|
118 | - $this->MODULE_ID, |
|
119 | - 'Telegram\\Send\\Main', |
|
120 | - 'getEventSend' |
|
121 | - ); |
|
122 | - } |
|
114 | + $eventManager = EventManager::getInstance(); |
|
115 | + $eventManager->unRegisterEventHandler( |
|
116 | + 'main', |
|
117 | + 'OnBeforeEventSend', |
|
118 | + $this->MODULE_ID, |
|
119 | + 'Telegram\\Send\\Main', |
|
120 | + 'getEventSend' |
|
121 | + ); |
|
122 | + } |
|
123 | 123 | |
124 | - /** |
|
125 | - * Удаление файлов |
|
126 | - * @return bool|void |
|
127 | - */ |
|
128 | - public function UnInstallFiles() |
|
129 | - { |
|
130 | - DeleteDirFilesEx("/bitrix/admin/telegram_main.php"); |
|
131 | - DeleteDirFilesEx("/bitrix/js/telegram.send/"); |
|
132 | - } |
|
124 | + /** |
|
125 | + * Удаление файлов |
|
126 | + * @return bool|void |
|
127 | + */ |
|
128 | + public function UnInstallFiles() |
|
129 | + { |
|
130 | + DeleteDirFilesEx("/bitrix/admin/telegram_main.php"); |
|
131 | + DeleteDirFilesEx("/bitrix/js/telegram.send/"); |
|
132 | + } |
|
133 | 133 | |
134 | - /** |
|
135 | - * Удаление таблицы настроек |
|
136 | - * |
|
137 | - * @param array $arParams |
|
138 | - * |
|
139 | - * @return bool|void |
|
140 | - * @throws \Bitrix\Main\Db\SqlQueryException |
|
141 | - */ |
|
142 | - public function UnInstallDB($arParams = []) |
|
143 | - { |
|
144 | - Application::getConnection()->query("DELETE FROM b_option WHERE `MODULE_ID`='{$this->MODULE_ID}'"); |
|
145 | - } |
|
134 | + /** |
|
135 | + * Удаление таблицы настроек |
|
136 | + * |
|
137 | + * @param array $arParams |
|
138 | + * |
|
139 | + * @return bool|void |
|
140 | + * @throws \Bitrix\Main\Db\SqlQueryException |
|
141 | + */ |
|
142 | + public function UnInstallDB($arParams = []) |
|
143 | + { |
|
144 | + Application::getConnection()->query("DELETE FROM b_option WHERE `MODULE_ID`='{$this->MODULE_ID}'"); |
|
145 | + } |
|
146 | 146 | } |
@@ -2,12 +2,12 @@ |
||
2 | 2 | defined('B_PROLOG_INCLUDED') and (B_PROLOG_INCLUDED === true) or die(); |
3 | 3 | |
4 | 4 | if (file_exists(__DIR__ . '/reinstalljs')) { |
5 | - CopyDirFiles( |
|
6 | - $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/telegram.send/install/js/', |
|
7 | - $_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/', |
|
8 | - true, |
|
9 | - true |
|
10 | - ); |
|
5 | + CopyDirFiles( |
|
6 | + $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/telegram.send/install/js/', |
|
7 | + $_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/', |
|
8 | + true, |
|
9 | + true |
|
10 | + ); |
|
11 | 11 | |
12 | - unlink(__DIR__ . '/reinstalljs'); |
|
12 | + unlink(__DIR__ . '/reinstalljs'); |
|
13 | 13 | } |
@@ -11,61 +11,61 @@ |
||
11 | 11 | */ |
12 | 12 | class Main |
13 | 13 | { |
14 | - /** |
|
15 | - * Действие после отправки письма |
|
16 | - * |
|
17 | - * @param $arFields |
|
18 | - * @param $arTemplate |
|
19 | - */ |
|
20 | - public static function getEventSend(&$arFields, &$arTemplate) |
|
21 | - { |
|
22 | - if ($arFields && $arTemplate && Config::statusModule() == 1) { |
|
23 | - if (\in_array($arTemplate['EVENT_NAME'], Config::getMail(), true)) { |
|
24 | - try { |
|
25 | - $message = self::delTags($arTemplate['MESSAGE']); |
|
26 | - foreach ($arFields + self::getSiteParam() as $key => $field) { |
|
27 | - $message = preg_replace('/#' . $key . '#/', $field, $message); |
|
28 | - } |
|
29 | - (new Sending)->processMessage($message); |
|
30 | - } catch (\Exception $e) { |
|
31 | - Debug::writeToFile($e->getMessage(), 'getEventSend', 'telegram-log'); |
|
32 | - } |
|
33 | - } |
|
34 | - } |
|
35 | - } |
|
14 | + /** |
|
15 | + * Действие после отправки письма |
|
16 | + * |
|
17 | + * @param $arFields |
|
18 | + * @param $arTemplate |
|
19 | + */ |
|
20 | + public static function getEventSend(&$arFields, &$arTemplate) |
|
21 | + { |
|
22 | + if ($arFields && $arTemplate && Config::statusModule() == 1) { |
|
23 | + if (\in_array($arTemplate['EVENT_NAME'], Config::getMail(), true)) { |
|
24 | + try { |
|
25 | + $message = self::delTags($arTemplate['MESSAGE']); |
|
26 | + foreach ($arFields + self::getSiteParam() as $key => $field) { |
|
27 | + $message = preg_replace('/#' . $key . '#/', $field, $message); |
|
28 | + } |
|
29 | + (new Sending)->processMessage($message); |
|
30 | + } catch (\Exception $e) { |
|
31 | + Debug::writeToFile($e->getMessage(), 'getEventSend', 'telegram-log'); |
|
32 | + } |
|
33 | + } |
|
34 | + } |
|
35 | + } |
|
36 | 36 | |
37 | - /** |
|
38 | - * Удаление html тегов из письма |
|
39 | - * |
|
40 | - * @param $text |
|
41 | - * |
|
42 | - * @return mixed |
|
43 | - */ |
|
44 | - public static function delTags($text) |
|
45 | - { |
|
46 | - return str_replace(' ', ' ', preg_replace('/\s{2,}/', "\n", strip_tags($text))); |
|
47 | - } |
|
37 | + /** |
|
38 | + * Удаление html тегов из письма |
|
39 | + * |
|
40 | + * @param $text |
|
41 | + * |
|
42 | + * @return mixed |
|
43 | + */ |
|
44 | + public static function delTags($text) |
|
45 | + { |
|
46 | + return str_replace(' ', ' ', preg_replace('/\s{2,}/', "\n", strip_tags($text))); |
|
47 | + } |
|
48 | 48 | |
49 | - /** |
|
50 | - * Получение стандартных полей письма |
|
51 | - * @return array |
|
52 | - */ |
|
53 | - public static function getSiteParam():array |
|
54 | - { |
|
55 | - $defaultParam = []; |
|
56 | - $getParam = SiteTable::getList([ |
|
57 | - 'select' => ['EMAIL', 'NAME', 'SERVER_NAME'], |
|
58 | - 'filter' => ['ACTIVE' => 'Y'] |
|
59 | - ]); |
|
60 | - $siteParam = $getParam->fetch(); |
|
61 | - if ($siteParam) { |
|
62 | - $defaultParam = [ |
|
63 | - 'DEFAULT_EMAIL_FROM' => $siteParam['EMAIL'], |
|
64 | - 'SITE_NAME' => $siteParam['NAME'], |
|
65 | - 'SERVER_NAME' => $siteParam['SERVER_NAME'] |
|
66 | - ]; |
|
67 | - } |
|
49 | + /** |
|
50 | + * Получение стандартных полей письма |
|
51 | + * @return array |
|
52 | + */ |
|
53 | + public static function getSiteParam():array |
|
54 | + { |
|
55 | + $defaultParam = []; |
|
56 | + $getParam = SiteTable::getList([ |
|
57 | + 'select' => ['EMAIL', 'NAME', 'SERVER_NAME'], |
|
58 | + 'filter' => ['ACTIVE' => 'Y'] |
|
59 | + ]); |
|
60 | + $siteParam = $getParam->fetch(); |
|
61 | + if ($siteParam) { |
|
62 | + $defaultParam = [ |
|
63 | + 'DEFAULT_EMAIL_FROM' => $siteParam['EMAIL'], |
|
64 | + 'SITE_NAME' => $siteParam['NAME'], |
|
65 | + 'SERVER_NAME' => $siteParam['SERVER_NAME'] |
|
66 | + ]; |
|
67 | + } |
|
68 | 68 | |
69 | - return $defaultParam; |
|
70 | - } |
|
69 | + return $defaultParam; |
|
70 | + } |
|
71 | 71 | } // |
@@ -10,116 +10,116 @@ |
||
10 | 10 | */ |
11 | 11 | class Sending |
12 | 12 | { |
13 | - private $apiKey; |
|
14 | - private $chatId; |
|
15 | - private $arUpdates; |
|
16 | - private $apiBaseUri = 'https://api.telegram.org/bot'; |
|
13 | + private $apiKey; |
|
14 | + private $chatId; |
|
15 | + private $arUpdates; |
|
16 | + private $apiBaseUri = 'https://api.telegram.org/bot'; |
|
17 | 17 | |
18 | - /** |
|
19 | - * Sending constructor. |
|
20 | - */ |
|
21 | - public function __construct() |
|
22 | - { |
|
23 | - $this->apiKey = Config::getToken(); |
|
24 | - $this->chatId = Config::getUser(); |
|
25 | - } |
|
18 | + /** |
|
19 | + * Sending constructor. |
|
20 | + */ |
|
21 | + public function __construct() |
|
22 | + { |
|
23 | + $this->apiKey = Config::getToken(); |
|
24 | + $this->chatId = Config::getUser(); |
|
25 | + } |
|
26 | 26 | |
27 | - /** |
|
28 | - * Отправка сообщения |
|
29 | - * |
|
30 | - * @param $message |
|
31 | - */ |
|
32 | - public function processMessage($message) |
|
33 | - { |
|
34 | - foreach ($this->chatId as $key => $value) { |
|
35 | - $this->apiRequest('sendMessage', ['chat_id' => $key, 'text' => $message]); |
|
36 | - } |
|
37 | - } |
|
27 | + /** |
|
28 | + * Отправка сообщения |
|
29 | + * |
|
30 | + * @param $message |
|
31 | + */ |
|
32 | + public function processMessage($message) |
|
33 | + { |
|
34 | + foreach ($this->chatId as $key => $value) { |
|
35 | + $this->apiRequest('sendMessage', ['chat_id' => $key, 'text' => $message]); |
|
36 | + } |
|
37 | + } |
|
38 | 38 | |
39 | - /** |
|
40 | - * Подготовка curl запроса |
|
41 | - * |
|
42 | - * @param $method |
|
43 | - * @param bool $parameters |
|
44 | - * |
|
45 | - * @return mixed |
|
46 | - */ |
|
47 | - public function apiRequest($method, $parameters = false) |
|
48 | - { |
|
49 | - $handle = curl_init(); |
|
50 | - $options = [ |
|
51 | - CURLOPT_URL => $this->apiBaseUri . $this->apiKey . '/' . $method . '?' . http_build_query($parameters), |
|
52 | - CURLOPT_RETURNTRANSFER => true, |
|
53 | - CURLOPT_FOLLOWLOCATION => 1, |
|
54 | - CURLOPT_CONNECTTIMEOUT => 5, |
|
55 | - CURLOPT_TIMEOUT => 30, |
|
56 | - CURLOPT_POST => true, |
|
57 | - CURLOPT_FRESH_CONNECT => true, |
|
58 | - CURLOPT_UNRESTRICTED_AUTH => true, |
|
59 | - ]; |
|
39 | + /** |
|
40 | + * Подготовка curl запроса |
|
41 | + * |
|
42 | + * @param $method |
|
43 | + * @param bool $parameters |
|
44 | + * |
|
45 | + * @return mixed |
|
46 | + */ |
|
47 | + public function apiRequest($method, $parameters = false) |
|
48 | + { |
|
49 | + $handle = curl_init(); |
|
50 | + $options = [ |
|
51 | + CURLOPT_URL => $this->apiBaseUri . $this->apiKey . '/' . $method . '?' . http_build_query($parameters), |
|
52 | + CURLOPT_RETURNTRANSFER => true, |
|
53 | + CURLOPT_FOLLOWLOCATION => 1, |
|
54 | + CURLOPT_CONNECTTIMEOUT => 5, |
|
55 | + CURLOPT_TIMEOUT => 30, |
|
56 | + CURLOPT_POST => true, |
|
57 | + CURLOPT_FRESH_CONNECT => true, |
|
58 | + CURLOPT_UNRESTRICTED_AUTH => true, |
|
59 | + ]; |
|
60 | 60 | |
61 | - if (Config::statusProxy()) { |
|
62 | - $proxy = Config::proxyData(); |
|
61 | + if (Config::statusProxy()) { |
|
62 | + $proxy = Config::proxyData(); |
|
63 | 63 | |
64 | - //TODO: why not work? |
|
65 | - //if (filter_var($proxy['url'], FILTER_VALIDATE_IP)) { |
|
66 | - // $options[CURLOPT_PROXYTYPE] = CURLPROXY_SOCKS5; |
|
67 | - //} else { |
|
68 | - // $options[CURLOPT_PROXYTYPE] = CURLPROXY_SOCKS5_HOSTNAME; |
|
69 | - //} |
|
64 | + //TODO: why not work? |
|
65 | + //if (filter_var($proxy['url'], FILTER_VALIDATE_IP)) { |
|
66 | + // $options[CURLOPT_PROXYTYPE] = CURLPROXY_SOCKS5; |
|
67 | + //} else { |
|
68 | + // $options[CURLOPT_PROXYTYPE] = CURLPROXY_SOCKS5_HOSTNAME; |
|
69 | + //} |
|
70 | 70 | |
71 | - $options += [ |
|
72 | - CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5_HOSTNAME, |
|
73 | - CURLOPT_PROXY => $proxy['url'], |
|
74 | - CURLOPT_PROXYPORT => $proxy['port'], |
|
75 | - CURLOPT_PROXYUSERNAME => $proxy['user'], |
|
76 | - CURLOPT_PROXYPASSWORD => $proxy['pass'], |
|
77 | - ]; |
|
78 | - } |
|
71 | + $options += [ |
|
72 | + CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5_HOSTNAME, |
|
73 | + CURLOPT_PROXY => $proxy['url'], |
|
74 | + CURLOPT_PROXYPORT => $proxy['port'], |
|
75 | + CURLOPT_PROXYUSERNAME => $proxy['user'], |
|
76 | + CURLOPT_PROXYPASSWORD => $proxy['pass'], |
|
77 | + ]; |
|
78 | + } |
|
79 | 79 | |
80 | - curl_setopt_array($handle, $options); |
|
80 | + curl_setopt_array($handle, $options); |
|
81 | 81 | |
82 | - return $this->execCurlRequest($handle); |
|
83 | - } |
|
82 | + return $this->execCurlRequest($handle); |
|
83 | + } |
|
84 | 84 | |
85 | - /** |
|
86 | - * Отправка curl запроса |
|
87 | - * |
|
88 | - * @param $handle |
|
89 | - * |
|
90 | - * @return mixed |
|
91 | - */ |
|
92 | - public function execCurlRequest($handle) |
|
93 | - { |
|
94 | - $response = curl_exec($handle); |
|
95 | - if ((int)curl_getinfo($handle, CURLINFO_HTTP_CODE) === 200) { |
|
96 | - $response = json_decode($response, true)['result']; |
|
97 | - } else { |
|
98 | - Debug::writeToFile(curl_getinfo($handle), 'execCurlRequest', 'telegram-log'); |
|
99 | - curl_close($handle); |
|
100 | - } |
|
85 | + /** |
|
86 | + * Отправка curl запроса |
|
87 | + * |
|
88 | + * @param $handle |
|
89 | + * |
|
90 | + * @return mixed |
|
91 | + */ |
|
92 | + public function execCurlRequest($handle) |
|
93 | + { |
|
94 | + $response = curl_exec($handle); |
|
95 | + if ((int)curl_getinfo($handle, CURLINFO_HTTP_CODE) === 200) { |
|
96 | + $response = json_decode($response, true)['result']; |
|
97 | + } else { |
|
98 | + Debug::writeToFile(curl_getinfo($handle), 'execCurlRequest', 'telegram-log'); |
|
99 | + curl_close($handle); |
|
100 | + } |
|
101 | 101 | |
102 | - return $response; |
|
103 | - } |
|
102 | + return $response; |
|
103 | + } |
|
104 | 104 | |
105 | - /** |
|
106 | - * Обновление входящих запросов |
|
107 | - * |
|
108 | - * @param int $offset |
|
109 | - * @param int $limit |
|
110 | - * |
|
111 | - * @return mixed |
|
112 | - */ |
|
113 | - public function updatesUser($offset = 0, $limit = 100) |
|
114 | - { |
|
115 | - $paramRequest = ['offset' => $offset, 'limit' => $limit]; |
|
116 | - $this->arUpdates = $this->apiRequest('getUpdates', $paramRequest); |
|
117 | - if (\count($this->arUpdates) >= 1) { |
|
118 | - $lastElementId = $this->arUpdates[\count($this->arUpdates) - 1]['update_id'] + 1; |
|
119 | - $paramRequest = ['offset' => $lastElementId, 'limit' => '1']; |
|
120 | - $this->apiRequest('getUpdates', $paramRequest); |
|
121 | - } |
|
105 | + /** |
|
106 | + * Обновление входящих запросов |
|
107 | + * |
|
108 | + * @param int $offset |
|
109 | + * @param int $limit |
|
110 | + * |
|
111 | + * @return mixed |
|
112 | + */ |
|
113 | + public function updatesUser($offset = 0, $limit = 100) |
|
114 | + { |
|
115 | + $paramRequest = ['offset' => $offset, 'limit' => $limit]; |
|
116 | + $this->arUpdates = $this->apiRequest('getUpdates', $paramRequest); |
|
117 | + if (\count($this->arUpdates) >= 1) { |
|
118 | + $lastElementId = $this->arUpdates[\count($this->arUpdates) - 1]['update_id'] + 1; |
|
119 | + $paramRequest = ['offset' => $lastElementId, 'limit' => '1']; |
|
120 | + $this->apiRequest('getUpdates', $paramRequest); |
|
121 | + } |
|
122 | 122 | |
123 | - return $this->arUpdates; |
|
124 | - } |
|
123 | + return $this->arUpdates; |
|
124 | + } |
|
125 | 125 | } // |
@@ -92,7 +92,7 @@ |
||
92 | 92 | public function execCurlRequest($handle) |
93 | 93 | { |
94 | 94 | $response = curl_exec($handle); |
95 | - if ((int)curl_getinfo($handle, CURLINFO_HTTP_CODE) === 200) { |
|
95 | + if ((int) curl_getinfo($handle, CURLINFO_HTTP_CODE) === 200) { |
|
96 | 96 | $response = json_decode($response, true)['result']; |
97 | 97 | } else { |
98 | 98 | Debug::writeToFile(curl_getinfo($handle), 'execCurlRequest', 'telegram-log'); |
@@ -12,214 +12,214 @@ |
||
12 | 12 | */ |
13 | 13 | class Config |
14 | 14 | { |
15 | - public static $module_id = 'telegram.send'; |
|
16 | - public static $request; |
|
17 | - public static $response = [ |
|
18 | - 'updates' => false, |
|
19 | - 'message' => false |
|
20 | - ]; |
|
21 | - |
|
22 | - /** |
|
23 | - * Request |
|
24 | - */ |
|
25 | - public static function processRequest() |
|
26 | - { |
|
27 | - self::$request = Context::getCurrent()->getRequest(); |
|
28 | - $funcName = self::$request->getPost('funcName'); |
|
29 | - if ($funcName) { |
|
30 | - self::$funcName(); |
|
31 | - } |
|
32 | - } |
|
33 | - |
|
34 | - /** |
|
35 | - * Получение всех почтовых шаблонов |
|
36 | - * @return array |
|
37 | - */ |
|
38 | - public static function getMailTemplates():array |
|
39 | - { |
|
40 | - $getRow = EventTypeTable::getList([ |
|
41 | - 'select' => ['ID', 'EVENT_NAME', 'NAME'], |
|
42 | - 'filter' => ['=LID' => LANGUAGE_ID], |
|
43 | - 'order' => ['EVENT_NAME' => 'ASC'] |
|
44 | - ]); |
|
45 | - |
|
46 | - return $getRow->fetchAll(); |
|
47 | - } |
|
48 | - |
|
49 | - /** |
|
50 | - * Получение входящих запросов |
|
51 | - */ |
|
52 | - public static function getUpdates() |
|
53 | - { |
|
54 | - $arReturn = []; |
|
55 | - $arUpdates = (new Sending)->updatesUser()[0]; |
|
56 | - if ($arUpdates['message']['text'] === '/start' && $arUpdates['message']['chat']['id']) { |
|
57 | - $arUsers = self::getUser(); |
|
58 | - if (!array_key_exists($arUpdates['message']['chat']['id'], $arUsers)) { |
|
59 | - $arReturn = $arUpdates['message']['chat']; |
|
60 | - } |
|
61 | - } |
|
62 | - if (!$arReturn) { |
|
63 | - self::$response['message'] = self::setNote('Входящих запросов нет', 'ERROR'); |
|
64 | - } |
|
65 | - self::$response['updates'] = $arReturn; |
|
66 | - self::sendResponse(); |
|
67 | - } |
|
68 | - |
|
69 | - /** |
|
70 | - * Добавленные пользователи |
|
71 | - * @return mixed |
|
72 | - */ |
|
73 | - public static function getUser() |
|
74 | - { |
|
75 | - return unserialize(Option::get(self::$module_id, 'user')); |
|
76 | - } |
|
77 | - |
|
78 | - /** |
|
79 | - * Генерация уведомления |
|
80 | - * |
|
81 | - * @param $message |
|
82 | - * @param $type "ERROR"|"OK"|"PROGRESS" |
|
83 | - * |
|
84 | - * @return string |
|
85 | - */ |
|
86 | - public static function setNote($message, $type):string |
|
87 | - { |
|
88 | - return (new \CAdminMessage(['MESSAGE' => $message, 'TYPE' => $type]))->Show(); |
|
89 | - } |
|
90 | - |
|
91 | - /** |
|
92 | - * Отправка json ответа |
|
93 | - */ |
|
94 | - public static function sendResponse() |
|
95 | - { |
|
96 | - header('Content-Type: application/json'); |
|
97 | - die(json_encode(self::$response)); |
|
98 | - } |
|
99 | - |
|
100 | - /** |
|
101 | - * Добавление пользователя |
|
102 | - */ |
|
103 | - public static function setUser() |
|
104 | - { |
|
105 | - $fields = self::$request->getPost('fields'); |
|
106 | - if ($fields) { |
|
107 | - $savedUser = self::getUser(); |
|
108 | - if (!array_key_exists($fields['id'], $savedUser)) { |
|
109 | - $newUser = [ |
|
110 | - $fields['id'] => [ |
|
111 | - 'nickname' => $fields['nickname'], |
|
112 | - 'username' => $fields['username'] |
|
113 | - ] |
|
114 | - ]; |
|
115 | - if ($savedUser) { |
|
116 | - $newUser += $savedUser; |
|
117 | - } |
|
118 | - self::setOption('user', $newUser); |
|
119 | - self::$response['message'] = self::setNote('Пользователь добавлен', 'OK'); |
|
120 | - } else { |
|
121 | - self::$response['message'] = self::setNote('Пользователь уже существует', 'ERROR'); |
|
122 | - } |
|
123 | - } |
|
124 | - self::sendResponse(); |
|
125 | - } |
|
126 | - |
|
127 | - /** |
|
128 | - * Запись данных в базу |
|
129 | - * |
|
130 | - * @param $name |
|
131 | - * @param $option |
|
132 | - * @param bool $serialize |
|
133 | - */ |
|
134 | - public static function setOption($name, $option, $serialize = true) |
|
135 | - { |
|
136 | - Option::set(self::$module_id, $name, $serialize ? serialize($option) : $option); |
|
137 | - } |
|
138 | - |
|
139 | - /** |
|
140 | - * Удаление пользователя |
|
141 | - */ |
|
142 | - public static function deleteUser() |
|
143 | - { |
|
144 | - $fields = self::$request->getPost('fields'); |
|
145 | - if ($fields) { |
|
146 | - $savedUser = self::getUser(); |
|
147 | - if (array_key_exists($fields['id'], $savedUser)) { |
|
148 | - unset($savedUser[$fields['id']]); |
|
149 | - self::setOption('user', $savedUser); |
|
150 | - self::$response['message'] = self::setNote('Пользователь удален', 'OK'); |
|
151 | - } else { |
|
152 | - self::$response['message'] = self::setNote('Этот пользователь уже удален', 'ERROR'); |
|
153 | - } |
|
154 | - } |
|
155 | - self::sendResponse(); |
|
156 | - } |
|
157 | - |
|
158 | - /** |
|
159 | - * Сохранение настроек |
|
160 | - */ |
|
161 | - public static function saveConfig() |
|
162 | - { |
|
163 | - $fields = self::$request->getPost('fields'); |
|
164 | - if ($fields) { |
|
165 | - foreach ($fields as $field => $value) { |
|
166 | - if (\is_array($value)) { |
|
167 | - self::setOption($field, $value); |
|
168 | - } else { |
|
169 | - self::setOption($field, $value, false); |
|
170 | - } |
|
171 | - } |
|
172 | - } |
|
173 | - if ($fields['module_on'] === '1') { |
|
174 | - self::$response['message'] = self::setNote('Настройки сохранены', 'OK'); |
|
175 | - } else { |
|
176 | - self::$response['message'] = self::setNote('Модуль отключен', 'ERROR'); |
|
177 | - } |
|
178 | - self::sendResponse(); |
|
179 | - } |
|
180 | - |
|
181 | - /** |
|
182 | - * Активность модуля |
|
183 | - * @return string |
|
184 | - */ |
|
185 | - public static function statusModule():string |
|
186 | - { |
|
187 | - return Option::get(self::$module_id, 'module_on'); |
|
188 | - } |
|
189 | - |
|
190 | - /** |
|
191 | - * Токен бота |
|
192 | - * @return string |
|
193 | - */ |
|
194 | - public static function getToken():string |
|
195 | - { |
|
196 | - return Option::get(self::$module_id, 'token'); |
|
197 | - } |
|
198 | - |
|
199 | - /** |
|
200 | - * Почтовые шаблоны |
|
201 | - * @return mixed |
|
202 | - */ |
|
203 | - public static function getMail() |
|
204 | - { |
|
205 | - return unserialize(Option::get(self::$module_id, 'mail')); |
|
206 | - } |
|
207 | - |
|
208 | - /** |
|
209 | - * Активность прокси |
|
210 | - * @return mixed |
|
211 | - */ |
|
212 | - public static function statusProxy() |
|
213 | - { |
|
214 | - return Option::get(self::$module_id, 'proxy_on'); |
|
215 | - } |
|
216 | - |
|
217 | - /** |
|
218 | - * Данные прокси |
|
219 | - * @return mixed |
|
220 | - */ |
|
221 | - public static function proxyData() |
|
222 | - { |
|
223 | - return unserialize(Option::get(self::$module_id, 'proxy')); |
|
224 | - } |
|
15 | + public static $module_id = 'telegram.send'; |
|
16 | + public static $request; |
|
17 | + public static $response = [ |
|
18 | + 'updates' => false, |
|
19 | + 'message' => false |
|
20 | + ]; |
|
21 | + |
|
22 | + /** |
|
23 | + * Request |
|
24 | + */ |
|
25 | + public static function processRequest() |
|
26 | + { |
|
27 | + self::$request = Context::getCurrent()->getRequest(); |
|
28 | + $funcName = self::$request->getPost('funcName'); |
|
29 | + if ($funcName) { |
|
30 | + self::$funcName(); |
|
31 | + } |
|
32 | + } |
|
33 | + |
|
34 | + /** |
|
35 | + * Получение всех почтовых шаблонов |
|
36 | + * @return array |
|
37 | + */ |
|
38 | + public static function getMailTemplates():array |
|
39 | + { |
|
40 | + $getRow = EventTypeTable::getList([ |
|
41 | + 'select' => ['ID', 'EVENT_NAME', 'NAME'], |
|
42 | + 'filter' => ['=LID' => LANGUAGE_ID], |
|
43 | + 'order' => ['EVENT_NAME' => 'ASC'] |
|
44 | + ]); |
|
45 | + |
|
46 | + return $getRow->fetchAll(); |
|
47 | + } |
|
48 | + |
|
49 | + /** |
|
50 | + * Получение входящих запросов |
|
51 | + */ |
|
52 | + public static function getUpdates() |
|
53 | + { |
|
54 | + $arReturn = []; |
|
55 | + $arUpdates = (new Sending)->updatesUser()[0]; |
|
56 | + if ($arUpdates['message']['text'] === '/start' && $arUpdates['message']['chat']['id']) { |
|
57 | + $arUsers = self::getUser(); |
|
58 | + if (!array_key_exists($arUpdates['message']['chat']['id'], $arUsers)) { |
|
59 | + $arReturn = $arUpdates['message']['chat']; |
|
60 | + } |
|
61 | + } |
|
62 | + if (!$arReturn) { |
|
63 | + self::$response['message'] = self::setNote('Входящих запросов нет', 'ERROR'); |
|
64 | + } |
|
65 | + self::$response['updates'] = $arReturn; |
|
66 | + self::sendResponse(); |
|
67 | + } |
|
68 | + |
|
69 | + /** |
|
70 | + * Добавленные пользователи |
|
71 | + * @return mixed |
|
72 | + */ |
|
73 | + public static function getUser() |
|
74 | + { |
|
75 | + return unserialize(Option::get(self::$module_id, 'user')); |
|
76 | + } |
|
77 | + |
|
78 | + /** |
|
79 | + * Генерация уведомления |
|
80 | + * |
|
81 | + * @param $message |
|
82 | + * @param $type "ERROR"|"OK"|"PROGRESS" |
|
83 | + * |
|
84 | + * @return string |
|
85 | + */ |
|
86 | + public static function setNote($message, $type):string |
|
87 | + { |
|
88 | + return (new \CAdminMessage(['MESSAGE' => $message, 'TYPE' => $type]))->Show(); |
|
89 | + } |
|
90 | + |
|
91 | + /** |
|
92 | + * Отправка json ответа |
|
93 | + */ |
|
94 | + public static function sendResponse() |
|
95 | + { |
|
96 | + header('Content-Type: application/json'); |
|
97 | + die(json_encode(self::$response)); |
|
98 | + } |
|
99 | + |
|
100 | + /** |
|
101 | + * Добавление пользователя |
|
102 | + */ |
|
103 | + public static function setUser() |
|
104 | + { |
|
105 | + $fields = self::$request->getPost('fields'); |
|
106 | + if ($fields) { |
|
107 | + $savedUser = self::getUser(); |
|
108 | + if (!array_key_exists($fields['id'], $savedUser)) { |
|
109 | + $newUser = [ |
|
110 | + $fields['id'] => [ |
|
111 | + 'nickname' => $fields['nickname'], |
|
112 | + 'username' => $fields['username'] |
|
113 | + ] |
|
114 | + ]; |
|
115 | + if ($savedUser) { |
|
116 | + $newUser += $savedUser; |
|
117 | + } |
|
118 | + self::setOption('user', $newUser); |
|
119 | + self::$response['message'] = self::setNote('Пользователь добавлен', 'OK'); |
|
120 | + } else { |
|
121 | + self::$response['message'] = self::setNote('Пользователь уже существует', 'ERROR'); |
|
122 | + } |
|
123 | + } |
|
124 | + self::sendResponse(); |
|
125 | + } |
|
126 | + |
|
127 | + /** |
|
128 | + * Запись данных в базу |
|
129 | + * |
|
130 | + * @param $name |
|
131 | + * @param $option |
|
132 | + * @param bool $serialize |
|
133 | + */ |
|
134 | + public static function setOption($name, $option, $serialize = true) |
|
135 | + { |
|
136 | + Option::set(self::$module_id, $name, $serialize ? serialize($option) : $option); |
|
137 | + } |
|
138 | + |
|
139 | + /** |
|
140 | + * Удаление пользователя |
|
141 | + */ |
|
142 | + public static function deleteUser() |
|
143 | + { |
|
144 | + $fields = self::$request->getPost('fields'); |
|
145 | + if ($fields) { |
|
146 | + $savedUser = self::getUser(); |
|
147 | + if (array_key_exists($fields['id'], $savedUser)) { |
|
148 | + unset($savedUser[$fields['id']]); |
|
149 | + self::setOption('user', $savedUser); |
|
150 | + self::$response['message'] = self::setNote('Пользователь удален', 'OK'); |
|
151 | + } else { |
|
152 | + self::$response['message'] = self::setNote('Этот пользователь уже удален', 'ERROR'); |
|
153 | + } |
|
154 | + } |
|
155 | + self::sendResponse(); |
|
156 | + } |
|
157 | + |
|
158 | + /** |
|
159 | + * Сохранение настроек |
|
160 | + */ |
|
161 | + public static function saveConfig() |
|
162 | + { |
|
163 | + $fields = self::$request->getPost('fields'); |
|
164 | + if ($fields) { |
|
165 | + foreach ($fields as $field => $value) { |
|
166 | + if (\is_array($value)) { |
|
167 | + self::setOption($field, $value); |
|
168 | + } else { |
|
169 | + self::setOption($field, $value, false); |
|
170 | + } |
|
171 | + } |
|
172 | + } |
|
173 | + if ($fields['module_on'] === '1') { |
|
174 | + self::$response['message'] = self::setNote('Настройки сохранены', 'OK'); |
|
175 | + } else { |
|
176 | + self::$response['message'] = self::setNote('Модуль отключен', 'ERROR'); |
|
177 | + } |
|
178 | + self::sendResponse(); |
|
179 | + } |
|
180 | + |
|
181 | + /** |
|
182 | + * Активность модуля |
|
183 | + * @return string |
|
184 | + */ |
|
185 | + public static function statusModule():string |
|
186 | + { |
|
187 | + return Option::get(self::$module_id, 'module_on'); |
|
188 | + } |
|
189 | + |
|
190 | + /** |
|
191 | + * Токен бота |
|
192 | + * @return string |
|
193 | + */ |
|
194 | + public static function getToken():string |
|
195 | + { |
|
196 | + return Option::get(self::$module_id, 'token'); |
|
197 | + } |
|
198 | + |
|
199 | + /** |
|
200 | + * Почтовые шаблоны |
|
201 | + * @return mixed |
|
202 | + */ |
|
203 | + public static function getMail() |
|
204 | + { |
|
205 | + return unserialize(Option::get(self::$module_id, 'mail')); |
|
206 | + } |
|
207 | + |
|
208 | + /** |
|
209 | + * Активность прокси |
|
210 | + * @return mixed |
|
211 | + */ |
|
212 | + public static function statusProxy() |
|
213 | + { |
|
214 | + return Option::get(self::$module_id, 'proxy_on'); |
|
215 | + } |
|
216 | + |
|
217 | + /** |
|
218 | + * Данные прокси |
|
219 | + * @return mixed |
|
220 | + */ |
|
221 | + public static function proxyData() |
|
222 | + { |
|
223 | + return unserialize(Option::get(self::$module_id, 'proxy')); |
|
224 | + } |
|
225 | 225 | } // |