Skip to content

Commit 07e8b25

Browse files
committed
Доработки.
1 parent 29b4176 commit 07e8b25

File tree

3 files changed

+141
-15
lines changed

3 files changed

+141
-15
lines changed

Resources/config/services.yaml

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,6 @@ services:
2424

2525
Prokl\BitrixOrdinaryToolsBundle\Services\Application\BitrixGlobals: ~
2626

27-
# Bitrix D7 entities
28-
Bitrix\Main\Mail\Event: ~
29-
Bitrix\Main\UserTable: ~
30-
Bitrix\Iblock\Iblock: ~
31-
Bitrix\Iblock\ElementTable: ~
32-
Bitrix\Iblock\ElementPropertyTable: ~
33-
Bitrix\Iblock\PropertyTable: ~
34-
Bitrix\Iblock\SectionElementTable: ~
35-
Bitrix\Iblock\SectionPropertyTable: ~
36-
Bitrix\Iblock\IblockFieldTable: ~
37-
Bitrix\Iblock\IblockGroupTable: ~
38-
Bitrix\Iblock\SiteTable: ~
39-
4027
# $APPLICATION
4128
application.instance:
4229
class: CMain
@@ -61,6 +48,19 @@ services:
6148
class: Prokl\BitrixOrdinaryToolsBundle\Services\Utils\CFileWrapper
6249
arguments: ['@bitrix_ordinary_tools.cfile']
6350

51+
# Bitrix D7 entities
52+
Bitrix\Main\Mail\Event: ~
53+
Bitrix\Main\UserTable: ~
54+
Bitrix\Iblock\Iblock: ~
55+
Bitrix\Iblock\ElementTable: ~
56+
Bitrix\Iblock\ElementPropertyTable: ~
57+
Bitrix\Iblock\PropertyTable: ~
58+
Bitrix\Iblock\SectionElementTable: ~
59+
Bitrix\Iblock\SectionPropertyTable: ~
60+
Bitrix\Iblock\IblockFieldTable: ~
61+
Bitrix\Iblock\IblockGroupTable: ~
62+
Bitrix\Iblock\SiteTable: ~
63+
6464
iblock.element.manager:
6565
class: Prokl\BitrixOrdinaryToolsBundle\Services\Iblock\IblockElementManager
6666

@@ -97,4 +97,9 @@ services:
9797
loader.content:
9898
class: Prokl\BitrixOrdinaryToolsBundle\Services\Utils\LoaderContent
9999

100-
Prokl\BitrixOrdinaryToolsBundle\Services\Utils\LoaderContent: '@loader.content'
100+
Prokl\BitrixOrdinaryToolsBundle\Services\Utils\LoaderContent: '@loader.content'
101+
102+
# Работа с почтовыми событиями.
103+
Prokl\BitrixOrdinaryToolsBundle\Services\Email\SendNotification:
104+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Email\SendNotification
105+
arguments: ['@Bitrix\Main\Mail\Event', '@bitrix_ordinary_tools.cfile']

Services/Cache/LegacyCacher.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,6 @@ public function setTTL(int $timeSeconds): LegacyCacher
231231
return $this;
232232
}
233233

234-
235234
/**
236235
* Задать текущий URL.
237236
*
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
<?php
2+
3+
namespace Prokl\BitrixOrdinaryToolsBundle\Services\Email;
4+
5+
use Bitrix\Main\Mail\Event;
6+
use CFile;
7+
8+
/**
9+
* Class SendNotification
10+
* @package Prokl\BitrixOrdinaryToolsBundle\Services\Email
11+
*
12+
* @since 08.09.2020
13+
*/
14+
class SendNotification
15+
{
16+
/**
17+
* @var CFile $fileHandler Битриксовый CFile.
18+
*/
19+
private $fileHandler;
20+
21+
/**
22+
* @var Event $bitrixEventHandler Битриксовый Event manager.
23+
*/
24+
private $bitrixEventHandler;
25+
26+
/** @var string Название события. */
27+
private $eventName;
28+
29+
/**
30+
* @var array $arFiles Аттачи.
31+
*/
32+
private $arFiles = [];
33+
34+
/**
35+
* @var array $arFields Поля события.
36+
*/
37+
private $arFields = [];
38+
39+
/**
40+
* SendNotification constructor.
41+
*
42+
* @param Event $bitrixEventHandler Битриксовый Event manager.
43+
* @param CFile $fileHandler Битриксовый CFile.
44+
*/
45+
public function __construct(
46+
Event $bitrixEventHandler,
47+
CFile $fileHandler
48+
) {
49+
$this->fileHandler = $fileHandler;
50+
$this->bitrixEventHandler = $bitrixEventHandler;
51+
}
52+
53+
/**
54+
* @return mixed
55+
*/
56+
public function send()
57+
{
58+
return $this->bitrixEventHandler::send(
59+
[
60+
'EVENT_NAME' => $this->eventName,
61+
'LID' => 's1',
62+
'C_FIELDS' => $this->arFields,
63+
'FILE' => $this->arFiles,
64+
]
65+
);
66+
}
67+
68+
/**
69+
* Название события.
70+
*
71+
* @param string $eventName Событие.
72+
*
73+
* @return $this
74+
*/
75+
public function setEventName(string $eventName) : self
76+
{
77+
$this->eventName = $eventName;
78+
return $this;
79+
}
80+
81+
/**
82+
* Приаттаченные файлы.
83+
*
84+
* @param string $filename Имя файла.
85+
*
86+
* @return $this
87+
*/
88+
public function setFiles(string $filename) : self
89+
{
90+
$this->arFiles[] = $this->registerFile($filename);
91+
92+
return $this;
93+
}
94+
95+
/**
96+
* Поля события.
97+
*
98+
* @param array $arFields Поля события.
99+
*
100+
* @return $this
101+
*/
102+
public function setFields(array $arFields) : self
103+
{
104+
$this->arFields = $arFields;
105+
return $this;
106+
}
107+
108+
/**
109+
* Зарегистрировать файл в Битриксе.
110+
*
111+
* @param string $filePath Путь к файлу.
112+
* @param string $strSavePath Нагрузка.
113+
*
114+
* @return mixed
115+
*/
116+
protected function registerFile(string $filePath, string $strSavePath = 'pdf'): int
117+
{
118+
$arDataFiles = $this->fileHandler::MakeFileArray($filePath);
119+
120+
return $this->fileHandler::SaveFile($arDataFiles, $strSavePath);
121+
}
122+
}

0 commit comments

Comments
 (0)