static function Convert($type, $value, $op) { $maxStrLen = array_key_exists("MAX_STR_LEN", $op) ? $op["MAX_STR_LEN"] : 0; $list = array_key_exists("LIST", $op) ? $op["LIST"] : null; $defVal = array_key_exists("DEF_VAL", $op) ? $op["DEF_VAL"] : null; $res = null; switch ($type) { case self::VT_NUMBER: $res = intval($value) == floatval($value) ? intval($value) : floatval($value); break; case self::VT_STRING: $res = $maxStrLen == 0 ? $value : substr($value, 0, $maxStrLen); break; case self::VT_Y_N: $res = $value == "Y" ? "Y" : "N"; break; case self::VT_DATE: $res = is_int($value) || $value === null ? $value : MakeTimeStamp($value, FORMAT_DATE); break; case self::VT_DATE_TIME: $res = is_int($value) || $value === null ? $value : MakeTimeStamp($value, FORMAT_DATETIME); break; } if ($list != null) { $res = in_array($res, $list) ? $res : $defVal; } return $res; }
function _SortByLastMessage($a, $b) { if (MakeTimeStamp($a["LAST_CHAT"]) == MakeTimeStamp($b["LAST_CHAT"])) { return 0; } return MakeTimeStamp($a["LAST_CHAT"]) > MakeTimeStamp($b["LAST_CHAT"]) ? -1 : 1; }
public function Authorize() { $GLOBALS["APPLICATION"]->RestartBuffer(); $bSuccess = false; if(isset($_REQUEST["code"]) && $_REQUEST["code"] <> '') { if(CSocServAuthManager::CheckUniqueKey()) { $redirect_uri = CSocServUtil::GetCurUrl('auth_service_id='.self::ID, array("code")); $appID = self::GetOption("facebook_appid"); $appSecret = self::GetOption("facebook_appsecret"); $fb = new CFacebookInterface($appID, $appSecret, $_REQUEST["code"]); if($fb->GetAccessToken($redirect_uri) !== false) { $arFBUser = $fb->GetCurrentUser(); if(isset($arFBUser["id"])) { $arFields = array( 'EXTERNAL_AUTH_ID' => self::ID, 'XML_ID' => $arFBUser["id"], 'LOGIN' => "FB_".$arFBUser["email"], 'EMAIL' => $arFBUser["email"], 'NAME'=> $arFBUser["first_name"], 'LAST_NAME'=> $arFBUser["last_name"], ); if(isset($arFBUser['picture']['data']['url']) && self::CheckPhotoURI($arFBUser['picture']['data']['url'])) if ($arPic = CFile::MakeFileArray($arFBUser['picture']['data']['url'])) $arFields["PERSONAL_PHOTO"] = $arPic; if(isset($arFBUser['birthday'])) if ($date = MakeTimeStamp($arFBUser['birthday'], "MM/DD/YYYY")) $arFields["PERSONAL_BIRTHDAY"] = ConvertTimeStamp($date); if(isset($arFBUser['gender']) && $arFBUser['gender'] != '') { if ($arFBUser['gender'] == 'male') $arFields["PERSONAL_GENDER"] = 'M'; elseif ($arFBUser['gender'] == 'female') $arFields["PERSONAL_GENDER"] = 'F'; } $arFields["PERSONAL_WWW"] = "http://www.facebook.com/".$arFBUser["id"]; $bSuccess = $this->AuthorizeUser($arFields); } } } } $aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key"); $url = $GLOBALS['APPLICATION']->GetCurPageParam(($bSuccess? '':'auth_service_id='.self::ID.'&auth_service_error=1'), $aRemove); echo ' <script type="text/javascript"> if(window.opener) window.opener.location = \''.CUtil::JSEscape($url).'\'; window.close(); </script> '; die(); }
/** * @param FieldType $fieldType Document field type. * @param mixed $value Field value. * @param string $toTypeClass Type class name. * @return null|mixed */ public static function convertTo(FieldType $fieldType, $value, $toTypeClass) { /** @var Base $toTypeClass */ $type = $toTypeClass::getType(); switch ($type) { case FieldType::DOUBLE: case FieldType::INT: $value = $value ? (int) strtotime($value) : 0; break; case FieldType::DATE: case FieldType::DATETIME: case FieldType::STRING: case FieldType::TEXT: $value = (string) $value; if ($value) { if ($type == FieldType::DATE) { $format = \FORMAT_DATE; } elseif ($type == FieldType::DATETIME) { $format = \FORMAT_DATETIME; } else { $format = static::getType() == FieldType::DATE ? \FORMAT_DATE : \FORMAT_DATETIME; } if (\CheckDateTime($value, $format)) { $value = date(Type\Date::convertFormatToPhp($format), \MakeTimeStamp($value, $format)); } else { $value = date(Type\Date::convertFormatToPhp($format), strtotime($value)); } } break; default: $value = null; } return $value; }
public function prepareUser($arFBUser, $short = false) { $arFields = array('EXTERNAL_AUTH_ID' => self::ID, 'XML_ID' => $arFBUser["id"], 'LOGIN' => "FB_" . $arFBUser["id"], 'EMAIL' => $arFBUser["email"] != '' ? $arFBUser["email"] : '', 'NAME' => $arFBUser["first_name"], 'LAST_NAME' => $arFBUser["last_name"], 'OATOKEN' => $this->entityOAuth->getToken(), 'OATOKEN_EXPIRES' => $this->entityOAuth->getAccessTokenExpires()); if (!$short && isset($arFBUser['picture']['data']['url']) && !$arFBUser['picture']['data']['is_silhouette']) { $picture_url = CFacebookInterface::GRAPH_URL . '/' . $arFBUser['id'] . '/picture?type=large'; $temp_path = CFile::GetTempName('', 'picture.jpg'); $ob = new \Bitrix\Main\Web\HttpClient(array("redirect" => true)); $ob->download($picture_url, $temp_path); $arPic = CFile::MakeFileArray($temp_path); if ($arPic) { $arFields["PERSONAL_PHOTO"] = $arPic; } } if (isset($arFBUser['birthday'])) { if ($date = MakeTimeStamp($arFBUser['birthday'], "MM/DD/YYYY")) { $arFields["PERSONAL_BIRTHDAY"] = ConvertTimeStamp($date); } } if (isset($arFBUser['gender']) && $arFBUser['gender'] != '') { if ($arFBUser['gender'] == 'male') { $arFields["PERSONAL_GENDER"] = 'M'; } elseif ($arFBUser['gender'] == 'female') { $arFields["PERSONAL_GENDER"] = 'F'; } } $arFields["PERSONAL_WWW"] = $this->getProfileUrl($arFBUser['id']); if (strlen(SITE_ID) > 0) { $arFields["SITE_ID"] = SITE_ID; } return $arFields; }
public function Authorize() { $GLOBALS["APPLICATION"]->RestartBuffer(); $bSuccess = 1; if (isset($_REQUEST["code"]) && $_REQUEST["code"] != '') { if (CSocServAuthManager::CheckUniqueKey()) { if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME')) { $redirect_uri = self::CONTROLLER_URL . "/redirect.php?redirect_to=" . urlencode(CSocServUtil::GetCurUrl('auth_service_id=' . self::ID, array("code"))); } else { $redirect_uri = CSocServUtil::GetCurUrl('auth_service_id=' . self::ID, array("code")); } $appID = trim(self::GetOption("facebook_appid")); $appSecret = trim(self::GetOption("facebook_appsecret")); $fb = new CFacebookInterface($appID, $appSecret, $_REQUEST["code"]); if ($fb->GetAccessToken($redirect_uri) !== false) { $arFBUser = $fb->GetCurrentUser(); if (is_array($arFBUser) && isset($arFBUser["id"])) { $email = $arFBUser["email"] != '' ? $arFBUser["email"] : ''; $arFields = array('EXTERNAL_AUTH_ID' => self::ID, 'XML_ID' => $arFBUser["id"], 'LOGIN' => "FB_" . $arFBUser["id"], 'EMAIL' => $email, 'NAME' => $arFBUser["first_name"], 'LAST_NAME' => $arFBUser["last_name"]); if (isset($arFBUser['picture']['data']['url']) && self::CheckPhotoURI($arFBUser['picture']['data']['url'])) { if ($arPic = CFile::MakeFileArray($arFBUser['picture']['data']['url'])) { $arFields["PERSONAL_PHOTO"] = $arPic; } } if (isset($arFBUser['birthday'])) { if ($date = MakeTimeStamp($arFBUser['birthday'], "MM/DD/YYYY")) { $arFields["PERSONAL_BIRTHDAY"] = ConvertTimeStamp($date); } } if (isset($arFBUser['gender']) && $arFBUser['gender'] != '') { if ($arFBUser['gender'] == 'male') { $arFields["PERSONAL_GENDER"] = 'M'; } elseif ($arFBUser['gender'] == 'female') { $arFields["PERSONAL_GENDER"] = 'F'; } } $arFields["PERSONAL_WWW"] = "http://www.facebook.com/" . $arFBUser["id"]; if (strlen(SITE_ID) > 0) { $arFields["SITE_ID"] = SITE_ID; } $bSuccess = $this->AuthorizeUser($arFields); } } } } $aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key", "current_fieldset"); $url = $GLOBALS['APPLICATION']->GetCurPageParam($bSuccess === true ? '' : 'auth_service_id=' . self::ID . '&auth_service_error=' . $bSuccess, $aRemove); if (CModule::IncludeModule("socialnetwork") && strpos($url, "current_fieldset=") === false) { $url = preg_match("/\\?/", $url) ? $url . "¤t_fieldset=SOCSERV" : $url . "?current_fieldset=SOCSERV"; } echo ' <script type="text/javascript"> if(window.opener) window.opener.location = \'' . CUtil::JSEscape($url) . '\'; window.close(); </script> '; die; }
function dateActiveFrom($date) { $arDateStart = explode(' ', $date); $arDateStart = explode('.', $arDateStart[0]); //[0]-d [1]-m [2]-Y $result = $arDateStart[0] . ' ' . FormatDate("F", MakeTimeStamp($date)) . ' ' . $arDateStart[2]; return $result; }
function MULChangeOnlineStatus($USER_ID = false, $HTML_ID = false) { static $arUserList, $arUserListID, $arUserListHTML_ID; static $bNotFirstCall; if (!$bNotFirstCall) { $GLOBALS["APPLICATION"]->AddBufferContent("MULChangeOnlineStatus"); $bNotFirstCall = true; } if (intval($USER_ID) > 0) { if (!$HTML_ID) { $HTML_ID = "main_" . $USER_ID; } $arUserListID[] = $USER_ID; $arUserListHTML_ID[] = "'" . $HTML_ID . "'"; $arUserList[] = array("USER_ID" => $USER_ID, "HTML_ID" => $HTML_ID); } else { $arUserListIDUnique = array_unique($arUserListID); $strUserListID = implode("|", $arUserListIDUnique); $rsUser = CUser::GetList($by = "id", $order = "desc", array("ID" => $strUserListID)); $arUserListOnlineHTML_ID = array(); while ($arUser = $rsUser->Fetch()) { if (time() - intval(MakeTimeStamp($arUser["LAST_ACTIVITY_DATE"], "YYYY-MM-DD HH-MI-SS")) < 120) { foreach ($arUserList as $arTmp) { if ($arUser["ID"] == $arTmp["USER_ID"]) { $arUserListOnlineHTML_ID[] = "'" . $arTmp["HTML_ID"] . "'"; } } } } return '<script type="text/javascript"> BX.ready(function() { var arMULUserList = [' . implode(",", $arUserListHTML_ID) . ']; var arMULUserListOnline = [' . implode(",", $arUserListOnlineHTML_ID) . ']; for(var i=0; i<arMULUserList.length; i++) { var elOnline = document.getElementById(arMULUserList[i]); if(elOnline) { if (BX.util.in_array(arMULUserList[i], arMULUserListOnline)) { elOnline.className = "bx-user-info-online"; elOnline.title = "' . GetMessageJS("MAIN_UL_ONLINE") . '"; } else { elOnline.className = "bx-user-info-offline"; elOnline.title = ""; } } } }); </script>'; } }
function arraySort($a, $b) { $a = MakeTimeStamp($a["DATE_VISIT"], "DD.MM.YYYY HH:MI:SS"); $b = MakeTimeStamp($b["DATE_VISIT"], "DD.MM.YYYY HH:MI:SS"); if ($a == $b) { return 0; } return $a > $b ? -1 : 1; }
public static function Get($userId, $reOpen = false) { global $DB; $nginxStatus = CPullOptions::GetNginxStatus(); $webSocketStatus = CPullOptions::GetWebSocketStatus(); CTimeZone::Disable(); $strSql = " SELECT CHANNEL_ID, LAST_ID, ".$DB->DateToCharFunction('DATE_CREATE')." DATE_CREATE FROM b_pull_channel WHERE USER_ID = ".intval($userId); CTimeZone::Enable(); $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if ($arRes = $dbRes->Fetch()) { if (MakeTimeStamp($arRes['DATE_CREATE'])+43200 > time()) { if ($nginxStatus && $reOpen) { $arData = Array( 'module_id' => 'pull', 'command' => 'reopen', 'params' => Array(), ); $channelId = $arRes['CHANNEL_ID']; $CHTTP = new CHTTP(); $CHTTP->http_timeout = 10; $CHTTP->HTTPQuery('POST', CPullOptions::GetPublishUrl($channelId), CUtil::PhpToJsObject(Array('MESSAGE' => Array($arData), 'ERROR' => ''))); } return Array( 'CHANNEL_ID' => $arRes['CHANNEL_ID'], 'CHANNEL_DT' => MakeTimeStamp($arRes['DATE_CREATE']), 'LAST_ID' => intval($arRes['LAST_ID']), 'PATH' => ($nginxStatus? CPullOptions::GetListenUrl($arRes['CHANNEL_ID']): '/bitrix/components/bitrix/pull.request/ajax.php'), 'PATH_WS' => ($nginxStatus && $webSocketStatus? CPullOptions::GetWebSocketUrl($arRes['CHANNEL_ID']): ''), 'METHOD' => ($nginxStatus? 'LONG': 'PULL'), ); } else { self::Delete($arRes['CHANNEL_ID']); } } $channelId = self::Add($userId); return $channelId? Array( 'CHANNEL_ID' => $channelId, 'CHANNEL_DT' => time(), 'LAST_ID' => 0, 'PATH' => ($nginxStatus? CPullOptions::GetListenUrl($channelId): '/bitrix/components/bitrix/pull.request/ajax.php'), 'PATH_WS' => ($nginxStatus && $webSocketStatus? CPullOptions::GetWebSocketUrl($channelId): ''), 'METHOD' => ($nginxStatus? 'LONG': 'PULL') ): false; }
function InstallDB() { RegisterModule("storeassist"); RegisterModuleDependences("main", "OnPrologAdminTitle", "storeassist", "CStoreAssist", "onPrologAdminTitle"); RegisterModuleDependences('main', 'OnBuildGlobalMenu', "storeassist", "CStoreAssist", "onBuildGlobalMenu"); $dateCheckTs = MakeTimeStamp(date("d", time() + 3600 * 24) . "." . date("m", time() + 3600 * 24) . "." . date("Y", time() + 3600 * 24) . " 00:00:00", "DD.MM.YYYY HH:MI:SS"); $dateCheck = ConvertTimeStamp($dateCheckTs, "FULL"); CAgent::AddAgent("CStoreAssist::AgentCountDayOrders();", "storeassist", "N", 86400, $dateCheck, "Y", $dateCheck); return true; }
function socialnetworkBlogPostCommentMobile(array $comment, array $arParams, array $arResult, SocialnetworkBlogPostComment $component) { global $APPLICATION; $arParams["AVATAR_SIZE"] = intval($arParams["AVATAR_SIZE"]) ?: 58; $arAvatarSizes = array("AVATAR_SIZE" => intval(array_key_exists("AVATAR_SIZE_COMMON", $arParams) ? $arParams["AVATAR_SIZE_COMMON"] : $arParams["AVATAR_SIZE"]), "AVATAR_SIZE_COMMENT" => intval($arParams["AVATAR_SIZE_COMMENT"])); $arAvatarSizes["AVATAR_SIZE"] = $arAvatarSizes["AVATAR_SIZE"] > 0 ? $arAvatarSizes["AVATAR_SIZE"] : 42; // reference to CBlogUser::GetUserInfoArray $arAvatarSizes["AVATAR_SIZE_COMMENT"] = $arAvatarSizes["AVATAR_SIZE_COMMENT"] > 0 ? $arAvatarSizes["AVATAR_SIZE_COMMENT"] : 42; // reference to CBlogUser::GetUserInfoArray $avatarKey = "PERSONAL_PHOTO_RESIZED"; if ($arAvatarSizes["AVATAR_SIZE"] == $arParams["AVATAR_SIZE"]) { $avatarKey = "PERSONAL_PHOTO_resized"; } else { if ($arAvatarSizes["AVATAR_SIZE_COMMENT"] == $arParams["AVATAR_SIZE"]) { $avatarKey = "PERSONAL_PHOTO_resized_30"; } } $arUser = $arResult["userCache"][$comment["AUTHOR_ID"]]; if (!array_key_exists($avatarKey, $arUser) && intval($arUser["PERSONAL_PHOTO"]) > 0) { $arResult["userCache"][$comment["AUTHOR_ID"]][$avatarKey] = CFile::ResizeImageGet($arUser["PERSONAL_PHOTO"], array("width" => $arParams["AVATAR_SIZE"], "height" => $arParams["AVATAR_SIZE"]), BX_RESIZE_IMAGE_EXACT); $arUser = $arResult["userCache"][$comment["AUTHOR_ID"]]; } $text = $comment["TextFormated"]; if ($component->isWeb()) { static $parser = null; if ($parser == null) { $parser = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $parser->bMobile = true; $parser->LAZYLOAD = isset($arParams["LAZYLOAD"]) && $arParams["LAZYLOAD"] == "Y" ? "Y" : "N"; } if (is_array($comment["COMMENT_PROPERTIES"]["DATA"]["UF_BLOG_COMMENT_FILE"])) { $parser->arUserfields = array("UF_BLOG_COMMENT_FILE" => array_merge($comment["COMMENT_PROPERTIES"]["DATA"]["UF_BLOG_COMMENT_FILE"], array("TAG" => "DOCUMENT ID"))); } $text = $parser->convert($comment["POST_TEXT"], false, $comment["showedImages"], array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => COption::GetOptionString("blog", "allow_video", "Y") != "Y" || $arParams["ALLOW_VIDEO"] != "Y" ? "N" : "Y", "SHORT_ANCHOR" => "Y"), array("pathToUser" => "/mobile/users/?user_id=#user_id#")); } $res = array("ID" => $comment["ID"], "NEW" => $arParams["FOLLOW"] != "N" && $comment["NEW"] == "Y" ? "Y" : "N", "APPROVED" => $comment["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH ? "Y" : "N", "POST_TIMESTAMP" => !empty($comment["DATE_CREATE_TS"]) ? $comment["DATE_CREATE_TS"] + $arResult["TZ_OFFSET"] : MakeTimeStamp($comment["DATE_CREATE"]) - $arResult["TZ_OFFSET"], "AUTHOR" => array("ID" => $arUser["ID"], "NAME" => $arUser["~NAME"], "LAST_NAME" => $arUser["~LAST_NAME"], "SECOND_NAME" => $arUser["~SECOND_NAME"], "AVATAR" => array_key_exists($avatarKey, $arUser) ? $arUser[$avatarKey]["src"] : ''), "FILES" => false, "UF" => false, "POST_MESSAGE_TEXT" => $text, "~POST_MESSAGE_TEXT" => $comment["POST_TEXT"], "CLASSNAME" => "", "BEFORE_HEADER" => "", "BEFORE_ACTIONS" => "", "AFTER_ACTIONS" => "", "AFTER_HEADER" => "", "BEFORE" => "", "AFTER" => "", "BEFORE_RECORD" => "", "AFTER_RECORD" => ""); if (!empty($arResult["arImages"][$comment["ID"]])) { $res["FILES"] = array(); foreach ($arResult["arImages"][$comment["ID"]] as $i => $val) { $t = $arResult["Images"][$i]; $res["FILES"][] = array("THUMBNAIL" => $val["small"], "SRC" => $val["full"], "FILE_SIZE" => $t["source"]["size"], "CONTENT_TYPE" => "image/xyz", "ORIGINAL_NAME" => $t["fileName"], "FILE_NAME" => $t["fileName"]); } } if ($comment["COMMENT_PROPERTIES"]["SHOW"] == "Y") { $res["UF"] = $comment["COMMENT_PROPERTIES"]["DATA"]; foreach ($res["UF"] as $key => $arPostField) { if (!empty($arPostField["VALUE"])) { $res["UF"][$key]['POST_ID'] = $arParams['POST_DATA']['ID']; $res["UF"][$key]['URL_TO_POST'] = str_replace('#source_post_id#', $arPostField['POST_ID'], $arResult['urlToPost']); } } } return $res; }
function __bp_sort_in_template_by_modified($arr1, $arr2) { if ($arr1["STATE_MODIFIED"] == $arr2["STATE_MODIFIED"]) { return 0; } elseif (strlen($arr1["STATE_MODIFIED"]) <= 0 && strlen($arr1["STATE_MODIFIED"]) > 0) { return -1; } elseif (strlen($arr1["STATE_MODIFIED"]) > 0 && strlen($arr1["STATE_MODIFIED"]) <= 0) { return 1; } $res1 = MakeTimeStamp($arr1["STATE_MODIFIED"]); $res2 = MakeTimeStamp($arr2["STATE_MODIFIED"]); return $res1 < $res2 ? 1 : -1; }
public static function getNearestEntities($entityID, $currentDate, $startDate = '', $responsibleID = 0, $intervalInDays = 7, $checkPermissions = true, $limit = 5) { if (!is_string($startDate) || $startDate === '') { $startDate = $currentDate; } $site = new \CSite(); $dateFormat = $site->GetDateFormat('SHORT'); $curretTime = $currentDate !== '' ? MakeTimeStamp($currentDate, $dateFormat) : false; $startTime = $startDate !== '' ? MakeTimeStamp($startDate, $dateFormat) : false; if ($startTime === false) { return array(); } $dt = new \DateTime(); $dt->setTimestamp($startTime); $dt->add(new \DateInterval("P{$intervalInDays}D")); $endTime = $dt->getTimeStamp(); $currentSorting = self::internalPrepareSorting($curretTime); $startSorting = self::internalPrepareSorting($startTime); $endSorting = self::internalPrepareSorting($endTime); $result = array(); if ($entityID === \CCrmOwnerType::Lead) { $filter = array('>=BIRTHDAY_SORT' => $startSorting, '<=BIRTHDAY_SORT' => $endSorting, 'CHECK_PERMISSIONS' => $checkPermissions ? 'Y' : 'N'); if ($responsibleID > 0) { $filter['=ASSIGNED_BY_ID'] = $responsibleID; } $dbResult = \CCrmLead::GetListEx(array(), $filter, false, array('nTopCount' => $limit), array('ID', 'BIRTHDATE', 'BIRTHDAY_SORT', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME')); while ($fields = $dbResult->Fetch()) { $fields['ENTITY_TYPE_ID'] = \CCrmOwnerType::Lead; $fields['IMAGE_ID'] = 0; $sorting = isset($fields['BIRTHDAY_SORT']) ? (int) $fields['BIRTHDAY_SORT'] : 512; $fields['IS_BIRTHDAY'] = $sorting === $currentSorting; $result[] = $fields; } } elseif ($entityID === \CCrmOwnerType::Contact) { $filter = array('>=BIRTHDAY_SORT' => $startSorting, '<=BIRTHDAY_SORT' => $endSorting, 'CHECK_PERMISSIONS' => $checkPermissions ? 'Y' : 'N'); if ($responsibleID > 0) { $filter['=ASSIGNED_BY_ID'] = $responsibleID; } $dbResult = \CCrmContact::GetListEx(array(), $filter, false, array('nTopCount' => $limit), array('ID', 'BIRTHDATE', 'BIRTHDAY_SORT', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'PHOTO')); while ($fields = $dbResult->Fetch()) { $fields['ENTITY_TYPE_ID'] = \CCrmOwnerType::Contact; $fields['IMAGE_ID'] = isset($fields['PHOTO']) ? (int) $fields['PHOTO'] : 0; $sorting = isset($fields['BIRTHDAY_SORT']) ? (int) $fields['BIRTHDAY_SORT'] : 512; $fields['IS_BIRTHDAY'] = $sorting === $currentSorting; $result[] = $fields; } } return $result; }
public static function GetLastDate($user_id, $code, $site_id = SITE_ID) { global $DB; $user_id = intval($user_id); if ($user_id <= 0 || strlen($code) <= 0) { return 0; } $strSQL = "\n\t\t\tSELECT " . $DB->DateToCharFunction("LAST_DATE", "FULL") . " LAST_DATE\n\t\t\tFROM b_user_counter\n\t\t\tWHERE USER_ID = " . $user_id . "\n\t\t\tAND (SITE_ID = '" . $site_id . "' OR SITE_ID = '**')\n\t\t\tAND CODE = '" . $DB->ForSql($code) . "'\n\t\t"; $result = 0; $dbRes = $DB->Query($strSQL, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arRes = $dbRes->Fetch()) { $result = MakeTimeStamp($arRes["LAST_DATE"]); } return $result; }
function GetFileModificationDate($arF) { $iTSTS = 0; $fTSTS = 0; $iTSD = GetTime(mktime(0, 0, 0, 01, 01, 2000)); $fTSD = GetTime(mktime(0, 0, 0, 01, 01, 2000)); if (isset($arF["TIMESTAMP_X"])) { $iTSTS = MakeTimeStamp($arF["TIMESTAMP_X"]); $iTSD = $arF["TIMESTAMP_X"]; } if (isset($arF["FILE"]["TIMESTAMP_X"])) { $fTSTS = MakeTimeStamp($arF["FILE"]["TIMESTAMP_X"]); $fTSD = $arF["FILE"]["TIMESTAMP_X"]; } return $iTSTS > $fTSTS ? $iTSD : $fTSD; }
function DoValidate($arParams, $arQuestion, $arAnswers, $arValues) { global $APPLICATION; foreach ($arValues as $value) { // check minimum date if (strlen($arParams["DATE_FROM"]) > 0 && MakeTimeStamp($value) < MakeTimeStamp($arParams["DATE_FROM"])) { $APPLICATION->ThrowException(GetMessage("FORM_VALIDATOR_VAL_DATE_EX_ERROR_LESS")); return false; } // check maximum date if (strlen($arParams["DATE_TO"]) > 0 && MakeTimeStamp($value) > MakeTimeStamp($arParams["DATE_TO"])) { $APPLICATION->ThrowException(GetMessage("FORM_VALIDATOR_VAL_DATE_EX_ERROR_MORE")); return false; } } return true; }
public static function GetHistoryState($documentID, $historyID = null, $arDocHistory = null, $arParams = array()) { static $WD_HISTORYGLUE_PERIOD = null; static $arHistoryFields = array("ID", "DOCUMENT_ID", "MODIFIED", "DOCUMENT"); $historyService = self::GetHistoryService(); $result = 'N'; if (self::IsGlueEnabled()) { $result = 'Y'; if ($WD_HISTORYGLUE_PERIOD == null) { $WD_HISTORYGLUE_PERIOD = COption::GetOptionString('webdav', 'bp_history_glue_period', 300); } if ($historyID == null || $arDocHistory == null) { if ($historyID == null) { $arFilter = array("DOCUMENT_ID" => $documentID); } else { $arFilter = array("ID" => $historyID); } $dbDoc = $historyService->GetHistoryList(array("ID" => "DESC"), $arFilter, false, false, $arHistoryFields); CTimeZone::Disable(); if (!($dbDoc && ($arDocHistory = $dbDoc->Fetch()))) { $result = 'N'; } if (isset($arParams['NEW']) && $arParams['NEW'] == 'Y') { $arDocHistory = $dbDoc->Fetch(); } CTimeZone::Enable(); } if ($result == 'Y' && isset($arDocHistory['DOCUMENT']['PROPERTIES']['FILE']['HISTORYGLUE'])) { $result = $arDocHistory['DOCUMENT']['PROPERTIES']['FILE']['HISTORYGLUE']; if (isset($arParams['CHECK_TIME']) && $arParams['CHECK_TIME'] == 'Y') { $result = "Y"; $modifiedTS = MakeTimeStamp($arDocHistory['MODIFIED']); if (time() - $modifiedTS > $WD_HISTORYGLUE_PERIOD) { $result = 'N'; } } } else { $result = 'N'; } } return $result; }
function RecalculateSupportDeadlineForOneTicket($arTicket, $arFields = array(), $dateType = CTicket::IGNORE) { global $DB; $err_mess = CAllTicketReminder::err_mess() . "<br>Function: RecalculateSupportDeadlineForOneTicket<br>Line: "; $currDateTS = time() + CTimeZone::GetOffset(); $supportDeadlineNotify = 0; $ticketID = intval($arTicket["ID"]); $slaID = intval($arTicket["SLA_ID"]); $periodMin = self::ConvertResponseTimeUnit($arTicket["RESPONSE_TIME"], $arTicket["RESPONSE_TIME_UNIT"]); $periodNMin = 0; if ($ticketID <= 0 || $slaID <= 0 || $periodMin <= 0 || intval($arTicket["D_1_USER_M_AFTER_SUP_M"]) <= 0) { if ($ticketID > 0 && count($arFields) > 0) { $DB->Update("b_ticket", $arFields, "WHERE ID='" . $ticketID . "'", $err_mess . __LINE__); } return; } $periodNMinMinus = self::ConvertResponseTimeUnit($arTicket["NOTICE_TIME"], $arTicket["NOTICE_TIME_UNIT"]); if ($periodNMinMinus > 0 && $periodNMinMinus < $periodMin) { $periodNMin = $periodMin - $periodNMinMinus; } $newDateTS = MakeTimeStamp($arTicket["D_1_USER_M_AFTER_SUP_M"]); if ($dateType == CTicket::CURRENT_DATE) { $arTicket["D_1_USER_M_AFTER_SUP_M"] = GetTime($currDateTS - $periodNMin * 60, "FULL"); $arFields["D_1_USER_M_AFTER_SUP_M"] = $DB->CharToDateFunction($arTicket["D_1_USER_M_AFTER_SUP_M"]); } elseif ($dateType == CTicket::ADD) { $oldDateTS = MakeTimeStamp($arTicket["DATE_OLD"]); if ($oldDateTS > $newDateTS) { $arTicket["D_1_USER_M_AFTER_SUP_M"] = $arTicket["DATE_OLD"]; $arFields["D_1_USER_M_AFTER_SUP_M"] = $DB->CharToDateFunction($arTicket["D_1_USER_M_AFTER_SUP_M"]); } } $supportDeadlineTS = CSupportTimetableCache::getEndDate($slaID, $periodMin, $arTicket["D_1_USER_M_AFTER_SUP_M"]); $arFields["SUPPORT_DEADLINE"] = $DB->CharToDateFunction(GetTime($supportDeadlineTS, "FULL")); $arFields["IS_OVERDUE"] = $supportDeadlineTS <= $currDateTS ? "'Y'" : "'N'"; if ($periodNMin > 0) { $supportDeadlineNotifyTS = CSupportTimetableCache::getEndDate($slaID, $periodNMin, $arTicket["D_1_USER_M_AFTER_SUP_M"]); $arFields["SUPPORT_DEADLINE_NOTIFY"] = $DB->CharToDateFunction(GetTime($supportDeadlineNotifyTS, "FULL")); $arFields["IS_NOTIFIED"] = $supportDeadlineNotifyTS <= $currDateTS ? "'Y'" : "'N'"; } $DB->Update("b_ticket", $arFields, "WHERE ID='" . $ticketID . "'", $err_mess . __LINE__); }
public function checkDatabaseServerTime($secondsDrift = 600) { global $DB; CTimeZone::Disable(); $sql = "select " . $DB->DateFormatToDB("YYYY-MM-DD HH:MI:SS", $DB->GetNowFunction()) . " DB_TIME from b_user"; $query = $DB->Query($DB->TopSql($sql, 1)); $record = $query->Fetch(); CTimeZone::Enable(); $dbTime = $record ? MakeTimeStamp($record["DB_TIME"], "YYYY-MM-DD HH:MI:SS") : 0; $webTime = time(); if ($dbTime) { if ($dbTime > $webTime + $secondsDrift) { return false; } elseif ($dbTime < $webTime - $secondsDrift) { return false; } else { return true; } } return true; }
function ConditionCompose($arRequest, $i=0) { global $USER; $type=$_REQUEST['selected_type'][$i]; if ($type=='folder' && strlen($arRequest['CONDITION_folder'])>0) $cond='CSite::InDir(\''.addslashes($arRequest['CONDITION_folder']).'\')'; elseif ($type=='ugroups' && is_array($arRequest['CONDITION_ugroups'])) { for($i=0; $i<count($arRequest['CONDITION_ugroups']);$i++) $arRequest['CONDITION_ugroups'][$i] = IntVal($arRequest['CONDITION_ugroups'][$i]); $cond='CSite::InGroup(array('.implode(",", $arRequest['CONDITION_ugroups']).'))'; } elseif ($type=='period' && (MakeTimeStamp($arRequest['CONDITION_period_start']) || MakeTimeStamp($arRequest['CONDITION_period_end']))) $cond="CSite::InPeriod(".intval(MakeTimeStamp($arRequest['CONDITION_period_start'])).",".intval(MakeTimeStamp($arRequest['CONDITION_period_end'])).")"; elseif ($type=='url' && strlen($arRequest['CONDITION_url_param'])>0 && strlen($arRequest['CONDITION_url_value'])>0) $cond='$_GET[\''.addslashes($arRequest['CONDITION_url_param']).'\']==\''.addslashes($arRequest['CONDITION_url_value']).'\''; elseif ($type=='false') $cond='false'; elseif ($type=='php') $cond=$arRequest['CONDITION_php']; return $cond; }
public static function AddAgent($profileID, $setup) { COption::SetOptionString("main", "agents_use_crontab", "Y"); $agent_ID = 0; $agent_period = intval($setup["PERIOD"]) * 60; if ($agent_period <= 0) { $agent_period = 86400; } $setupDateStamp = MakeTimeStamp($setup["DAT_START"]); $currentDateStamp = time() + 120; $runTime = date("d.m.Y H:i", $setupDateStamp < $currentDateStamp ? $currentDateStamp : $setupDateStamp); if ($profileID > 0) { $arAgent = CAgent::GetList(array(), array("NAME" => "CExportproAgent::StartExport(" . $profileID . ");"))->Fetch(); if (!$arAgent) { $agent_ID = CAgent::AddAgent("CExportproAgent::StartExport(" . $profileID . ");", "acrit.exportpro", "N", $agent_period, "", "Y", $runTime); } elseif ($arAgent) { $agent_ID = $arAgent["ID"]; $agentNextStart = MakeTimeStamp($arAgent["NEXT_EXEC"]); if ($agentNextStart == $setupDateStamp && $agentNextStart > $currentDateStamp) { $runTime = date("d.m.Y H:i", $agentNextStart); } CAgent::Update($arAgent["ID"], array("AGENT_INTERVAL" => $agent_period != $arAgent["AGENT_INTERVAL"] ? $agent_period : $arAgent["AGENT_INTERVAL"], "NEXT_EXEC" => $runTime)); } } if (file_exists($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg")) { $cfgFileSize = filesize($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg"); $fp = fopen($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg", "rb"); $cfgData = fread($fp, $cfgFileSize); fclose($fp); $cfgData = preg_replace("#.*bitrix\\/modules\\/main\\/tools\\/cron_events.php(\r)*\n#i", "", $cfgData); $cfgData = preg_replace("#.*bitrix\\/modules\\/main\\/tools\\/cron_events.php#i", "", $cfgData); $cronTask = "* * * * * php -f {$_SERVER["DOCUMENT_ROOT"]}/bitrix/modules/main/tools/cron_events.php"; $cfgData .= PHP_EOL . $cronTask . PHP_EOL; file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg", $cfgData); @exec("crontab " . $_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg"); } return $agent_ID; }
public function prepareUser($arVkUser, $short = false) { $first_name = $last_name = $gender = ""; if ($arVkUser['response']['0']['first_name'] != '') { $first_name = $arVkUser['response']['0']['first_name']; } if ($arVkUser['response']['0']['last_name'] != '') { $last_name = $arVkUser['response']['0']['last_name']; } if (isset($arVkUser['response']['0']['sex']) && $arVkUser['response']['0']['sex'] != '') { if ($arVkUser['response']['0']['sex'] == '2') { $gender = 'M'; } elseif ($arVkUser['response']['0']['sex'] == '1') { $gender = 'F'; } } $arFields = array('EXTERNAL_AUTH_ID' => self::ID, 'XML_ID' => $arVkUser['response']['0']['uid'], 'LOGIN' => "VKuser" . $arVkUser['response']['0']['uid'], 'EMAIL' => $this->entityOAuth->GetCurrentUserEmail(), 'NAME' => $first_name, 'LAST_NAME' => $last_name, 'PERSONAL_GENDER' => $gender, 'OATOKEN' => $this->entityOAuth->getToken(), 'OATOKEN_EXPIRES' => $this->entityOAuth->getAccessTokenExpires()); if (isset($arVkUser['response']['0']['photo_max_orig']) && self::CheckPhotoURI($arVkUser['response']['0']['photo_max_orig'])) { if (!$short) { $arPic = CFile::MakeFileArray($arVkUser['response']['0']['photo_max_orig']); if ($arPic) { $arFields["PERSONAL_PHOTO"] = $arPic; } } if (isset($arVkUser['response']['0']['bdate'])) { if ($date = MakeTimeStamp($arVkUser['response']['0']['bdate'], "DD.MM.YYYY")) { $arFields["PERSONAL_BIRTHDAY"] = ConvertTimeStamp($date); } } $arFields["PERSONAL_WWW"] = self::getProfileUrl($arVkUser['response']['0']['uid']); if (strlen(SITE_ID) > 0) { $arFields["SITE_ID"] = SITE_ID; } } return $arFields; }
function GetPost($params, $arPath) { global $USER; $postId = IntVal(CBlogMetaWeblog::DecodeParams($params[0]["#"]["value"][0]["#"])); $user = CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]); $password = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]); if (CBlogMetaWeblog::Authorize($user, $password)) { $result = ''; $userId = $USER->GetID(); if (IntVal($postId) > 0) { $arSelectedFields = array("ID", "BLOG_ID", "TITLE", "DATE_PUBLISH", "AUTHOR_ID", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "BLOG_URL", "BLOG_OWNER_ID"); $dbPost = CBlogPost::GetList(array(), array("AUTHOR_ID" => $userId, "ID" => $postId), false, array("nTopCount" => 1), $arSelectedFields); if ($arPost = $dbPost->Fetch()) { $parser = new blogTextParser(); $dateISO = date("Y-m-d\\TH:i:s", MakeTimeStamp($arPost["DATE_PUBLISH"])); $title = htmlspecialcharsEx($arPost["TITLE"]); $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "IS_COMMENT" => "N")); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } if ($arPost["DETAIL_TEXT_TYPE"] == "html") { $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "N", "QUOTE" => "N", "CODE" => "N"); $text = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, $arAllow, false); } else { $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "N", "CODE" => "N", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "N"); $text = $parser->convert_to_rss(htmlspecialcharsEx($arPost["DETAIL_TEXT"]), $arImages, $arAllow, false); } $text = "<![CDATA[" . $text . "]]>"; $category = ""; $dbCategory = CBlogPostCategory::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "POST_ID" => $arPost["ID"])); while ($arCategory = $dbCategory->Fetch()) { $category .= '<value>' . htmlspecialcharsEx($arCategory["NAME"]) . '</value>'; } $path2Post = ""; if (strlen($arPath["PATH_TO_POST"]) > 0) { if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) { $serverName = SITE_SERVER_NAME; } else { $serverName = COption::GetOptionString("main", "server_name", "www.bitrixsoft.com"); } $path2Post = "http://" . $serverName . CComponentEngine::MakePathFromTemplate($arPath["PATH_TO_POST"], array("blog" => $arPost["BLOG_URL"], "user_id" => $arPost["BLOG_OWNER_ID"], "post_id" => $arPost["ID"])); } $result .= ' <value> <struct>'; if (strlen($category) > 0) { $result .= '<member> <name>categories</name> <value> <array> <data> ' . $category . ' </data> </array> </value> </member> '; } $result .= ' <member> <name>dateCreated</name> <value> <dateTime.iso8601>' . $dateISO . '</dateTime.iso8601> </value> </member> <member> <name>description</name> <value>' . $text . '</value> </member> <member> <name>link</name> <value>' . htmlspecialcharsEx($path2Post) . '</value> </member> <member> <name>postid</name> <value> <i4>' . $arPost["ID"] . '</i4> </value> </member> <member> <name>title</name> <value>' . $title . '</value> </member> <member> <name>publish</name> <value> <boolean>' . ($arPost["PUBLISH_STATUS"] == "D" ? "0" : "1") . '</boolean> </value> </member> </struct> </value> '; } } return '<params> <param> <value> <array> <data>' . $result . '</data> </array> </value> </param> </params>'; } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>' . $arAuthResult["MESSAGE"] . '</string></value> </member> </struct> </value> </fault>'; } }
function CheckFields($arUserField, $value) { if (!($arUserField && is_array($arUserField["USER_TYPE"]) && $arUserField["USER_TYPE"]["CLASS_NAME"] == __CLASS__)) return true; $arData = (isset($GLOBALS[$arUserField["FIELD_NAME"]."_DATA"]) ? $GLOBALS[$arUserField["FIELD_NAME"]."_DATA"] : false); $aMsg = array(); if (!empty($arData) && CModule::IncludeModule("vote")) { $arVote = array( "ID" => $value, "CHANNEL_ID" => $arUserField["SETTINGS"]["CHANNEL_ID"], "TITLE" => $arData["TITLE"], "URL" => $arData["URL"], "NOTIFY" => $arUserField["SETTINGS"]["NOTIFY"], "DATE_END" => GetTime((isset($arData["DATE_END"]) ? MakeTimeStamp($arData["DATE_END"]) : 1924984799), "FULL"), "QUESTIONS" => array()); $arVoteQuestions = array(); $arQuestions = is_array($arData["QUESTIONS"]) ? $arData["QUESTIONS"] : array(); if (!$arVote["ID"]) { $arVote["DATE_START"] = GetTime(CVote::GetNowTime(), "FULL"); } else { $db_res = CVoteQuestion::GetListEx(array("ID" => "ASC"), array("CHANNEL_ID" => $arVote["CHANNEL_ID"], "VOTE_ID" => $arVote["ID"])); if ($db_res && $res = $db_res->Fetch()) { do { $arVoteQuestions[$res["ID"]] = $res + array("ANSWERS" => array()); } while ($res = $db_res->Fetch()); } if (!empty($arVoteQuestions)) { $db_res = CVoteAnswer::GetListEx(array("ID" => "ASC"), array("CHANNEL_ID" => $arVote["CHANNEL_ID"], "VOTE_ID" => $arVote["ID"])); if ($db_res && $res = $db_res->Fetch()) { do { if (is_set($arVoteQuestions, $res["QUESTION_ID"])) $arVoteQuestions[$res["QUESTION_ID"]]["ANSWERS"][$res["ID"]] = $res; } while ($res = $db_res->Fetch()); } } } foreach ($arQuestions as $key => $arQuestion) { $res = array( "ID" => (array_key_exists($arQuestion["ID"], $arVoteQuestions) ? $arQuestion["ID"] : false), "QUESTION" => trim($arQuestion["QUESTION"]), "MULTI" => ($arQuestion["MULTI"] == "Y" ? "Y" : "N"), "ANSWERS" => array()); $arQuestion["ANSWERS"] = (is_array($arQuestion["ANSWERS"]) ? $arQuestion["ANSWERS"] : array()); $arVoteAnswers = ($res["ID"] > 0 ? $arVoteQuestions[$res["ID"]]["ANSWERS"] : array()); foreach ($arQuestion["ANSWERS"] as $arAnswer) { $resa = array( "ID" => (array_key_exists($arAnswer["ID"], $arVoteAnswers) ? $arAnswer["ID"] : false), "MESSAGE" => trim($arAnswer["MESSAGE"]), "FIELD_TYPE" => ($res["MULTI"] == "Y" ? 1 : 0)); if (empty($resa["MESSAGE"])){ continue; } if (!!$resa["ID"]) { unset($arVoteAnswers[$resa["ID"]]); } $res["ANSWERS"][] = $resa; } foreach ($arVoteAnswers as $arAnswer) { $res["ANSWERS"][] = array_merge($arAnswer, array("DEL" => "Y")); } if (empty($res["ANSWERS"]) && empty($res["QUESTION"]) && !$res["ID"]) { continue; } if (!!$res["ID"]) { unset($arVoteQuestions[$res["ID"]]); } $arVote["QUESTIONS"][] = $res; } $arVoteParams = array(); if (!empty($arVote["QUESTIONS"])) { $arVoteParams = array( "UNIQUE_TYPE" => $arUserField["SETTINGS"]['UNIQUE'], "DELAY" => intval($arUserField["SETTINGS"]['UNIQUE_IP_DELAY']["DELAY"]), "DELAY_TYPE" => $arUserField["SETTINGS"]['UNIQUE_IP_DELAY']["DELAY_TYPE"]); } if (!VoteVoteEditFromArray($arUserField["SETTINGS"]["CHANNEL_ID"], $arVote["ID"], $arVote, ($res = ($arVoteParams + array("bOnlyCheck" => "Y"))))) { $aMsg[] = array( "id" => $arUserField["FIELD_NAME"], "text" => (($e = $GLOBALS['APPLICATION']->GetException()) && $e ? preg_replace("/\<br(.*?)\>/", " ", $e->GetString()) : GetMessage("VT_UNKNOWN_ERROR_ADD_VOTE")) ); } else { $GLOBALS[__CLASS__.$arUserField["ENTITY_VALUE_ID"]] = array("VOTE" => $arVote, "PARAMS" => $arVoteParams); } } return $aMsg; }
foreach ($arResult['ENTRIES'] as $arEntry) { $ts_start = MakeTimeStamp($arEntry['DATE_ACTIVE_FROM']); $ts_finish = MakeTimeStamp($arEntry['DATE_ACTIVE_TO']); $ts_now = time(); $bNow = $ts_now >= $ts_start && $ts_now <= $ts_finish; ?> <div class="bx-user-absence-entry<?php echo $bNow ? ' bx-user-absence-now' : ''; ?> "> <span class="bx-user-absence-entry-title"><?php echo htmlspecialcharsbx($arEntry['TITLE']); ?> </span> <span class="bx-user-absence-entry-date"><?php echo GetMessage('INTR_IAU_TPL' . ($bNow ? '_TO' : '_FROM')); ?> <?php echo FormatDate($DB->DateFormatToPHP(FORMAT_DATETIME), MakeTimeStamp($arEntry['DATE_ACTIVE' . ($bNow ? '_TO' : '_FROM')])); ?> </span> </div> <?php } ?> </div> </td> </tr> </table> <?php }
public function GetDiscount($arParams = array(), $getAll = false) { global $DB, $USER; $adminSection = defined('ADMIN_SECTION') && ADMIN_SECTION === true; $arResult = array(); if (!CCatalog::IsUserExists() || !$USER->IsAuthorized() || !self::IsEnabled()) { return $arResult; } foreach (GetModuleEvents("catalog", "OnGetDiscountSave", true) as $arEvent) { $mxResult = ExecuteModuleEventEx($arEvent, $arParams); if ($mxResult !== true) { return $mxResult; } } if (empty($arParams) || !is_array($arParams)) { return $arResult; } $intUserID = 0; $arUserGroups = array(); $strSiteID = false; if (isset($arParams['USER_ID'])) { $intUserID = (int) $arParams['USER_ID']; } if (isset($arParams['USER_GROUPS'])) { $arUserGroups = $arParams['USER_GROUPS']; } if (isset($arParams['SITE_ID'])) { $strSiteID = $arParams['SITE_ID']; } if (self::GetDiscountUserID() > 0) { $intUserID = (int) self::GetDiscountUserID(); $arUserGroups = array(); } if ($intUserID <= 0 && !$adminSection) { $intUserID = (int) $USER->GetID(); $arUserGroups = array(); } if (empty($arUserGroups)) { if (!isset(self::$userGroups[$intUserID])) { self::$userGroups[$intUserID] = $USER->GetUserGroup($intUserID); } $arUserGroups = self::$userGroups[$intUserID]; } if (empty($arUserGroups) || !is_array($arUserGroups) || $intUserID <= 0) { return $arResult; } $key = array_search(2, $arUserGroups); if ($key !== false) { unset($arUserGroups[$key]); } if (empty($arUserGroups)) { return $arResult; } Main\Type\Collection::normalizeArrayValuesByInt($arUserGroups, true); if (empty($arUserGroups)) { return $arResult; } if ($strSiteID === false) { $strSiteID = SITE_ID; } $cacheKey = md5('U' . implode('_', $arUserGroups)); if (!isset(self::$discountFilterCache[$cacheKey])) { self::$discountFilterCache[$cacheKey] = CCatalogDiscountSave::__GetDiscountIDByGroup($arUserGroups); } if (empty(self::$discountFilterCache[$cacheKey])) { return $arResult; } $arCurrentDiscountID = self::$discountFilterCache[$cacheKey]; if (isset($arParams['ID'])) { Main\Type\Collection::normalizeArrayValuesByInt($arUserGroups, true); if (!empty($arParams['ID'])) { $arCurrentDiscountID = array_intersect($arCurrentDiscountID, $arParams['ID']); } } if (!empty($arCurrentDiscountID)) { $getAll = $getAll === true; $intCurrentTime = getmicrotime(); $strDate = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), $intCurrentTime); $arFilter = array('ID' => $arCurrentDiscountID, 'SITE_ID' => $strSiteID, 'TYPE' => self::ENTITY_ID, 'ACTIVE' => 'Y', '+<=ACTIVE_FROM' => $strDate, '+>=ACTIVE_TO' => $strDate); CTimeZone::Disable(); $rsDiscSaves = CCatalogDiscountSave::GetList(array(), $arFilter); CTimeZone::Enable(); while ($arDiscSave = $rsDiscSaves->Fetch()) { $arDiscSave['ACTION_SIZE'] = (int) $arDiscSave['ACTION_SIZE']; $arDiscSave['COUNT_SIZE'] = (int) $arDiscSave['COUNT_SIZE']; $arDiscSave['ACTIVE_FROM_UT'] = false; $arDiscSave['ACTIVE_TO_UT'] = false; $arDiscSave['COUNT_FROM_UT'] = false; $arDiscSave['COUNT_TO_UT'] = false; $arDiscSave['TYPE'] = (int) $arDiscSave['TYPE']; $arDiscSave['MODULE_ID'] = 'catalog'; $strCountPeriod = self::COUNT_TIME_ALL; $strActionPeriod = self::ACTION_TIME_ALL; $arCountPeriodBack = array(); $arActionPeriodBack = array(); $arActionPeriod = array(); $arStartDate = false; $arOldOrderSumm = false; $arOrderSumm = false; $boolPeriodInsert = true; $intCountTime = $intCurrentTime; $arOrderFilter = array('USER_ID' => $intUserID, 'LID' => $arDiscSave['SITE_ID'], 'PAYED' => 'Y', 'CANCELED' => 'N'); $arOldOrderFilter = $arOrderFilter; if (!empty($arDiscSave['ACTIVE_FROM']) || !empty($arDiscSave['ACTIVE_TO'])) { $strActionPeriod = self::ACTION_TIME_INTERVAL; if (!empty($arDiscSave['ACTIVE_FROM'])) { $arDiscSave['ACTIVE_FROM_UT'] = MakeTimeStamp($arDiscSave['ACTIVE_FROM']); } if (!empty($arDiscSave['ACTIVE_TO'])) { $arDiscSave['ACTIVE_TO_UT'] = MakeTimeStamp($arDiscSave['ACTIVE_TO']); } } elseif ($arDiscSave['ACTION_SIZE'] > 0 && in_array($arDiscSave['ACTION_TYPE'], array('D', 'M', 'Y'))) { $strActionPeriod = self::ACTION_TIME_PERIOD; $arActionPeriodBack = CCatalogDiscountSave::__GetTimeStampArray($arDiscSave['ACTION_SIZE'], $arDiscSave['ACTION_TYPE']); $arActionPeriod = CCatalogDiscountSave::__GetTimeStampArray($arDiscSave['ACTION_SIZE'], $arDiscSave['ACTION_TYPE'], true); } if (!empty($arDiscSave['COUNT_FROM']) || !empty($arDiscSave['COUNT_TO'])) { $strCountPeriod = self::COUNT_TIME_INTERVAL; if (!empty($arDiscSave['COUNT_FROM'])) { $arDiscSave['COUNT_FROM_UT'] = MakeTimeStamp($arDiscSave['COUNT_FROM']); } if (!empty($arDiscSave['COUNT_TO'])) { $arDiscSave['COUNT_TO_UT'] = MakeTimeStamp($arDiscSave['COUNT_TO']); if ($arDiscSave['COUNT_TO_UT'] > $intCountTime) { $arDiscSave['COUNT_TO_UT'] = $intCountTime; $arDiscSave['COUNT_TO'] = ConvertTimeStamp($intCountTime, 'FULL'); } } } elseif ($arDiscSave['COUNT_SIZE'] > 0 && in_array($arDiscSave['COUNT_TYPE'], array('D', 'M', 'Y'))) { $strCountPeriod = self::COUNT_TIME_PERIOD; $arCountPeriodBack = CCatalogDiscountSave::__GetTimeStampArray($arDiscSave['COUNT_SIZE'], $arDiscSave['COUNT_TYPE']); } if ($strCountPeriod == self::COUNT_TIME_INTERVAL) { if (false !== $arDiscSave['COUNT_FROM_UT']) { if ($arDiscSave['COUNT_FROM_UT'] > $intCountTime) { continue; } if (false !== $arDiscSave['COUNT_TO_UT'] && $arDiscSave['COUNT_TO_UT'] <= $arDiscSave['COUNT_FROM_UT']) { continue; } if (false !== $arDiscSave['ACTIVE_TO_UT'] && $arDiscSave['COUNT_FROM_UT'] >= $arDiscSave['ACTIVE_TO_UT']) { continue; } } if (false !== $arDiscSave['COUNT_TO_UT']) { if ($strActionPeriod == self::ACTION_TIME_PERIOD && $arDiscSave['COUNT_TO_UT'] < AddToTimeStamp($arActionPeriodBack, $intCountTime)) { continue; } } } if ($strActionPeriod == self::ACTION_TIME_PERIOD) { if ($strCountPeriod == self::COUNT_TIME_PERIOD) { $arStartDate = CCatalogDiscountSave::__GetUserInfoByDiscount(array('DISCOUNT_ID' => $arDiscSave['ID'], 'USER_ID' => $intUserID, 'ACTIVE_FROM' => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), AddToTimeStamp($arActionPeriodBack, $intCountTime)))); if (is_array($arStartDate) && !empty($arStartDate)) { $arOldOrderFilter['<DATE_INSERT'] = $arStartDate['ACTIVE_FROM_FORMAT']; $arOldOrderFilter['>=DATE_INSERT'] = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), AddToTimeStamp($arCountPeriodBack, MakeTimeStamp($arStartDate['ACTIVE_FROM_FORMAT']))); $arOldOrderSumm = CCatalogDiscountSave::__SaleOrderSumm($arOldOrderFilter, $arDiscSave['CURRENCY']); } } else { $arStartDate = CCatalogDiscountSave::__GetUserInfoByDiscount(array('DISCOUNT_ID' => $arDiscSave['ID'], 'USER_ID' => $intUserID), array('ACTIVE_FROM' => false, 'DELETE' => false)); if (is_array($arStartDate) && !empty($arStartDate)) { $intTimeStart = MakeTimeStamp($arStartDate['ACTIVE_FROM_FORMAT']); $intTimeFinish = MakeTimeStamp($arStartDate['ACTIVE_TO_FORMAT']); if (!($intTimeStart <= $intCountTime && $intTimeFinish >= $intCountTime)) { continue; } else { $boolPeriodInsert = false; } } } } $intTimeStart = false; $intTimeFinish = false; if ($strCountPeriod == self::COUNT_TIME_INTERVAL) { $intTimeStart = !empty($arDiscSave['COUNT_FROM']) ? $arDiscSave['COUNT_FROM'] : false; $intTimeFinish = !empty($arDiscSave['COUNT_TO']) ? $arDiscSave['COUNT_TO'] : false; } elseif ($strCountPeriod == self::COUNT_TIME_PERIOD) { $intTimeStart = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), AddToTimeStamp($arCountPeriodBack, $intCountTime)); } if ($intTimeStart) { $arOrderFilter['>=DATE_INSERT'] = $intTimeStart; } if ($intTimeFinish) { $arOrderFilter['<DATE_INSERT'] = $intTimeFinish; } $arOrderSumm = CCatalogDiscountSave::__SaleOrderSumm($arOrderFilter, $arDiscSave['CURRENCY']); if (is_array($arOldOrderSumm) && 0 < $arOldOrderSumm['RANGE_SUMM']) { if ($arOrderSumm['RANGE_SUMM'] <= $arOldOrderSumm['RANGE_SUMM']) { $arOrderSumm = $arOldOrderSumm; } else { $arOldOrderSumm = false; } } $rsRanges = CCatalogDiscountSave::GetRangeByDiscount(array('RANGE_FROM' => 'DESC'), array('DISCOUNT_ID' => $arDiscSave['ID'], '<=RANGE_FROM' => $arOrderSumm['RANGE_SUMM']), false, array('nTopCount' => 1)); $arRange = $rsRanges->Fetch(); if (!empty($arRange) || $getAll) { if (!empty($arRange)) { if ($strActionPeriod == self::ACTION_TIME_PERIOD) { if ($strCountPeriod == self::COUNT_TIME_PERIOD) { if (!is_array($arOldOrderSumm)) { CCatalogDiscountSave::__UpdateUserInfoByDiscount(array('DISCOUNT_ID' => $arDiscSave['ID'], 'USER_ID' => $intUserID, 'ACTIVE_FROM' => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), $intCountTime), 'ACTIVE_TO' => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), AddToTimeStamp($arActionPeriod, $intCountTime)), 'RANGE_FROM' => -1)); } } else { if ($boolPeriodInsert) { CCatalogDiscountSave::__UpdateUserInfoByDiscount(array('DISCOUNT_ID' => $arDiscSave['ID'], 'USER_ID' => $intUserID, 'ACTIVE_FROM' => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), $intCountTime), 'ACTIVE_TO' => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), AddToTimeStamp($arActionPeriod, $intCountTime)), 'RANGE_FROM' => -1), array('SEARCH' => true, 'DELETE' => false)); } } } } unset($arDiscSave['ACTIVE_FROM_UT'], $arDiscSave['ACTIVE_TO_UT'], $arDiscSave['COUNT_FROM_UT'], $arDiscSave['COUNT_TO_UT']); $arOneResult = $arDiscSave; if (!empty($arRange)) { $arOneResult['VALUE'] = $arRange['VALUE']; $arOneResult['VALUE_TYPE'] = $arRange['TYPE']; $arOneResult['RANGE_FROM'] = $arRange['RANGE_FROM']; $arOneResult['MAX_DISCOUNT'] = 0; } else { $arOneResult['VALUE'] = 0; $arOneResult['VALUE_TYPE'] = self::TYPE_PERCENT; $arOneResult['MAX_DISCOUNT'] = 0; $rsRanges = CCatalogDiscountSave::GetRangeByDiscount(array('RANGE_FROM' => 'ASC'), array('DISCOUNT_ID' => $arDiscSave['ID']), false, array('nTopCount' => 1)); $arRange = $rsRanges->Fetch(); $arOneResult['NEXT_RANGE_FROM'] = $arRange['RANGE_FROM']; $arOneResult['NEXT_VALUE'] = $arRange['VALUE']; $arOneResult['NEXT_VALUE_TYPE'] = $arRange['TYPE']; } $arOneResult['SUMM'] = $arOrderSumm['SUMM']; $arOneResult['SUMM_CURRENCY'] = $arOrderSumm['CURRENCY']; $arOneResult['RANGE_SUMM'] = $arOrderSumm['RANGE_SUMM']; $arOneResult['LAST_ORDER_DATE'] = $arOrderSumm['LAST_ORDER_DATE']; $arResult[] = $arOneResult; } } } return $arResult; }
} if ($arItem["IBLOCK_ID"] == $this->SKU_IBLOCK_ID) { if (!isset(${$FILTER_NAME}["OFFERS"])) { ${$FILTER_NAME}["OFFERS"] = array(); } ${$FILTER_NAME}["OFFERS"][$filterKey] = $filterValue; } else { ${$FILTER_NAME}[$filterKey] = $filterValue; } } } elseif ($arItem["USER_TYPE"] == "DateTime") { $datetimeFilters = array(); foreach ($arItem["VALUES"] as $key => $ar) { if ($ar["CHECKED"]) { $filterKey = "><PROPERTY_" . $PID; $timestamp = MakeTimeStamp($ar["VALUE"], FORMAT_DATE); $filterValue = array(FormatDate("Y-m-d H:i:s", $timestamp), FormatDate("Y-m-d H:i:s", $timestamp + 23 * 3600 + 59 * 60 + 59)); $datetimeFilters[] = array($filterKey => $filterValue); } } if ($datetimeFilters) { $datetimeFilters["LOGIC"] = "OR"; if ($arItem["IBLOCK_ID"] == $this->SKU_IBLOCK_ID) { if (!isset(${$FILTER_NAME}["OFFERS"])) { ${$FILTER_NAME}["OFFERS"] = array(); } ${$FILTER_NAME}["OFFERS"][] = $datetimeFilters; } else { ${$FILTER_NAME}[] = $datetimeFilters; } }
} echo '</div>'; } ?> </div><?php } else { ?> <div class="c-list__item c-list__item_with-border" id="<?php echo $this->GetEditAreaId($arItem['ID']); ?> "><?php if (!empty($arItem['DISPLAY_PROPERTIES']['EXIBITION_LOCATION']['VALUE']) || $arParams['DISPLAY_DATE'] != "N" && (!empty($arItem['DISPLAY_ACTIVE_FROM']) || !empty($arItem['PROPERTIES']['START_DATE']['VALUE']))) { ?> <div class="c-list__holder"><?php if ($arParams['DISPLAY_DATE'] != "N" && (!empty($arItem['DISPLAY_ACTIVE_FROM']) || !empty($arItem['PROPERTIES']['START_DATE']['VALUE']))) { $strDate = empty($arItem['PROPERTIES']['START_DATE']['VALUE']) ? $arItem['DISPLAY_ACTIVE_FROM'] : FormatDate($arParams['ACTIVE_DATE_FORMAT'], MakeTimeStamp($arItem['PROPERTIES']['START_DATE']['VALUE'])); ?> <div class="c-list__date"><?php echo $strDate; ?> </div><?php } if (!empty($arItem['DISPLAY_PROPERTIES']['EXIBITION_LOCATION']['VALUE'])) { ?> <div class="c-list__place"><?php echo strip_tags($arItem['DISPLAY_PROPERTIES']['EXIBITION_LOCATION']['DISPLAY_VALUE']); ?> </div><?php } ?> </div><?php
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (is_array($arResult["HISTORY"]) && !empty($arResult["HISTORY"])) { $arExcludedFields = array("ID", "H_USER_ID", "H_DATE_INSERT", "H_CURRENCY", "H_ORDER_ID", "EMP_CANCELED_ID", "EMP_STATUS_ID", "EMP_ALLOW_DELIVERY_ID", "STATUS_ID", "PAYED", "ALLOW_DELIVERY", "CANCELED", "PRICE", "STAT_GID", "RECOUNT_FLAG", "DELIVERY_ID"); $mad = new CAdminMobileDetail(); foreach ($arResult["HISTORY"] as $arItemHistory) { $stmp = MakeTimeStamp($arItemHistory["H_DATE_INSERT"], "DD.MM.YYYY HH:MI:SS"); $dateInsert = date("d.m.Y", $stmp) . ' <div class="time_icon">' . date("H:i", $stmp) . '</div>'; $arSection = array("TITLE" => $dateInsert, "ROWS" => array(array("TITLE" => GetMessage("SMOH_USER") . ":", "VALUE" => $arItemHistory['USER']['LOGIN']), array("TITLE" => GetMessage("SMOH_FIO") . ":", "VALUE" => $arItemHistory['USER']['NAME'] . " " . $arItemHistory['USER']['LAST_NAME']))); foreach ($arItemHistory as $key => $value) { if (is_array($value) || strlen($value) <= 0) { continue; } switch ($key) { case "PAYED": $arSection["ROWS"][] = array("TITLE" => GetMessage("SMOH_PAYED") . ":", "VALUE" => $arItemHistory['PAYED'] == 'Y' ? GetMessage("SMOH_YES") : GetMessage("SMOH_NO")); continue 2; case "ALLOW_DELIVERY": $arSection["ROWS"][] = array("TITLE" => GetMessage("SMOH_ALLOW_DELIVERY") . ":", "VALUE" => $arItemHistory['ALLOW_DELIVERY'] == 'Y' ? GetMessage("SMOH_YES") : GetMessage("SMOH_NO")); continue 2; case "CANCELED": $arSection["ROWS"][] = array("TITLE" => GetMessage("SMOH_CANCELED") . ":", "VALUE" => $arItemHistory['CANCELED'] == 'Y' ? GetMessage("SMOH_YES") : GetMessage("SMOH_NO")); continue 2; case "STATUS_ID": $arSection["ROWS"][] = array("TITLE" => GetMessage("SMOH_STATUS_ID") . ":", "VALUE" => $arResult["STATUSES"][$arItemHistory['STATUS_ID']]); continue 2; case "PRICE": $arSection["ROWS"][] = array("TITLE" => GetMessage("SMOH_PRICE") . ":", "VALUE" => SaleFormatCurrency($arItemHistory["PRICE"], $arItemHistory["H_CURRENCY"]));