Example #1
0
             $arItem['CATALOG_MEASURE'] = 0;
         }
         if (!isset($arItem['CATALOG_MEASURE_NAME'])) {
             $arItem['CATALOG_MEASURE_NAME'] = '';
         }
         $arItem['CATALOG_MEASURE_NAME'] = $arDefaultMeasure['SYMBOL_RUS'];
         $arItem['~CATALOG_MEASURE_NAME'] = $arDefaultMeasure['~SYMBOL_RUS'];
         if (0 < $arItem['CATALOG_MEASURE']) {
             if (!isset($arMeasureMap[$arItem['CATALOG_MEASURE']])) {
                 $arMeasureMap[$arItem['CATALOG_MEASURE']] = array();
             }
             $arMeasureMap[$arItem['CATALOG_MEASURE']][] = $intKey;
         }
     }
     if ($arParams["SET_LAST_MODIFIED"]) {
         $time = DateTime::createFromUserTime($arItem["TIMESTAMP_X"]);
         if (!isset($arResult["ITEMS_TIMESTAMP_X"]) || $time->getTimestamp() > $arResult["ITEMS_TIMESTAMP_X"]->getTimestamp()) {
             $arResult["ITEMS_TIMESTAMP_X"] = $time;
         }
     }
     $arResult["ITEMS"][$intKey] = $arItem;
     $arResult["ELEMENTS"][$intKey] = $arItem["ID"];
     $arElementLink[$arItem['ID']] =& $arResult["ITEMS"][$intKey];
     $intKey++;
 }
 $arResult['MODULES'] = $arResultModules;
 $navComponentParameters = array();
 if ($arParams["PAGER_BASE_LINK_ENABLE"] === "Y") {
     $pagerBaseLink = trim($arParams["PAGER_BASE_LINK"]);
     if ($pagerBaseLink === "") {
         $pagerBaseLink = $arResult["SECTION_PAGE_URL"];
Example #2
0
	if ($arParams["ADD_SECTIONS_CHAIN"] && !empty($arResult["SECTION"]["PATH"]) && is_array($arResult["SECTION"]["PATH"]))
	{
		foreach($arResult["SECTION"]["PATH"] as $arPath)
		{
			if ($arPath["IPROPERTY_VALUES"]["SECTION_PAGE_TITLE"] != "")
				$APPLICATION->AddChainItem($arPath["IPROPERTY_VALUES"]["SECTION_PAGE_TITLE"], $arPath["~SECTION_PAGE_URL"]);
			else
				$APPLICATION->AddChainItem($arPath["NAME"], $arPath["~SECTION_PAGE_URL"]);
		}
	}
	if ($arParams["ADD_ELEMENT_CHAIN"])
	{
		if ($arResult["IPROPERTY_VALUES"]["ELEMENT_PAGE_TITLE"] != "")
			$APPLICATION->AddChainItem($arResult["IPROPERTY_VALUES"]["ELEMENT_PAGE_TITLE"]);
		else
			$APPLICATION->AddChainItem($arResult["NAME"]);
	}

	if ($arParams["SET_LAST_MODIFIED"] && $arResult["TIMESTAMP_X"])
	{
		Context::getCurrent()->getResponse()->setLastModified(DateTime::createFromUserTime($arResult["TIMESTAMP_X"]));
	}

	return $arResult["ID"];
}
else
{
	return 0;
}
?>
Example #3
0
 function SearchDateChatMessage($searchDate, $chatId, $bTimeZone = true)
 {
     global $DB;
     $chatId = IntVal($chatId);
     $sqlHelper = Bitrix\Main\Application::getInstance()->getConnection()->getSqlHelper();
     try {
         $dateStart = \Bitrix\Main\Type\DateTime::createFromUserTime($searchDate);
         $sqlDateStart = $sqlHelper->getCharToDateFunction($dateStart->format("Y-m-d H:i:s"));
         $dateEnd = $dateStart->add('1 DAY');
         $sqlDateEnd = $sqlHelper->getCharToDateFunction($dateEnd->format("Y-m-d H:i:s"));
     } catch (\Bitrix\Main\ObjectException $e) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_HISTORY_SEARCH_DATE_EMPTY"), "ERROR_SEARCH_EMPTY");
         return false;
     }
     $limitById = '';
     $ar = \CIMChat::GetRelationById($chatId, $this->user_id);
     if ($ar && $ar['START_ID'] > 0) {
         $limitById = 'AND M.ID >= ' . intval($ar['START_ID']);
     }
     if (!$bTimeZone) {
         CTimeZone::Disable();
     }
     $strSql = "\n\t\t\tSELECT\n\t\t\t\tM.ID,\n\t\t\t\tM.CHAT_ID,\n\t\t\t\tM.MESSAGE,\n\t\t\t\t" . $DB->DatetimeToTimestampFunction('M.DATE_CREATE') . " DATE_CREATE,\n\t\t\t\tM.AUTHOR_ID\n\t\t\tFROM b_im_relation R1\n\t\t\tINNER JOIN b_im_message M ON M.CHAT_ID = R1.CHAT_ID\n\t\t\tWHERE\n\t\t\t\tR1.USER_ID = " . $this->user_id . "\n\t\t\tAND R1.CHAT_ID = " . $chatId . "\n\t\t\tAND R1.MESSAGE_TYPE <> '" . IM_MESSAGE_PRIVATE . "'\n\t\t\tAND M.DATE_CREATE >= " . $sqlDateStart . " AND M.DATE_CREATE <=  " . $sqlDateEnd . "\n\t\t\t\t" . $limitById . "\n\t\t\tORDER BY M.DATE_CREATE DESC, M.ID DESC\n\t\t";
     if (!$bTimeZone) {
         CTimeZone::Enable();
     }
     $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     $arMessages = array();
     $arMessageId = array();
     $arUnreadMessage = array();
     $usersMessage = array();
     $CCTP = new CTextParser();
     $CCTP->MaxStringLen = 200;
     $CCTP->allow = array("HTML" => "N", "ANCHOR" => $this->bHideLink ? "N" : "Y", "BIU" => "Y", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => $this->bHideLink ? "N" : "Y", "NL2BR" => "Y", "VIDEO" => "N", "TABLE" => "N", "CUT_ANCHOR" => "N", "ALIGN" => "N");
     while ($arRes = $dbRes->Fetch()) {
         $arMessages[$arRes['ID']] = array('id' => $arRes['ID'], 'chatId' => $arRes['CHAT_ID'], 'senderId' => $arRes['AUTHOR_ID'], 'recipientId' => $arRes['CHAT_ID'], 'date' => $arRes['DATE_CREATE'], 'text' => $CCTP->convertText(htmlspecialcharsbx($arRes['MESSAGE'])));
         $usersMessage[$arRes['CHAT_ID']][] = $arRes['ID'];
         $arMessageId[] = $arRes['ID'];
     }
     $params = CIMMessageParam::Get($arMessageId);
     $arFiles = array();
     foreach ($params as $messageId => $param) {
         $arMessages[$messageId]['params'] = $param;
         if (isset($param['FILE_ID'])) {
             foreach ($param['FILE_ID'] as $fileId) {
                 $arFiles[$fileId] = $fileId;
             }
         }
     }
     $arMessageFiles = CIMDisk::GetFiles($chatId, $arFiles);
     return array('chatId' => $chatId, 'message' => $arMessages, 'unreadMessage' => $arUnreadMessage, 'usersMessage' => $usersMessage, 'files' => $arMessageFiles);
 }
