当前位置: 首页>>代码示例>>PHP>>正文


PHP Event::send方法代码示例

本文整理汇总了PHP中Bitrix\Main\Event::send方法的典型用法代码示例。如果您正苦于以下问题:PHP Event::send方法的具体用法?PHP Event::send怎么用?PHP Event::send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Bitrix\Main\Event的用法示例。


在下文中一共展示了Event::send方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getInstance

 private static function getInstance()
 {
     if (self::$instance) {
         return self::$instance;
     }
     $loader = new BitrixLoader($_SERVER['DOCUMENT_ROOT']);
     $c = Configuration::getInstance();
     $config = $c->get('maximaster');
     $twigConfig = (array) $config['tools']['twig'];
     $defaultConfig = array('debug' => false, 'charset' => SITE_CHARSET, 'cache' => $_SERVER['DOCUMENT_ROOT'] . '/bitrix/cache/maximaster/tools.twig', 'auto_reload' => isset($_GET['clear_cache']) && strtoupper($_GET['clear_cache']) == 'Y', 'autoescape' => false);
     $twigOptions = array_merge($defaultConfig, $twigConfig);
     $twig = new \Twig_Environment($loader, $twigOptions);
     if ($twig->isDebug()) {
         $twig->addExtension(new \Twig_Extension_Debug());
     }
     $twig->addExtension(new BitrixExtension());
     $twig->addExtension(new CustomFunctionsExtension());
     $event = new Event('', 'onAfterTwigTemplateEngineInited', array($twig));
     $event->send();
     if ($event->getResults()) {
         foreach ($event->getResults() as $evenResult) {
             if ($evenResult->getType() == \Bitrix\Main\EventResult::SUCCESS) {
                 $twig = current($evenResult->getParameters());
             }
         }
     }
     return self::$instance = $twig;
 }
开发者ID:mlavrinenko,项目名称:tools.twig,代码行数:28,代码来源:TemplateEngine.php

示例2: initClassesList

 public static function initClassesList()
 {
     if (static::$classes !== null) {
         return true;
     }
     $classes = array('\\Bitrix\\Sale\\Delivery\\ExtraServices\\Enum' => 'lib/delivery/extra_services/enum.php', '\\Bitrix\\Sale\\Delivery\\ExtraServices\\Store' => 'lib/delivery/extra_services/store.php', '\\Bitrix\\Sale\\Delivery\\ExtraServices\\String' => 'lib/delivery/extra_services/string.php', '\\Bitrix\\Sale\\Delivery\\ExtraServices\\Checkbox' => 'lib/delivery/extra_services/checkbox.php');
     \Bitrix\Main\Loader::registerAutoLoadClasses('sale', $classes);
     unset($classes['\\Bitrix\\Sale\\Delivery\\ExtraServices\\Store']);
     static::$classes = array_keys($classes);
     $event = new Event('sale', 'onSaleDeliveryExtraServicesClassNamesBuildList');
     $event->send();
     $resultList = $event->getResults();
     if (is_array($resultList) && !empty($resultList)) {
         $customClasses = array();
         foreach ($resultList as $eventResult) {
             /** @var  EventResult $eventResult*/
             if ($eventResult->getType() != EventResult::SUCCESS) {
                 throw new SystemException("Can't add custom tracking class successfully");
             }
             $params = $eventResult->getParameters();
             if (!empty($params) && is_array($params)) {
                 $customClasses = array_merge($customClasses, $params);
             }
         }
         if (!empty($customClasses)) {
             \Bitrix\Main\Loader::registerAutoLoadClasses(null, $customClasses);
             $classes = array_merge($customClasses, $classes);
         }
     }
     static::$classes = array_merge(array_keys($classes), static::$classes);
     return static::$classes;
 }
开发者ID:webgksupport,项目名称:alpina,代码行数:32,代码来源:manager.php

示例3: clearCollection

 public function clearCollection()
 {
     /** @var Main\Entity\Event $event */
     $event = new Main\Event('sale', 'OnBeforeCollectionClear', array('COLLECTION' => $this->collection));
     $event->send();
     /** @var CollectableEntity $item */
     foreach ($this->collection as $item) {
         $item->delete();
     }
 }
开发者ID:Satariall,项目名称:izurit,代码行数:10,代码来源:entitycollection.php

