Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проблема с CEvent:Send()

+11 голос
4
Добрый день!

На сайте есть товары, к товарам добавляются комментарии. При добавлении администратору уходит письмо.
Вот собственно код:

component.php (компонент добавления комментариев)
Код
if (isset($_REQUEST['comment'])) {
  switch($_REQUEST['comment']) {
     case 'add':
       require 'addcomment.php';  //ниже приведен его код
       $arResult['added'] = 1;
       //echo '<pre>'; print_r($checkAdd); echo '</pre>';
       echo $checkAdd['Err'];
       //высылаем письмо
       $eventArFields = Array( 
             "ITEM" => $checkAdd['ITEM'], 
             "RATING" => $checkAdd['RATING'],
             "TEXT" => $checkAdd['TEXT'],
             "ID" => $checkAdd['ID'],
           );
       CEvent::Send("WF_NEW_COMMENT", "ru", $eventArFields, "N", 356);
       break; 
     }
  }


addcomment.php (функция обработки полей и добавления комментариев)
Код
/*
* сначала идет общий код и в итоге на выходе
* заполняем массив для отправки письма
*/

   if ($COMMENT_ID = $el->Add($arLoadProductArray)) {  //если комментарий успешно добавлен
      $checkAdd['ID']    = $COMMENT_ID;
      $checkAdd['CHECK']    = TRUE;
      $checkAdd['ITEM']    = $commentItem;
      $checkAdd['RATING']    = $mailRating;
      $checkAdd['TEXT']    = $arComment['COMM_TEXT'];

   }


Теперь что получается - приходит почему то друг за дружкой два письма.
Вообще шаблон письма выглядит как
Код
Оставлен комментарий для #ITEM# текст #TEXT#

В первом письме все нормально, а во втором - как будто поля ITEM, TEXT и прочие - пустые.
Не могу понять где копать - то ли в почтовых событиях, то ли смотреть свой код добавление комментария :(

Может кто сталкивался?
спросил 22 Дек, 13 от HeJIJIu (630 баллов)

4 Ответы

00 голосов
Пока что обошелся "костылем":

Цитата

if (!empty($eventArFields["ITEM"])) {
CEvent::Send("WF_NEW_COMMENT", "ru", $eventArFields, "N", 356);
break;
}


Теперь приходит по одному письму, но очень хотелось бы понять, почему же он отдает два раза :(
ответил 12 Март, 14 от HeJIJIu (630 баллов)
00 голосов
Нигде в ссылках 'comment=add' не остается случаем?
ответил 02 Июль, 14 от Pomnep (13,960 баллов)
00 голосов
Остается..
то есть после отправки мы попадаем на страницу "адрес_страницы_товара_как_был"&comment=add
думаете из-за этого?
То есть лучше после добавления комментария и отправки сообщения делать LocalRedirect?
ответил 02 Ноя, 14 от HeJIJIu (630 баллов)
00 голосов
Цитата
d4rkolian пишет:
думаете из-за этого?

Не думаю. Уверен.
Цитата
d4rkolian пишет:
То есть лучше после добавления комментария и отправки сообщения делать LocalRedirect?

Да. С каким-нибудь сообщением типа "Отправлено".
ответил 02 Март, 15 от Pomnep (13,960 баллов)

Похожие вопросы

0 голосов
2 ответов
0 голосов
2 ответов
спросил 07 Май, 14 от Tafna (100 баллов)
0 голосов
3 ответов
спросил 19 Март, 14 от cartmen (460 баллов)
0 голосов
0 ответов
спросил 23 Янв, 14 от KENTS (280 баллов)
0 голосов
5 ответов
спросил 06 Ноя, 13 от Vika86 (100 баллов)