4use Bitrix\Main\Entity\ExpressionField;
8 const SUBSCRIBE_ALL =
'A';
13 private $Notify = NULL;
14 private static $Enable =
true;
18 $this->Notify = $parent;
23 return CModule::IncludeModule(
'blog') && NULL!=$this->Notify && self::$Enable;
26 public static function Add($Entity)
28 $notifyEmail = new \Bitrix\Idea\NotifyEmail();
29 $db_res = $notifyEmail->addIdea($Entity);
33 public static function Delete($Entity)
35 $notifyEmail = new \Bitrix\Idea\NotifyEmail();
36 if ($Entity ==
'AI' || $Entity ==
'A')
37 $notifyEmail->deleteCategory(
'');
38 else if (mb_substr($Entity, 0, mb_strlen(self::SUBSCRIBE_IDEA_COMMENT)) == self::SUBSCRIBE_IDEA_COMMENT)
39 $notifyEmail->deleteIdea(mb_substr($Entity, mb_strlen(self::SUBSCRIBE_IDEA_COMMENT)));
40 else if (mb_strlen(intval($Entity)) == mb_strlen($Entity))
41 $notifyEmail->deleteIdea($Entity);
45 public static function GetList(
$order = Array(),
$arFilter = Array(), $arGroupBy =
false, $arNavStartParams =
false, $arSelectFields =
array())
55 if (
$key[
"FIELD"] ==
"ID" && is_array(
$val))
62 if ($v == self::SUBSCRIBE_ALL)
66 else if (mb_strpos($v, self::SUBSCRIBE_IDEA_COMMENT) === 0)
69 "=ENTITY_TYPE" => \
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_IDEA,
70 "=ENTITY_CODE" => str_replace(self::SUBSCRIBE_IDEA_COMMENT,
"", $v)
76 else if (
$key[
"FIELD"] ==
"USER_ID" ||
$key[
"FIELD"] ==
"USER_EMAIL")
82 if (is_array($arSelectFields))
84 $select = array_intersect($arSelectFields, array_keys(\
Bitrix\
Idea\NotifyEmailTable::getMap()));
85 if (in_array(
"USER_EMAIL", $arSelectFields))
86 $select[
"USER_EMAIL"] =
"USER.EMAIL";
87 if (in_array(
"ID", $arSelectFields))
90 $runtime[] =
new ExpressionField(
92 Application::getConnection()->getSqlHelper()->getConcatFunction(
94 "WHEN %s='".\
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_IDEA.
"' AND %s='' THEN '".self::SUBSCRIBE_ALL.
"' ".
95 "WHEN %s='".\
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_IDEA.
"' THEN '".self::SUBSCRIBE_IDEA_COMMENT.
"' ".
96 "WHEN %s='".\
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY.
"' AND %s='' THEN '".self::SUBSCRIBE_ALL_IDEA.
"' ".
97 "WHEN %s='".\
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY.
"' THEN '".\
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY.
"' ".
101 "ENTITY_TYPE",
"ENTITY_CODE",
"ENTITY_TYPE",
"ENTITY_TYPE",
"ENTITY_CODE",
"ENTITY_TYPE",
"ENTITY_CODE")
105 $db_res = \Bitrix\Idea\NotifyEmailTable::getList(
110 'runtime' => $runtime
121 $arNotification = $this->Notify->getNotification();
124 if($arNotification[
"ACTION"] ==
"UPDATE")
126 $category = mb_strtoupper($arNotification[
"CATEGORY"]);
127 $arEmailSubscribe =
array();
128 if (!array_key_exists(
"CATEGORIES", $arNotification))
129 $arNotification[
"CATEGORIES"] = \CIdeaManagment::getInstance()->Idea()->GetCategoryList();
130 if (array_key_exists($category, $arNotification[
"CATEGORIES"]) && \CIdeaManagment::getInstance()->
Idea()->
GetCategoryListID() > 0)
131 $category = $arNotification[
"CATEGORIES"][$category];
135 if ($arNotification[
"TYPE"] ==
"IDEA")
140 "=ENTITY_TYPE" => \
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY,
141 "=ENTITY_CODE" =>
'',
144 if (!is_null($category))
147 "=ENTITY_TYPE" => \
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY,
149 "<=ASCENDED_CATEGORIES.DEPTH_LEVEL" => $category[
"DEPTH_LEVEL"],
150 "<=ASCENDED_CATEGORIES.LEFT_MARGIN" => $category[
"LEFT_MARGIN"],
151 ">=ASCENDED_CATEGORIES.RIGHT_MARGIN" => $category[
"RIGHT_MARGIN"]
160 "=ENTITY_TYPE" => \
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_IDEA,
161 "=ENTITY_CODE" => $arNotification[
"POST_ID"],
164 "=SUBSCRIBE_TYPE" => \
Bitrix\
Idea\NotifyEmailTable::SUBSCRIBE_TYPE_ALL,
165 "=ENTITY_TYPE" => \
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY,
169 if (!is_null($category))
172 "=SUBSCRIBE_TYPE" => \
Bitrix\
Idea\NotifyEmailTable::SUBSCRIBE_TYPE_ALL,
173 "=ENTITY_TYPE" => \
Bitrix\
Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY,
175 "<=ASCENDED_CATEGORIES.DEPTH_LEVEL" => $category[
"DEPTH_LEVEL"],
176 "<=ASCENDED_CATEGORIES.LEFT_MARGIN" => $category[
"LEFT_MARGIN"],
177 ">=ASCENDED_CATEGORIES.RIGHT_MARGIN" => $category[
"RIGHT_MARGIN"]
182 $db_res = \Bitrix\Idea\NotifyEmailTable::getList(
185 'select' =>
array(
"USER_ID",
"USER_EMAIL" =>
"USER.EMAIL")
189 if (!is_null($category))
190 $arNotification[
"CATEGORY"] = $category[
"NAME"];
191 unset($arNotification[
"CATEGORIES"]);
192 if (!array_key_exists(
"IDEA_TITLE", $arNotification))
193 $arNotification[
"IDEA_TITLE"] = $arNotification[
"TITLE"];
197 if($r[
"USER_ID"] != $arNotification[
"AUTHOR_ID"] && !array_key_exists($r[
"USER_ID"], $arEmailSubscribe) &&
check_email($r[
"USER_EMAIL"]))
199 $arEmailSubscribe[$r[
"USER_ID"]] = $r[
"USER_EMAIL"];
201 $arNotification[
"EMIAL_TO"] = $r[
"USER_EMAIL"];
202 $arNotification[
"EMAIL_TO"] = $r[
"USER_EMAIL"];
204 CEvent::Send($arNotification[
"ACTION"].
'_'.$arNotification[
"TYPE"],
SITE_ID, $arNotification);
207 return count($arEmailSubscribe) > 0;
212 self::$Enable =
false;
217 self::$Enable =
true;
static GetFilterOperation($key)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
const SUBSCRIBE_IDEA_COMMENT
Class CIdeaManagmentEmailNotify
check_email($email, $strict=false, $domainCheck=false)
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"