示例4: getList

 /**
  * @return array
  */
 public static function getList()
 {
     $resultList = array();
     $event = new Event('sender', 'OnPresetMailBlockList');
     $event->send();
     foreach ($event->getResults() as $eventResult) {
         if ($eventResult->getType() == EventResult::ERROR) {
             continue;
         }
         $eventResultParameters = $eventResult->getParameters();
         if (!empty($eventResultParameters)) {
             $resultList = array_merge($resultList, $eventResultParameters);
         }
     }
     return $resultList;
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:19,代码来源:mailblock.php

示例5: addExtensions

 /**
  * Добавляет расширения, в том числе расширение для битрикса,
  * в котором добавляются нужные глобальные переменные и т.п.
  */
 private function addExtensions()
 {
     $this->getEnvironment()->addExtension(new \Twig_Extension_Debug());
     $this->getEnvironment()->addExtension(new BitrixExtension());
     $event = new Event('wlbl.twigrix', 'onAddExtensions');
     $event->send();
     foreach ($event->getResults() as $result) {
         if ($result->getType() == EventResult::SUCCESS) {
             foreach ($result->getParameters() as $extension) {
                 if ($extension instanceof \Twig_Extension) {
                     $this->getEnvironment()->addExtension($extension);
                 }
             }
         }
     }
 }
开发者ID:wlbl,项目名称:twigrix,代码行数:20,代码来源:templateengine.php

示例6: testUseHandlerClassParams

 public function testUseHandlerClassParams()
 {
     $eventType = EventType::createByParams("ws.tools", "test");
     $this->manager()->subscribe($eventType, $handler = new TestHandler(array('init params')));
     $this->manager()->trigger($eventType, array('process params'));
     $history = $handler->getHistory();
     $this->assertEquals($history[0], array('identity', array('init params'), array('process params')));
     $this->assertEquals($history[1], array('process', array('init params'), array('process params')));
     $this->manager()->trigger($eventType, array('process2 params'));
     $history = $handler->getHistory();
     $this->assertEquals($history[3], array('process', array('init params'), array('process2 params')));
     $e = new Event("ws.tools", "test", array('process3 params'));
     $e->send($this);
     $history = $handler->getHistory();
     $this->assertEquals($history[5], array('process', array('init params'), array('process3 params')));
 }
开发者ID:Under5,项目名称:bitrix-module-tools,代码行数:16,代码来源:eventmanagertestcase.php

示例7: __construct

 protected function __construct()
 {
     $event = new Main\Event("main", "OnApplicationsBuildList");
     $event->send();
     foreach ($event->getResults() as $eventResult) {
         $result = $eventResult->getParameters();
         if (is_array($result)) {
             if (!is_array($result[0])) {
                 $result = array($result);
             }
             foreach ($result as $app) {
                 $this->applications[$app["ID"]] = $app;
             }
         }
     }
     Main\Type\Collection::sortByColumn($this->applications, "SORT");
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:17,代码来源:applicationmanager.php

示例8: generateInitEvent

 /**
  * Создается событие для внесения в Twig изменения из проекта
  */
 private function generateInitEvent()
 {
     $eventName = 'onAfterTwigTemplateEngineInited';
     $event = new Event('', $eventName, array($this->engine));
     $event->send();
     if ($event->getResults()) {
         foreach ($event->getResults() as $evenResult) {
             if ($evenResult->getType() == \Bitrix\Main\EventResult::SUCCESS) {
                 $twig = current($evenResult->getParameters());
                 if (!$twig instanceof \Twig_Environment) {
                     throw new \LogicException("Событие '{$eventName}' должно возвращать экземпляр класса '\\Twig_Environment' при успешной отработке");
                 }
                 $this->engine = $twig;
             }
         }
     }
 }
开发者ID:maximaster,项目名称:tools.twig,代码行数:20,代码来源:TemplateEngine.php

示例9: save

 /**
  * @return Entity\AddResult|Entity\UpdateResult
  * @throws Main\ArgumentOutOfRangeException
  * @throws Main\ObjectNotFoundException
  * @throws \Exception
  */
 public function save()
 {
     $id = $this->getId();
     $fields = $this->fields->getValues();
     if ($id > 0) {
         $fields = $this->fields->getChangedValues();
         if (!empty($fields) && is_array($fields)) {
             //				$fields['DATE_UPDATE'] = new Main\Type\DateTime();
             $r = Internals\ShipmentTable::update($id, $fields);
             if (!$r->isSuccess()) {
                 return $r;
             }
         }
         $result = new Entity\UpdateResult();
         if (!empty($fields['TRACKING_NUMBER'])) {
             $oldEntityValues = $this->fields->getOriginalValues();
             /** @var Main\Event $event */
             $event = new Main\Event('sale', EventActions::EVENT_ON_SHIPMENT_TRACKING_NUMBER_CHANGE, array('ENTITY' => $this, 'VALUES' => $oldEntityValues));
             $event->send();
         }
     } else {
         $fields['ORDER_ID'] = $this->getParentOrderId();
         $fields['DATE_INSERT'] = new Main\Type\DateTime();
         $fields['SYSTEM'] = $fields['SYSTEM'] ? 'Y' : 'N';
         $r = Internals\ShipmentTable::add($fields);
         if (!$r->isSuccess()) {
             return $r;
         }
         $id = $r->getId();
         $this->setFieldNoDemand('ID', $id);
         $result = new Entity\AddResult();
         /** @var ShipmentItemCollection $shipmentItemCollection */
         if (!($shipmentItemCollection = $this->getShipmentItemCollection())) {
             throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
         }
         /** @var Shipment $shipment */
         if (!($shipment = $shipmentItemCollection->getShipment())) {
             throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
         }
         /** @var ShipmentCollection $shipmentCollection */
         if (!($shipmentCollection = $shipment->getCollection())) {
             throw new Main\ObjectNotFoundException('Entity "ShipmentCollection" not found');
         }
         /** @var Order $order */
         if (!($order = $shipmentCollection->getOrder())) {
             throw new Main\ObjectNotFoundException('Entity "Order" not found');
         }
         if ($order->getId() > 0 && !$this->isSystem()) {
             OrderHistory::addAction('SHIPMENT', $order->getId(), 'SHIPMENT_ADDED', $id, $this);
         }
     }
     if ($result->isSuccess() && !$this->isSystem()) {
         $this->saveExtraServices();
         $this->saveStoreId();
     }
     /** @var ShipmentItemCollection $shipmentItemCollection */
     if (!($shipmentItemCollection = $this->getShipmentItemCollection())) {
         throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
     }
     $r = $shipmentItemCollection->save();
     if (!$r->isSuccess()) {
         $result->addErrors($r->getErrors());
     }
     if ($result->isSuccess()) {
         /** @var Shipment $shipment */
         if (!($shipment = $shipmentItemCollection->getShipment())) {
             throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
         }
         /** @var ShipmentCollection $shipmentCollection */
         if (!($shipmentCollection = $shipment->getCollection())) {
             throw new Main\ObjectNotFoundException('Entity "ShipmentCollection" not found');
         }
         /** @var Order $order */
         if (!($order = $shipmentCollection->getOrder())) {
             throw new Main\ObjectNotFoundException('Entity "Order" not found');
         }
         if (!$this->isSystem()) {
             OrderHistory::collectEntityFields('SHIPMENT', $order->getId(), $id);
         }
     }
     return $result;
 }
开发者ID:andy-profi,项目名称:bxApiDocs,代码行数:88,代码来源:shipment.php

示例10: send

 /**
  * @param $id
  * @param int $timeout
  * @param int $maxMailCount
  * @return bool|string
  * @throws \Bitrix\Main\ArgumentException
  * @throws \Bitrix\Main\DB\Exception
  * @throws \Bitrix\Main\Db\SqlQueryException
  * @throws \Exception
  */
 public static function send($id, $timeout = 0, $maxMailCount = 0)
 {
     $start_time = getmicrotime();
     @set_time_limit(0);
     static::$emailSentPerIteration = 0;
     $postingDb = PostingTable::getList(array('select' => array('ID', 'STATUS', 'MAILING_ID', 'MAILING_CHAIN_ID', 'MAILING_CHAIN_REITERATE' => 'MAILING_CHAIN.REITERATE', 'MAILING_CHAIN_IS_TRIGGER' => 'MAILING_CHAIN.IS_TRIGGER'), 'filter' => array('ID' => $id, 'MAILING.ACTIVE' => 'Y', 'MAILING_CHAIN.STATUS' => MailingChainTable::STATUS_SEND)));
     $postingData = $postingDb->fetch();
     // posting not found
     if (!$postingData) {
         return static::SEND_RESULT_ERROR;
     }
     // if posting in new status, then import recipients from groups and set right status for sending
     $isInitGroupRecipients = false;
     $isChangeStatusToPart = false;
     if ($postingData["STATUS"] == PostingTable::STATUS_NEW) {
         $isInitGroupRecipients = true;
         $isChangeStatusToPart = true;
     }
     if ($postingData["STATUS"] != PostingTable::STATUS_PART && $postingData["MAILING_CHAIN_IS_TRIGGER"] == 'Y') {
         $isInitGroupRecipients = false;
         $isChangeStatusToPart = true;
     }
     if ($isInitGroupRecipients) {
         PostingTable::initGroupRecipients($postingData['ID']);
     }
     if ($isChangeStatusToPart) {
         PostingTable::update(array('ID' => $postingData['ID']), array('STATUS' => PostingTable::STATUS_PART));
         $postingData["STATUS"] = PostingTable::STATUS_PART;
     }
     // posting not in right status
     if ($postingData["STATUS"] != PostingTable::STATUS_PART) {
         return static::SEND_RESULT_ERROR;
     }
     // lock posting for exclude double parallel sending
     if (static::lockPosting($id) === false) {
         throw new \Bitrix\Main\DB\Exception(Loc::getMessage('SENDER_POSTING_MANAGER_ERR_LOCK'));
     }
     // select all recipients of posting, only not processed
     $recipientDataDb = PostingRecipientTable::getList(array('filter' => array('POSTING_ID' => $postingData['ID'], 'STATUS' => PostingRecipientTable::SEND_RESULT_NONE), 'limit' => $maxMailCount));
     while ($recipientData = $recipientDataDb->fetch()) {
         // create name from email
         $recipientEmail = $recipientData["EMAIL"];
         if (empty($recipientData["NAME"])) {
             $recipientEmailParts = explode('@', $recipientEmail);
             $recipientName = $recipientEmailParts[0];
         } else {
             $recipientName = $recipientData["NAME"];
         }
         // prepare params for send
         $sendParams = array('FIELDS' => array('EMAIL_TO' => $recipientEmail, 'NAME' => $recipientName, 'USER_ID' => $recipientData["USER_ID"], 'SENDER_CHAIN_CODE' => 'sender_chain_item_' . $postingData["MAILING_CHAIN_ID"], 'UNSUBSCRIBE_LINK' => Subscription::getLinkUnsub(array('MAILING_ID' => $postingData['MAILING_ID'], 'EMAIL' => $recipientEmail, 'RECIPIENT_ID' => $recipientData["ID"]))), 'TRACK_READ' => array('MODULE_ID' => "sender", 'FIELDS' => array('RECIPIENT_ID' => $recipientData["ID"])), 'TRACK_CLICK' => array('MODULE_ID' => "sender", 'FIELDS' => array('RECIPIENT_ID' => $recipientData["ID"]), 'URL_PARAMS' => array('bx_sender_conversion_id' => $recipientData["ID"])));
         if (is_array($recipientData['FIELDS']) && count($recipientData) > 0) {
             $sendParams['FIELDS'] = $sendParams['FIELDS'] + $recipientData['FIELDS'];
         }
         // set sending result to recipient
         $mailSendResult = static::sendInternal($postingData['MAILING_CHAIN_ID'], $sendParams);
         PostingRecipientTable::update(array('ID' => $recipientData["ID"]), array('STATUS' => $mailSendResult, 'DATE_SENT' => new Type\DateTime()));
         // send event
         $eventData = array('SEND_RESULT' => $mailSendResult == PostingRecipientTable::SEND_RESULT_SUCCESS, 'RECIPIENT' => $recipientData, 'POSTING' => $postingData);
         $event = new Event('sender', 'OnAfterPostingSendRecipient', array($eventData));
         $event->send();
         // limit executing script by time
         if ($timeout > 0 && getmicrotime() - $start_time >= $timeout) {
             break;
         }
         // increment sending statistic
         static::$emailSentPerIteration++;
     }
     //set status and delivered and error emails
     $statusList = PostingTable::getRecipientCountByStatus($id);
     if (!array_key_exists(PostingRecipientTable::SEND_RESULT_NONE, $statusList)) {
         if (array_key_exists(PostingRecipientTable::SEND_RESULT_ERROR, $statusList)) {
             $STATUS = PostingTable::STATUS_SENT_WITH_ERRORS;
         } else {
             $STATUS = PostingTable::STATUS_SENT;
         }
         $DATE = new Type\DateTime();
     } else {
         $STATUS = PostingTable::STATUS_PART;
         $DATE = null;
     }
     // unlock posting for exclude double parallel sending
     static::unlockPosting($id);
     // update status of posting
     PostingTable::update(array('ID' => $id), array('STATUS' => $STATUS, 'DATE_SENT' => $DATE));
     // return status to continue or end of sending
     if ($STATUS == PostingTable::STATUS_PART) {
         return static::SEND_RESULT_CONTINUE;
     } else {
         return static::SEND_RESULT_SENT;
     }
//.........这里部分代码省略.........
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:101,代码来源:postingmanager.php

示例11: addUser

 /**
  * Add new user to b_user table.
  * Returns its identifier or false on failure.
  *
  * @param array $params
  *
  * @return integer|false
  */
 public function addUser($params)
 {
     if (!$this->isEnabled()) {
         $this->errorCollection[] = new Error(Loc::getMessage('B24NET_NETWORK_IN_NOT_ENABLED'), self::ERROR_NETWORK_IN_NOT_ENABLED);
         return false;
     }
     $password = md5($params['XML_ID'] . '|' . $params['CLIENT_DOMAIN'] . '|' . rand(1000, 9999) . '|' . time() . '|' . uniqid());
     $photo = \CFile::MakeFileArray($params['PERSONAL_PHOTO_ORIGINAL']);
     $groups = array();
     if (Loader::includeModule('extranet')) {
         $groups[] = \CExtranet::GetExtranetUserGroupID();
     }
     $addParams = array('LOGIN' => $params['NETWORK_USER_ID'] . '@' . $params['CLIENT_DOMAIN'], 'NAME' => $params['NAME'], 'EMAIL' => $params['EMAIL'], 'LAST_NAME' => $params['LAST_NAME'], 'SECOND_NAME' => $params['SECOND_NAME'], 'PERSONAL_GENDER' => $params['PERSONAL_GENDER'], 'PERSONAL_PHOTO' => $photo, 'WORK_POSITION' => $params['CLIENT_DOMAIN'], 'XML_ID' => $params['XML_ID'], 'EXTERNAL_AUTH_ID' => self::EXTERNAL_AUTH_ID, "ACTIVE" => "Y", "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "GROUP_ID" => $groups);
     if (isset($params['EMAIL'])) {
         $addParams['EMAIL'] = $params['EMAIL'];
     }
     $user = new \CUser();
     $userId = $user->Add($addParams);
     if (intval($userId) <= 0) {
         $this->errorCollection[] = new Error($user->LAST_ERROR, self::ERROR_REGISTER_USER);
         return false;
     }
     $event = new Event("socialservices", "OnAfterRegisterUserByNetwork", array($userId, $params['NETWORK_USER_ID'], $params['CLIENT_DOMAIN']));
     $event->send();
     return $userId;
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:34,代码来源:network.php

示例12: save

 /**
  * @return Entity\Result|bool
  * @throws \Bitrix\Main\ArgumentException
  * @throws \Bitrix\Main\ArgumentNullException
  */
 public function save()
 {
     $result = new Result();
     /** @var Order $order */
     $order = $this->getOrder();
     $itemsFromDb = array();
     $filter = array();
     if (!$order) {
         /** @var Main\Entity\Event $event */
         $event = new Main\Event('sale', EventActions::EVENT_ON_BASKET_BEFORE_SAVED, array('ENTITY' => $this));
         $event->send();
         if ($event->getResults()) {
             $result = new Result();
             /** @var Main\EventResult $eventResult */
             foreach ($event->getResults() as $eventResult) {
                 if ($eventResult->getType() == Main\EventResult::ERROR) {
                     $errorMsg = new ResultError(Main\Localization\Loc::getMessage('SALE_EVENT_ON_BEFORE_BASKET_SAVED'), 'SALE_EVENT_ON_BEFORE_BASKET_SAVED');
                     if (isset($eventResultData['ERROR']) && $eventResultData['ERROR'] instanceof ResultError) {
                         $errorMsg = $eventResultData['ERROR'];
                     }
                     $result->addError($errorMsg);
                 }
             }
             if (!$result->isSuccess()) {
                 return $result;
             }
         }
     }
     $isNew = $order && $order->isNew() ? true : false;
     if ($order && !$isNew) {
         $filter['ORDER_ID'] = $order->getId();
     } else {
         if ($this->isLoadForFuserId()) {
             $filter = array('FUSER_ID' => $this->getFUserId(), 'ORDER_ID' => null, 'LID' => $this->getSiteId());
         }
         if ($isNew) {
             $fUserId = $this->getFUserId(true);
             if ($fUserId <= 0) {
                 $userId = $order->getUserId();
                 if (intval($userId) > 0) {
                     $fUserId = Fuser::getIdByUserId($userId);
                     if ($fUserId > 0) {
                         $this->setFUserId($fUserId);
                     }
                 }
             }
         }
     }
     if (!empty($filter)) {
         $itemsFromDbList = Internals\BasketTable::getList(array("filter" => $filter, "select" => array("ID", 'TYPE', 'SET_PARENT_ID', 'PRODUCT_ID', 'NAME', 'QUANTITY')));
         while ($itemsFromDbItem = $itemsFromDbList->fetch()) {
             if (intval($itemsFromDbItem['SET_PARENT_ID']) > 0 && intval($itemsFromDbItem['SET_PARENT_ID']) != $itemsFromDbItem['ID']) {
                 continue;
             }
             $itemsFromDb[$itemsFromDbItem["ID"]] = $itemsFromDbItem;
         }
     }
     /** @var BasketItem $basketItem */
     foreach ($this->collection as $index => $basketItem) {
         $r = $basketItem->save();
         if (!$r->isSuccess()) {
             $result->addErrors($r->getErrors());
         }
         if (isset($itemsFromDb[$basketItem->getId()]) && $basketItem->getQuantity() > 0) {
             unset($itemsFromDb[$basketItem->getId()]);
         }
     }
     if (!empty($filter)) {
         foreach ($itemsFromDb as $k => $v) {
             if ($v['TYPE'] == static::TYPE_SET) {
                 Internals\BasketTable::deleteBundle($k);
             } else {
                 Internals\BasketTable::deleteWithItems($k);
             }
             /** @var Order $order */
             if ($order && $order->getId() > 0) {
                 OrderHistory::addAction('BASKET', $order->getId(), 'BASKET_REMOVED', $k, null, array('NAME' => $v['NAME'], 'QUANTITY' => $v['QUANTITY'], 'PRODUCT_ID' => $v['PRODUCT_ID']));
             }
         }
     }
     if ($order && $order->getId() > 0) {
         OrderHistory::collectEntityFields('BASKET', $order->getId());
     }
     if (!$order) {
         /** @var Main\Entity\Event $event */
         $event = new Main\Event('sale', EventActions::EVENT_ON_BASKET_SAVED, array('ENTITY' => $this));
         $event->send();
         if ($event->getResults()) {
             $result = new Result();
             /** @var Main\EventResult $eventResult */
             foreach ($event->getResults() as $eventResult) {
                 if ($eventResult->getType() == Main\EventResult::ERROR) {
                     $errorMsg = new ResultError(Main\Localization\Loc::getMessage('SALE_EVENT_ON_BASKET_SAVED'), 'SALE_EVENT_ON_BASKET_SAVED');
                     if (isset($eventResultData['ERROR']) && $eventResultData['ERROR'] instanceof ResultError) {
                         $errorMsg = $eventResultData['ERROR'];
//.........这里部分代码省略.........
开发者ID:webgksupport,项目名称:alpina,代码行数:101,代码来源:basket.php

示例13: initializeShell

 /**
  * Initializes application shell. Called after initializeKernel.
  *
  * @param System\IApplicationStrategy $initStrategy
  */
 protected function initializeShell(\Bitrix\Main\System\IApplicationStrategy $initStrategy = null)
 {
     $this->authenticateUser();
     if ($initStrategy != null) {
         $initStrategy->authenticateUser();
     }
     define("BX_STARTED", true);
     // required for iblock to define site
     //magic parameters: show page creation time
     if ($_GET["show_page_exec_time"] == "Y" || $_GET["show_page_exec_time"] == "N") {
         $_SESSION["SESS_SHOW_TIME_EXEC"] = $_GET["show_page_exec_time"];
     }
     //magic parameters: show included file processing time
     if ($_GET["show_include_exec_time"] == "Y" || $_GET["show_include_exec_time"] == "N") {
         $_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"] = $_GET["show_include_exec_time"];
     }
     //magic parameters: show include areas
     if (isset($_GET["bitrix_include_areas"]) && $_GET["bitrix_include_areas"] != "") {
         $GLOBALS["APPLICATION"]->setShowIncludeAreas($_GET["bitrix_include_areas"] == "Y");
     }
     //magic sound
     /** @var $context HttpContext */
     $context = $this->context;
     $user = $context->getUser();
     /** @var $request HttpRequest */
     $request = $context->getRequest();
     if ($user->isAuthenticated() && $request->getCookie("SOUND_LOGIN_PLAYED") == null) {
         /** @var $response HttpResponse */
         $response = $context->getResponse();
         $response->addCookie(new \Bitrix\Main\Web\Cookie('SOUND_LOGIN_PLAYED', 'Y', 0));
     }
     $event = new Event("main", "OnBeforeProlog");
     $event->send();
     $this->authorizeUser();
     if ($initStrategy != null) {
         $initStrategy->authorizeUser();
     }
 }
开发者ID:k-kalashnikov,项目名称:geekcon_new,代码行数:43,代码来源:httpapplication.php

示例14: save

 /**
  * @return Entity\AddResult|Entity\UpdateResult
  * @throws ArgumentException
  * @throws ArgumentNullException
  * @throws \Exception
  */
 public function save()
 {
     $id = $this->getId();
     $changedFields = $this->fields->getChangedValues();
     $isNew = $id <= 0;
     if (!empty($changedFields)) {
         /** @var array $oldEntityValues */
         $oldEntityValues = $this->fields->getOriginalValues();
         /** @var Event $event */
         $event = new Event('sale', EventActions::EVENT_ON_BASKET_ITEM_BEFORE_SAVED, array('ENTITY' => $this, 'IS_NEW' => $isNew, 'VALUES' => $oldEntityValues));
         $event->send();
         if ($event->getResults()) {
             $result = new Result();
             /** @var EventResult $eventResult */
             foreach ($event->getResults() as $eventResult) {
                 if ($eventResult->getType() == EventResult::ERROR) {
                     $errorMsg = new ResultError(Loc::getMessage('SALE_EVENT_ON_BEFORE_BASKET_ITEM_SAVED'), 'SALE_EVENT_ON_BEFORE_BASKET_ITEM_SAVED');
                     if (isset($eventResultData['ERROR']) && $eventResultData['ERROR'] instanceof ResultError) {
                         $errorMsg = $eventResultData['ERROR'];
                     }
                     $result->addError($errorMsg);
                 }
             }
             if (!$result->isSuccess()) {
                 return $result;
             }
         }
     }
     $fields = $this->fields->getValues();
     if ($this->isBundleParent()) {
         $bundleBasketCollection = $this->getBundleCollection();
     }
     if ($id > 0) {
         $fields = $changedFields;
         if (!isset($fields["ORDER_ID"]) || intval($fields["ORDER_ID"]) == 0) {
             $orderId = null;
             if ($this->getParentOrderId() > 0) {
                 $orderId = $this->getParentOrderId();
             }
             if ($this->isBundleChild() && $orderId === null) {
                 /** @var BasketItem $parentBasket */
                 if (!($parentBasket = $this->getParentBasketItem())) {
                     throw new ObjectNotFoundException('Entity parent "BasketItem" not found');
                 }
                 $orderId = $parentBasket->getParentOrderId();
             }
             if (intval($orderId) > 0 && $this->getField('ORDER_ID') != $orderId) {
                 $fields['ORDER_ID'] = $orderId;
             }
         }
         if (!empty($fields) && is_array($fields)) {
             if (isset($fields["QUANTITY"]) && floatval($fields["QUANTITY"]) == 0) {
                 return new Entity\UpdateResult();
             }
             $fields['DATE_UPDATE'] = new DateTime();
             $this->setFieldNoDemand('DATE_UPDATE', $fields['DATE_UPDATE']);
             $r = Internals\BasketTable::update($id, $fields);
             if (!$r->isSuccess()) {
                 return $r;
             }
         }
         $result = new Entity\UpdateResult();
     } else {
         $fields['ORDER_ID'] = $this->getParentOrderId();
         $fields['DATE_INSERT'] = new DateTime();
         $fields['DATE_UPDATE'] = new DateTime();
         $this->setFieldNoDemand('DATE_INSERT', $fields['DATE_INSERT']);
         $this->setFieldNoDemand('DATE_UPDATE', $fields['DATE_UPDATE']);
         if (!$this->isBundleChild() && (!isset($fields["FUSER_ID"]) || intval($fields["FUSER_ID"]) <= 0)) {
             /** @var Basket $basket */
             if (!($basket = $this->getCollection())) {
                 throw new ObjectNotFoundException('Entity "Basket" not found');
             }
             $fields["FUSER_ID"] = intval($basket->getFUserId());
         }
         /** @var Basket $basket */
         if (!($basket = $this->getCollection())) {
             throw new ObjectNotFoundException('Entity "Basket" not found');
         }
         /** @var Order $order */
         if ($order = $basket->getOrder()) {
             if (!isset($fields["LID"]) || strval($fields["LID"]) == '') {
                 $fields['LID'] = $order->getField('LID');
             }
         } else {
             if ($siteId = $basket->getSiteId()) {
                 $fields['LID'] = $siteId;
             }
         }
         if ($this->isBundleChild()) {
             if (!($parentBasketItem = $this->getParentBasketItem())) {
                 throw new ObjectNotFoundException('Entity parent "BasketItem" not found');
             }
             $fields['LID'] = $parentBasketItem->getField('LID');
//.........这里部分代码省略.........
开发者ID:andy-profi,项目名称:bxApiDocs,代码行数:101,代码来源:basketitem.php

示例15: setFields

 /**
  *
  * @param array $values
  * @return Result
  * @throws Main\ArgumentOutOfRangeException
  * @throws Main\NotSupportedException
  * @throws \Exception
  */
 public function setFields(array $values)
 {
     $resultData = array();
     $result = new Result();
     $oldValues = null;
     foreach ($values as $key => $value) {
         $oldValues[$key] = $this->fields->get($key);
     }
     if ($eventName = static::getEntityEventName()) {
         $event = new Main\Event('sale', 'OnBefore' . $eventName . 'SetFields', array('ENTITY' => $this, 'VALUES' => $values, 'OLD_VALUES' => $oldValues));
         $event->send();
         if ($event->getResults()) {
             /** @var Main\EventResult $eventResult */
             foreach ($event->getResults() as $eventResult) {
                 if ($eventResult->getType() == Main\EventResult::SUCCESS) {
                     if ($eventResultData = $eventResult->getParameters()) {
                         if (isset($eventResultData['VALUES'])) {
                             $values = $eventResultData['VALUES'];
                         }
                     }
                 } elseif ($eventResult->getType() == Main\EventResult::ERROR) {
                     $errorMsg = new ResultError(Main\Localization\Loc::getMessage('SALE_EVENT_ON_BEFORE_' . strtoupper($eventName) . '_SET_FIELDS_ERROR'), 'SALE_EVENT_ON_BEFORE_' . strtoupper($eventName) . '_SET_FIELDS_ERROR');
                     if ($eventResultData = $eventResult->getParameters()) {
                         if (isset($eventResultData['ERROR']) && $eventResultData['ERROR'] instanceof ResultError) {
                             $errorMsg = $eventResultData['ERROR'];
                         }
                     }
                     $result->addError($errorMsg);
                 }
             }
         }
     }
     if (!$result->isSuccess()) {
         return $result;
     }
     $isStartField = $this->isStartField();
     foreach ($values as $key => $value) {
         $r = $this->setField($key, $value);
         if (!$r->isSuccess()) {
             $data = $r->getData();
             if (!empty($data) && is_array($data)) {
                 $resultData = array_merge($resultData, $data);
             }
             $result->addErrors($r->getErrors());
         }
     }
     if (!empty($resultData)) {
         $result->setData($resultData);
     }
     if ($isStartField) {
         $hasMeaningfulFields = $this->hasMeaningfulField();
         /** @var Result $r */
         $r = $this->doFinalAction($hasMeaningfulFields);
         if (!$r->isSuccess()) {
             $result->addErrors($r->getErrors());
         } else {
             if (($data = $r->getData()) && !empty($data) && is_array($data)) {
                 $result->setData($result->getData() + $data);
             }
         }
     }
     return $result;
 }
开发者ID:webgksupport,项目名称:alpina,代码行数:71,代码来源:entity.php


注:本文中的Bitrix\Main\Event::send方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。