Example #4
0
 public static function checkFilter(Main\HttpRequest $request)
 {
     $filter = array();
     if (!empty($request['filter']['filter_type'])) {
         switch ($request['filter']['filter_type']) {
             case 'id':
                 if (isset($request['filter']['order_id_from']) && (int) $request['filter']['order_id_from'] > 0) {
                     $filter['>=ID'] = (int) $request['filter']['order_id_from'];
                 }
                 if (isset($request['filter']['order_id_to']) && (int) $request['filter']['order_id_to'] > 0) {
                     $filter['<=ID'] = (int) $request['filter']['order_id_to'];
                 }
                 break;
             case 'date':
                 CTimeZone::Disable();
                 if (isset($request['filter']['order_date_from']) && is_string($request['filter']['order_date_from'])) {
                     $date = trim($request['filter']['order_date_from']);
                     if ($date != '') {
                         try {
                             $filter['>=DATE_INSERT'] = Main\Type\DateTime::createFromUserTime($date);
                         } catch (Main\ObjectException $e) {
                         }
                     }
                     unset($date);
                 }
                 if (isset($request['filter']['order_date_to']) && is_string($request['filter']['order_date_to'])) {
                     $date = trim($request['filter']['order_date_to']);
                     if ($date != '') {
                         try {
                             $filter['<=DATE_INSERT'] = Main\Type\DateTime::createFromUserTime($date);
                         } catch (Main\ObjectException $e) {
                         }
                     }
                     unset($date);
                 }
                 CTimeZone::Enable();
                 break;
         }
     }
     return $filter;
 }
Example #5
0
 public static function update($primary, array $data)
 {
     $entityName = static::getEntity()->getName();
     $hlblock = HighloadBlockTable::getList(array('select' => array('ID'), 'filter' => array('=NAME' => $entityName)))->fetch();
     // add other fields
     $fields = $GLOBALS['USER_FIELD_MANAGER']->getUserFields('HLBLOCK_' . $hlblock['ID']);
     foreach ($data as $k => $v) {
         $arUserField = $fields[$k];
         if (is_callable(array($arUserField["USER_TYPE"]["CLASS_NAME"], "onbeforesave"))) {
             if ($arUserField["USER_TYPE"]['BASE_TYPE'] == 'file' && !empty($v['old_id']) && $v['error'] === 4) {
                 // no files changed. dear uf manager, please keep current file
                 $arUserField['VALUE'] = $v;
             }
             $data[$k] = call_user_func_array(array($arUserField["USER_TYPE"]["CLASS_NAME"], "onbeforesave"), array($arUserField, $data[$k]));
         }
         if (strlen($data[$k]) <= 0) {
             $data[$k] = false;
         } else {
             // convert string datetime to DateTime object
             if ($arUserField['USER_TYPE_ID'] == 'datetime') {
                 try {
                     $data[$k] = Type\DateTime::createFromUserTime($v);
                 } catch (Main\ObjectException $e) {
                     $data[$k] = '';
                 }
             }
         }
     }
     return parent::update($primary, $data);
 }
Example #6
0
 /**
  * Returns  time object in server timezone
  *
  * @param $userfield
  * @param $value
  *
  * @return Type\DateTime|string
  */
 public static function onBeforeSave($userfield, $value)
 {
     if (strlen($value) && !$value instanceof Type\DateTime) {
         $value = Type\DateTime::createFromUserTime($value);
     }
     return $value;
 }