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;
 }
Example #2
0
 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;
 }
Example #3
0
	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();
	}
Example #4
0
 /**
  * @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;
 }
Example #5
0
 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;
 }
Example #6
0
    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 . "&current_fieldset=SOCSERV" : $url . "?current_fieldset=SOCSERV";
        }
        echo '
<script type="text/javascript">
if(window.opener)
	window.opener.location = \'' . CUtil::JSEscape($url) . '\';
window.close();
</script>
';
        die;
    }
Example #7
0
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;
}
Example #8
0
    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>';
        }
    }
Example #9
0
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;
}
Example #10
0
	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;
	}
Example #11
0
 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;
 }
Example #12
0
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;
}
Example #13
0
 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;
 }
Example #14
0
 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;
 }
Example #15
0
 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;
 }
Example #16
0
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;
}
Example #17
0
 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;
 }
Example #19
0
 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__);
 }
Example #20
0
 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;
 }
Example #21
0
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;
 }
Example #23
0
 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;
 }
Example #24
0
    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>';
        }
    }
Example #25
0
	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;
	}
Example #26
0
    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 
}
Example #27
0
 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;
 }
Example #28
0
         }
         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;
         }
     }
Example #29
0
                }
                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 
Example #30
0
<?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"]));