подскажите как сделать отправку письма после изменения свойства элемента
[CODE]AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("ElementBloka", "OnAfterIBlockElementUpdateHandler");class ElementBloka{ function OnAfterIBlockElementUpdateHandler(&$arFields) {if ($arFields["IBLOCK_ID"]=="30"{ CModule::IncludeModule('iblock'); $res = CIBlockElement::GetByID($arFields["ID"] if($ar_res = $res->GetNextElement()){ $polya = $ar_res->GetFields(); $props = $ar_res->GetProperties(); } if ($polya["kadr"]["VALUE"]=="получено"{ $cUser = new CUser; $sort_by = "ID"; $sort_ord = "ASC"; $arFilter = array( "ACTIVE" => 'Y', "UF_CATALOG" =>array($arFields["ID"] ; $dbUsers = $cUser->GetList($sort_by, $sort_ord, $arFilter); while ($arUser = $dbUsers->Fetch()) { $arMail["BASA_EMAIL"][]=$arUser["EMAIL"]; } $arRegFields = array( 'EMAILTO' => $arMail["BASA_EMAIL"], 'TOVAR' => $polya["NAME"], 'SSIK' => 'http://www.site.ru/'.$polya["CODE"].'/' ; CEvent::Send('Zayavka_rassilka',array("s1",$arRegFields); } } }}[/CODE]код init.php кидаю, но не работает и где ошибка найти не могу
смысл такой, как только изменяем свойство(тип список) в элементе и оно равно значению "получено" необходимо собрать все почтовые ящики пользователей у которых одна из отметок пользовательского свойства(множественное) равна id текущего элемента и отправить им письмо
прошу прощения, просто искал ошибку вот всего и намешал, сам себя запутал еще и свойств лишних наделал
[QUOTE]Дмитрий Шкуркин пишет: почему вы выбираете данные из UF_ CATALOG а добавляете в UF_CATALOG_BENZO [/QUOTE]ошибка была в том что я массив получил $EstB а пытаюсь запихнуть его в array( $EstB ) . несколко разных свойств перепутал и отрабатывало свойство не то которое нужно, вот в админке и видно было что появилось, и я тут же его перезатирал несуществующим массивом
[CODE]$ID=$USER->GetID(); $rsUser = CUser::GetList(($by="ID"), ($order="desc"), array("ID"=>$ID),array("SELECT"=>array("UF_*"))); while ($arrrUser = $rsUser->Fetch()) { $EstB=$arrrUser['UF_CATALOG'];} $otprav = $_POST["ajhvfcf"]; if ($otprav=='Подтвердить подписку'){ echo 'Подтвердить подписку'; array_push($EstB, $_GET['podpiska']); $user = new CUser; $fields = Array( "UF_CATALOG_BENZO" => Array($EstB) ); if ($oki=$user->Update($ID, $fields)){ echo 'Подписка добавлена'; $ura=true; }else{ $strError .= $user->LAST_ERROR; }} [/CODE]т.е. получаю текущий id пользователя по нему получаю список пользовательских полей далее если была отправлена форма на подписку то у текущего пользователя обновляю массив пользовательского свойства и сохраняю все отлично сохраняется - в админке есть закрываю страницу открываю снова, а массив пустой , иду в админку, а там пусто
т.е. поля затираются сами что может быть и как с этим бороться?
условие можете точно так же поставить если есть галочка, то выводите, так же как и в детальном вы сделали
[CODE]<?if ($arResult["PROPERTIES"]["ЗНАЧЕНИЕ__СВОЙСТВО"]["VALUE"]=='значение свойства') {?> тут то что вам нужно<?}?>[/CODE]вопрос больше в другом у вас в $arResult приходят нужные вам свойства PROPERTIES или нет, а то может вы пытаетесь вывести то чего нет? поставьте [CODE]echo '<pre>';print_r($arResult);echo '</pre>'; [/CODE]и вы увидите есть ли у вас ваши данные которые вы хотите вывести или нет
в общем в настройках этого нет, html-код вообще отсутствует (хотя обработка свойств в файле order_new есть) - поэтому пришлось ручками править. при этом там перепутали названия полей и когда добавляешь поле "Дополнительная информация", то при просмотре заказа непонятно от кого комментарий от пользователя при заказе или от менеджера при обработке
кстати , может кому пригодится информация, ссылки на редактирование элемента из обработки заказа с ошибкой - там напрямую указан тип инфоблока catalog, если у вас тип, например product, то будет косяк. в файле order_detail такой же косяк.
раньше в заказах было значение "дополнительная информация" в 12 версии используется другой файл-обработчик и в нем нет этого поля. кроме как залезть в модуль и вручную добавить вернуть его никак нельзя через настройки?
ситуация такая: интернет магазин, люди делают заказы, все хорошо. администратор провереят, выставляет статусы и если вдруг необходимо меняет содержимое заказа и тут как раз приходит заказ - человек заказал 30 позиций, потом позвонил и сказал что он передумал и нужно 5 убрать. администратор заходит в заказ выбирает изменить его, удаляет не нужные позиции, нажимает сохранить и тут ему выводится ошибка "Заказ не может быть пустым" переходим на закладку состав заказа и видим что нет ни одной позиции - поэтому и нельзя сохранить изменения.
все остальные заказы правятся спокойно, и удаляются позиции и добавляются новые и сохраняется все.
до 12 битрикс не обновлялся, пока на 11 еще
еще момент заметил, когда открываешь на изменение заказа, только этого, и нажимаешь отменить ничего не трогая, тоже выдает что заказ не может быть пустым и позиции обнуляет