コード例 #1
0
ファイル: folderinvite.php プロジェクト: DarneoStudio/bitrix
 /**
  * @param array $data
  * @return Entity\AddResult
  */
 public static function addIfNonExists(array $data)
 {
     $filter = array_intersect_key($data, array('INVITE_USER_ID' => true, 'IBLOCK_ID' => true, 'SECTION_ID' => true));
     $row = static::getRow(array('filter' => $filter, 'select' => array('ID', 'IS_DELETED')));
     //if we add new invite by old deleted invite, then we delete old and add new.
     if ($row && empty($data['IS_DELETED']) && $row['IS_DELETED']) {
         static::delete($row['ID']);
     } elseif ($row) {
         $result = new \Bitrix\Main\Entity\AddResult();
         $result->setId($row['ID']);
         return $result;
     }
     return static::add($data);
 }
コード例 #2
0
 /**
  * Save link user filter with filter
  * Requirement fields: USER_ID, FILTER_ID
  *
  * @param array $fields
  * @return \Bitrix\Main\Entity\AddResult
  * @throws \InvalidArgumentException
  */
 public function addFilterUser(array $fields)
 {
     $userId = $fields['USER_ID'];
     $userData = \CUser::GetById($userId)->GetNext();
     if ($this->isEmptyResult($userData)) {
         throw new \InvalidArgumentException('Invalid USER_ID');
     }
     $queryBuilder = new Entity\Query(Model\SubscribeTable::getEntity());
     $subscribe = $queryBuilder->setSelect(array('ID'))->setFilter(array('ID' => $fields['FILTER_ID']))->exec()->fetch();
     if ($this->isEmptyResult($subscribe)) {
         throw new \InvalidArgumentException('Invalid FILTER_ID');
     }
     $filterUserData = Model\SubscribeUserTable::getList(array('select' => array('ID'), 'filter' => array('USER_ID' => $userId, 'FILTER_ID' => $subscribe['ID'])))->fetch();
     if (!$this->isEmptyResult($filterUserData)) {
         $addResult = new \Bitrix\Main\Entity\AddResult();
         $addResult->setId($filterUserData['ID']);
         return $addResult;
     }
     $filterUserResult = Model\SubscribeUserTable::add(array('USER_ID' => $userData['ID'], 'FILTER_ID' => $subscribe['ID']));
     if ($filterUserResult->isSuccess()) {
         Model\SubscribeStackTable::add(array('FILTER_USER_ID' => $filterUserResult->getId(), 'ACTION' => 'INSERT'));
     }
     return $filterUserResult;
 }