public function GetCategorySequence($CODE) { if (self::$CategoryIB <= 0 || !$CODE) { return array(); } $arCategoryListXML = $this->GetCategoryList(); $arCategoryList = array(); foreach ($arCategoryListXML as $arCategory) { $arCategoryList[$arCategory["ID"]] = $arCategory; } $arSequnce = array("CATEGORY_1" => false, "CATEGORY_2" => false); $CODE = ToUpper($CODE); $arFullSequence = array(); while (array_key_exists($CODE, $arCategoryListXML)) { array_unshift($arFullSequence, ToLower($CODE)); if ($arCategoryListXML[$CODE]["IBLOCK_SECTION_ID"] > 0 && $arCategoryList[$arCategoryListXML[$CODE]["IBLOCK_SECTION_ID"]]) { $CODE = ToUpper($arCategoryList[$arCategoryListXML[$CODE]["IBLOCK_SECTION_ID"]]["CODE"]); } else { break; } } if (array_key_exists(0, $arFullSequence)) { $arSequnce["CATEGORY_1"] = $arFullSequence[0]; } if (count($arFullSequence) > 1) { $arSequnce["CATEGORY_2"] = end($arFullSequence); } $arSequnce["FULL"] = $arFullSequence; return $arSequnce; }
function CSearchStatistic($phrase = "", $tags = "") { $phrase = ToLower(trim($phrase, " \t\n\r")); if ($l = strlen($phrase)) { if ($l > 250) { $p = strrpos($phrase, ' '); if ($p === false) { $this->_phrase = substr($phrase, 0, 250); } else { $this->_phrase = substr($phrase, 0, $p); } } else { $this->_phrase = $phrase; } } else { $this->_phrase = false; } $arTags = tags_prepare($tags); if (count($arTags)) { asort($arTags); $this->_tags = implode(", ", $arTags); } else { $this->_tags = false; } $this->_session_id = bitrix_sessid(); if (isset($_SESSION["SESS_SESSION_ID"])) { $this->_stat_sess_id = intval($_SESSION["SESS_SESSION_ID"]); } }
function GetStatusInfo($string) { switch (ToLower(trim($string))) { case "прибыл": case "позднее прибытие": case "приземлился": $result["CODE"] = "L"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_L"); break; case "задержан": $result["CODE"] = "D"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_D"); break; case "": $result["CODE"] = "P"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_P"); break; case "отправлен": $result["CODE"] = "F"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_F"); break; case "отменен": $result["CODE"] = "C"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_C"); break; default: $result["CODE"] = ""; $result["NAME"] = htmlspecialchars($string); } $result["~NAME"] = htmlspecialchars($string); return $result; }
public static function CleanURL($URL) { if (false !== ($pos = strpos($URL, '?'))) { $query = substr($URL, $pos+1); $URL = substr($URL, 0, $pos); $arQuery = explode('&', $query); $arExcludedParams = array('clear_cache', 'clear_cache_session', 'back_url_admin', 'back_url', 'backurl', 'login', 'logout', 'compress'); foreach ($arQuery as $key => $param) { if (false !== ($pos = strpos($param, '='))) { $param_name = ToLower(substr($param, 0, $pos)); if ( substr($param_name, 0, 7) == 'freetrix_' || substr($param_name, 0, 5) == 'show_' || in_array($param_name, $arExcludedParams) ) { unset($arQuery[$key]); } } } if (count($arQuery) > 0) { $URL .= '?'.implode('&', $arQuery); } } return $URL; }
function GetStatusInfo($string) { switch (ToLower(trim($string))) { case "прибыл": $result["CODE"] = "L"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_L"); break; case "задержан": case "задерживается": $result["CODE"] = "D"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_D"); break; case "": $result["CODE"] = "P"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_P"); break; case "вылетел": $result["CODE"] = "F"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_F"); break; case "отменен": $result["CODE"] = "C"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_C"); break; case "регистрация": $result["CODE"] = "R"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_R"); break; default: $result["CODE"] = ""; $result["NAME"] = htmlspecialchars($string); } $result["~NAME"] = htmlspecialchars($string); return $result; }
public static function getTypes($params = array('LANGUAGE_ID' => LANGUAGE_ID)) { if (!is_array($params)) { $params = array(); } if (!isset($params['LANGUAGE_ID'])) { $params['LANGUAGE_ID'] = LANGUAGE_ID; } $result = array(); $lang = ToLower($params['LANGUAGE_ID']); $langMapped = static::mapLanguage($lang); $res = \Bitrix\Sale\Location\TypeTable::getList(array('select' => array('*', 'TNAME' => 'NAME.NAME', 'TLANGUAGE_ID' => 'NAME.LANGUAGE_ID'), 'order' => array('SORT' => 'asc', 'NAME.NAME' => 'asc'))); while ($item = $res->fetch()) { if (!isset($result[$item['CODE']])) { $result[$item['CODE']] = array('CODE' => $item['CODE'], 'ID' => $item['ID'], 'NAME' => array()); } $result[$item['CODE']]['NAME'][$item['TLANGUAGE_ID']] = $item['TNAME']; } foreach ($result as $code => &$data) { if ((string) $data['NAME'][$lang] != '') { $name = $data['NAME'][$lang]; } else { if ((string) $data['NAME'][$langMapped] != '') { $name = $data['NAME'][$langMapped]; } else { $name = $data['NAME']['en']; } } $data['NAME_CURRENT'] = $name; } return $result; }
function GetStatusInfo($string) { switch (ToLower(trim($string))) { case "прилетел": $result["CODE"] = "L"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_L"); break; case "не вылетел": $result["CODE"] = "D"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_D"); break; case "-": $result["CODE"] = "P"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_P"); break; case "вылетел": $result["CODE"] = "F"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_F"); break; case "отменен": $result["CODE"] = "C"; $result["NAME"] = GetMessage("AIRPORT_BOARD_STATUS_C"); break; default: $result["CODE"] = ""; $result["NAME"] = ""; } $result["~NAME"] = htmlspecialchars($string); return $result; }
/** * Делает первую букву каждого слова заглавной. * @param string $string * @return string */ public static function CapitalizeFirst($string) { $string = explode(' ', $string); foreach ($string as &$s) { $s = ToUpper(substr($s, 0, 1)) . ToLower(substr($s, 1)); } return implode(' ', $string); }
function UnInstallDB($arParams = array()) { global $DB, $DBType, $APPLICATION; $this->errors = false; if (!array_key_exists("savedata", $arParams) || $arParams["savedata"] != "Y") { $this->errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/report/install/db/" . ToLower($DB->type) . "/uninstall.sql"); } UnRegisterModule("report"); return true; }
function CheckReg() { global $RegLogin, $RegPass, $RegPass2, $RegName, $RegEmail; global $Errors, $Lang, $CLang; $RegLogin = ToLower($RegLogin); if (CheckSymb_($RegLogin)) { $Errors[] = $Lang['SymbErr']; return; } if (CheckSymb_($RegPass)) { $Errors[] = $Lang['SymbErr']; return; } if (!$RegLogin) { $Errors[] = $Lang['MustFillLogin']; return; } if (!$RegPass) { $Errors[] = $Lang['MustFillPass']; return; } if (!$RegName) { $Errors[] = $Lang['MustFillName']; return; } if (!$RegEmail) { $Errors[] = $Lang['MustFillEmail']; return; } if ($RegPass != $RegPass2) { $Errors[] = $Lang['PassNotPass2']; return; } if (strlen($RegLogin) < 3) { $Errors[] = $Lang['LoginTooShort']; return; } if (strlen($RegLogin) > 64) { $Errors[] = $Lang['LoginTooLong']; return; } if (strlen($RegPass) < 3) { $Errors[] = $Lang['PassTooShort']; return; } if (strlen($RegPass) > 64) { $Errors[] = $Lang['PassTooLong']; return; } if (!ValidMail($RegEmail)) { $Errors[] = $Lang['MustFillCorrEmail']; return; } NextStep(); }
public function decode($data) { $res = json_decode($data, true); self::checkException(); // PHP<5.3.3 returns no error for JSON_ERROR_UTF8 and some other ones if ($res === null && ToLower($data) != 'null') { self::throwException(self::JSON_ERROR_UNKNOWN); } if (!Application::getInstance()->isUtfMode()) { $res = self::unConvertData($res); } return $res; }
public static function cleanUp() { $dbConnection = Main\HttpApplication::getConnection(); try { $dbConnection->query('drop table ' . static::getTableName()); $allowedTypes = array('REGION', 'SUBREGION', 'CITY', 'VILLAGE', 'STREET'); foreach ($allowedTypes as $type) { //$dbConnection->query('drop table b_sale_loc_wc_'.ToLower($type)); // here replace according to map: TYPE_CODE => TABLE_ID $dbConnection->query('truncate table b_sale_loc_wc_' . ToLower($type)); } } catch (\Bitrix\Main\DB\SqlQueryException $e) { } }
public function UnInstallDB($arParams = array()) { global $DB, $DBType, $APPLICATION; $errors = false; if(!array_key_exists("savedata", $arParams) || $arParams["savedata"] != "Y") $errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".self::MODULE_ID."/install/db/".ToLower($DB->type)."/uninstall.sql"); if($errors !== false) throw new \Exception(implode("<br>", $errors)); UnRegisterModule(self::MODULE_ID); return true; }
function _cnVerifyFileField($value, $arConf) { if (!empty($arConf['MAX_FILE_SIZE']) && $value['size'] > $arConf['MAX_FILE_SIZE']) { return 'FILE_SIZE'; } if (!empty($arConf['ALLOWED_FILE_TYPES'])) { $ext = ToLower(end(explode('.', $value['name']))); $arValidExt = explode(',', ToLower($arConf['ALLOWED_FILE_TYPES'])); if (!in_array($ext, $arValidExt)) { return 'FILE_TYPE'; } } return true; }
public static function cleanUpData() { $dbConnection = Main\HttpApplication::getConnection(); Helper::dropTable(static::getTableName()); $binary = ToLower($dbConnection->getType()) == 'mysql' ? 'binary' : ''; // http://bugs.mysql.com/bug.php?id=34096 // ORACE: OK, MSSQL: OK Main\HttpApplication::getConnection()->query("create table " . static::getTableName() . " (\n\n\t\t\tID " . Helper::getSqlForDataType('int') . " not null " . Helper::getSqlForAutoIncrement() . " primary key,\n\t\t\tWORD " . Helper::getSqlForDataType('varchar', 50) . " " . $binary . " not null,\n\t\t\tPOSITION " . Helper::getSqlForDataType('int') . " default '0'\n\t\t)"); Helper::addAutoIncrement(static::getTableName()); // only for ORACLE Helper::createIndex(static::getTableName(), 'TMP', array('WORD'), true); Helper::dropTable(static::getTableNameWord2Location()); // ORACLE: OK, MSSQL: OK Main\HttpApplication::getConnection()->query("create table " . static::getTableNameWord2Location() . " (\n\n\t\t\tLOCATION_ID " . Helper::getSqlForDataType('int') . " not null,\n\t\t\tWORD_ID " . Helper::getSqlForDataType('int') . " not null,\n\n\t\t\tprimary key (LOCATION_ID, WORD_ID)\n\t\t)"); Helper::dropTable(static::getTableNamePositionTemporal()); $dbConnection->query("create table " . static::getTableNamePositionTemporal() . " (\n\t\t\tWORD_ID " . Helper::getSqlForDataType('int') . " not null,\n\t\t\tPOSITION " . Helper::getSqlForDataType('int') . " default '0'\n\t\t)"); }
private static function getDbTruncTextFunction($dbtype, $param) { switch (ToLower($dbtype)) { case 'mysql': $result = "SUBSTR(" . $param . ", 1, 1024)"; break; case 'mssql': $result = "SUBSTRING(" . $param . ", 1, 1024)"; break; case 'oracle': $result = "TO_CHAR(SUBSTR(" . $param . ", 1, 1024))"; break; default: $result = $param; break; } return $result; }
function CSearchSuggest($strFilterMD5 = "", $phrase = "") { $strFilterMD5 = strtolower($strFilterMD5); if (preg_match("/^[0-9a-f]{32}\$/", $strFilterMD5)) { $this->_filter_md5 = $strFilterMD5; } $phrase = ToLower(trim($phrase, " \t\n\r")); if ($l = strlen($phrase)) { if ($l > 250) { $p = strrpos($phrase, ' '); if ($p === false) { $phrase = substr($phrase, 0, 250); } else { $phrase = substr($phrase, 0, $p); } } $this->_phrase = $phrase; } }
public static function GetID($subject_name) { $subject_name = trim($subject_name, " \n\t"); $result = CGreensightRFSubject::gs_array_search($subject_name, CGreensightRFSubject::$_RF_SUBJECTS); if (!$result) { $subject_name = explode(' ', $subject_name); foreach ($subject_name as $s) { $ls = ToLower($s); if ($ls == 'республика' || $ls == 'край' || $ls == 'область' || $ls == 'округ') { continue; } $result = CGreensightRFSubject::gs_array_search($s, CGreensightRFSubject::$_RF_SUBJECTS); if ($result) { break; } } } return $result; }
function EditPost($params) { global $USER, $DB; $postId = IntVal(CBlogMetaWeblog::DecodeParams($params[0]["#"]["value"][0]["#"])); $user = CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]); $password = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]); $arPostInfo = $params[3]["#"]["value"][0]["#"]["struct"][0]["#"]["member"]; $publish = $params[4]["#"]["value"][0]["#"]["boolean"][0]["#"]; foreach ($arPostInfo as $val) { ${$val["#"]["name"][0]["#"]} = CBlogMetaWeblog::DecodeParams($val["#"]["value"][0]["#"]); } $arCategory = array(); if (is_array($categories["data"][0]["#"]["value"])) { foreach ($categories["data"][0]["#"]["value"] as $val) { $catTmp = CBlogMetaWeblog::DecodeParams($val["#"]); if (strlen($catTmp) > 0) { $arCategory[] = $catTmp; } } } 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"); $dbPost = CBlogPost::GetList(array(), array("AUTHOR_ID" => $userId, "ID" => $postId), false, array("nTopCount" => 1), $arSelectedFields); if ($arPost = $dbPost->Fetch()) { $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); if (intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork") && method_exists("CSocNetGroup", "GetSite")) { $arSites = array(); $rsGroupSite = CSocNetGroup::GetSite($arBlog["SOCNET_GROUP_ID"]); while ($arGroupSite = $rsGroupSite->Fetch()) { $arSites[] = $arGroupSite["LID"]; } } else { $arSites = array(SITE_ID); } $CATEGORYtmp = array(); $dbCategory = CBlogCategory::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"])); while ($arCat = $dbCategory->Fetch()) { $arCatBlog[ToLower($arCat["NAME"])] = $arCat["ID"]; } foreach ($arCategory as $tg) { $tg = trim($tg); if (!in_array($arCatBlog[ToLower($tg)], $CATEGORYtmp)) { if (IntVal($arCatBlog[ToLower($tg)]) > 0) { $CATEGORYtmp[] = $arCatBlog[ToLower($tg)]; } else { $CATEGORYtmp[] = CBlogCategory::Add(array("BLOG_ID" => $arPost["BLOG_ID"], "NAME" => $tg)); foreach ($arSites as $site_id_tmp) { BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/category/"); } } } } $dbSite = CSite::GetByID(SITE_ID); $arSite = $dbSite->Fetch(); $serverName = htmlspecialcharsEx($arSite["SERVER_NAME"]); if (strlen($serverName) <= 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"); } } $dbImage = CBlogImage::GetList(array(), array("POST_ID" => false, "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "N")); while ($arImage = $dbImage->Fetch()) { $path = ""; $path = CFile::GetPath($arImage["FILE_ID"]); $path = "http://" . $serverName . $path; if (strpos($description, $path) !== false) { $description = str_replace('<img src="' . $path . '" alt=""/>', "[IMG ID=" . $arImage["ID"] . "]", $description); CBlogImage::Update($arImage["ID"], array("POST_ID" => $arPost["ID"])); } } $arFields = array("TITLE" => $title, "DETAIL_TEXT" => $description, "DETAIL_TEXT_TYPE" => "html", "PUBLISH_STATUS" => $publish == 1 ? "P" : "D", "CATEGORY_ID" => implode(",", $CATEGORYtmp)); $postId = CBlogPost::Update($arPost["ID"], $arFields); CBlogPostCategory::DeleteByPostID($arPost["ID"]); foreach ($CATEGORYtmp as $v) { CBlogPostCategory::Add(array("BLOG_ID" => $arPost["BLOG_ID"], "POST_ID" => $arPost["ID"], "CATEGORY_ID" => $v)); } if (IntVal($postId) > 0) { foreach ($arSites as $site_id_tmp) { BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/first_page/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/calendar/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/last_messages/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/commented_posts/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/popular_posts/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/last_comments/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/groups/" . $arBlog["GROUP_ID"] . "/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/trackback/" . $arPost["ID"] . "/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/comment/" . $arPost["ID"] . "/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_out/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_all/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_sonet/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_all/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/favorite/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/post/" . $arPost["ID"] . "/"); } return '<params> <param> <value> <i4>' . $postId . '</i4> </value> </param> </params>'; } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>Error on saving post</string></value> </member> </struct> </value> </fault>'; } } } } 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 __SLEGetLogCommentRecord($arComments, $arParams, &$arAssets) { // for the same post log_update - time only, if not - date and time $timestamp = MakeTimeStamp(array_key_exists("LOG_DATE_FORMAT", $arComments) ? $arComments["LOG_DATE_FORMAT"] : $arComments["LOG_DATE"]); $timeFormated = FormatDateFromDB($arComments["LOG_DATE"], stripos($arParams["DATE_TIME_FORMAT"], 'a') || ($arParams["DATE_TIME_FORMAT"] == 'FULL' && IsAmPmMode()) !== false ? strpos(FORMAT_DATETIME, 'TT') !== false ? 'G:MI TT' : 'G:MI T' : 'HH:MI'); $dateTimeFormated = FormatDate(!empty($arParams['DATE_TIME_FORMAT']) ? $arParams['DATE_TIME_FORMAT'] == 'FULL' ? $GLOBALS['DB']->DateFormatToPHP(str_replace(':SS', '', FORMAT_DATETIME)) : $arParams['DATE_TIME_FORMAT'] : $GLOBALS['DB']->DateFormatToPHP(FORMAT_DATETIME), $timestamp); if (strcasecmp(LANGUAGE_ID, 'EN') !== 0 && strcasecmp(LANGUAGE_ID, 'DE') !== 0) { $dateTimeFormated = ToLower($dateTimeFormated); } // strip current year if (!empty($arParams['DATE_TIME_FORMAT']) && ($arParams['DATE_TIME_FORMAT'] == 'j F Y G:i' || $arParams['DATE_TIME_FORMAT'] == 'j F Y g:i a')) { $dateTimeFormated = ltrim($dateTimeFormated, '0'); $curYear = date('Y'); $dateTimeFormated = str_replace(array('-' . $curYear, '/' . $curYear, ' ' . $curYear, '.' . $curYear), '', $dateTimeFormated); } $path2Entity = $arComments["ENTITY_TYPE"] == SONET_ENTITY_GROUP ? CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arComments["ENTITY_ID"])) : CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arComments["ENTITY_ID"])); if (intval($arComments["USER_ID"]) > 0) { $suffix = is_array($GLOBALS["arExtranetUserID"]) && in_array($arComments["USER_ID"], $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : ""; $arTmpUser = array("NAME" => $arComments["~CREATED_BY_NAME"], "LAST_NAME" => $arComments["~CREATED_BY_LAST_NAME"], "SECOND_NAME" => $arComments["~CREATED_BY_SECOND_NAME"], "LOGIN" => $arComments["~CREATED_BY_LOGIN"]); $bUseLogin = $arParams["SHOW_LOGIN"] != "N" ? true : false; $arCreatedBy = array("FORMATTED" => CUser::FormatName($arParams["NAME_TEMPLATE"], $arTmpUser, $bUseLogin) . $suffix, "URL" => CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arComments["USER_ID"], "id" => $arComments["USER_ID"]))); $arCreatedBy["TOOLTIP_FIELDS"] = array("ID" => $arComments["USER_ID"], "NAME" => $arComments["~CREATED_BY_NAME"], "LAST_NAME" => $arComments["~CREATED_BY_LAST_NAME"], "SECOND_NAME" => $arComments["~CREATED_BY_SECOND_NAME"], "LOGIN" => $arComments["~CREATED_BY_LOGIN"], "USE_THUMBNAIL_LIST" => "N", "PATH_TO_SONET_MESSAGES_CHAT" => $arParams["PATH_TO_MESSAGES_CHAT"], "PATH_TO_SONET_USER_PROFILE" => $arParams["PATH_TO_USER"], "PATH_TO_VIDEO_CALL" => $arParams["PATH_TO_VIDEO_CALL"], "DATE_TIME_FORMAT" => $arParams["DATE_TIME_FORMAT"], "SHOW_YEAR" => $arParams["SHOW_YEAR"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"], "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"] . $suffix, "SHOW_LOGIN" => $arParams["SHOW_LOGIN"], "PATH_TO_CONPANY_DEPARTMENT" => $arParams["PATH_TO_CONPANY_DEPARTMENT"], "INLINE" => "Y"); } else { $arCreatedBy = array("FORMATTED" => GetMessage("SONET_C73_CREATED_BY_ANONYMOUS")); } $arTmpUser = array("NAME" => $arComments["~USER_NAME"], "LAST_NAME" => $arComments["~USER_LAST_NAME"], "SECOND_NAME" => $arComments["~USER_SECOND_NAME"], "LOGIN" => $arComments["~USER_LOGIN"]); $arParamsTmp = $arParams; $arParamsTmp["AVATAR_SIZE"] = isset($arParams["AVATAR_SIZE_COMMON"]) ? $arParams["AVATAR_SIZE_COMMON"] : $arParams["AVATAR_SIZE"]; $arTmpCommentEvent = array("EVENT" => $arComments, "LOG_DATE" => $arComments["LOG_DATE"], "LOG_DATE_TS" => MakeTimeStamp($arComments["LOG_DATE"]), "LOG_DATE_DAY" => ConvertTimeStamp(MakeTimeStamp($arComments["LOG_DATE"]), "SHORT"), "LOG_TIME_FORMAT" => $timeFormated, "LOG_DATETIME_FORMAT" => $dateTimeFormated, "TITLE_TEMPLATE" => "", "TITLE" => "", "TITLE_FORMAT" => "", "ENTITY_NAME" => $arComments["ENTITY_TYPE"] == SONET_ENTITY_GROUP ? $arComments["GROUP_NAME"] : CUser::FormatName($arParams['NAME_TEMPLATE'], $arTmpUser, $bUseLogin), "ENTITY_PATH" => $path2Entity, "CREATED_BY" => $arCreatedBy, "AVATAR_SRC" => CSocNetLogTools::FormatEvent_CreateAvatar($arComments, $arParamsTmp)); $arEvent = CSocNetLogTools::FindLogCommentEventByID($arComments["EVENT_ID"]); if ($arEvent && array_key_exists("CLASS_FORMAT", $arEvent) && array_key_exists("METHOD_FORMAT", $arEvent)) { $arLog = $arParams["USER_COMMENTS"] == "Y" ? array() : array("TITLE" => $arComments["~LOG_TITLE"], "URL" => $arComments["~LOG_URL"], "PARAMS" => $arComments["~LOG_PARAMS"]); $arFIELDS_FORMATTED = call_user_func(array($arEvent["CLASS_FORMAT"], $arEvent["METHOD_FORMAT"]), $arComments, $arParams, false, $arLog); if ($arParams["USE_COMMENTS"] != "Y") { if (array_key_exists("CREATED_BY", $arFIELDS_FORMATTED) && isset($arFIELDS_FORMATTED["CREATED_BY"]["TOOLTIP_FIELDS"])) { $arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"] = $arFIELDS_FORMATTED["CREATED_BY"]["TOOLTIP_FIELDS"]; } } } $message = $arFIELDS_FORMATTED && array_key_exists("EVENT_FORMATTED", $arFIELDS_FORMATTED) && array_key_exists("MESSAGE", $arFIELDS_FORMATTED["EVENT_FORMATTED"]) ? $arFIELDS_FORMATTED["EVENT_FORMATTED"]["MESSAGE"] : $arTmpCommentEvent["EVENT"]["MESSAGE"]; if (strlen($message) > 0) { $arFIELDS_FORMATTED["EVENT_FORMATTED"]["FULL_MESSAGE_CUT"] = CSocNetTextParser::closetags(htmlspecialcharsback($message)); } if (is_array($arTmpCommentEvent)) { $arFIELDS_FORMATTED["EVENT_FORMATTED"]["DATETIME"] = $arTmpCommentEvent["LOG_DATE_DAY"] == ConvertTimeStamp() ? $timeFormated : $dateTimeFormated; $arTmpCommentEvent["EVENT_FORMATTED"] = $arFIELDS_FORMATTED["EVENT_FORMATTED"]; if (isset($arComments["UF"]["UF_SONET_COM_URL_PRV"]) && !empty($arComments["UF"]["UF_SONET_COM_URL_PRV"]["VALUE"])) { $arCss = $GLOBALS["APPLICATION"]->sPath2css; $arJs = $GLOBALS["APPLICATION"]->arHeadScripts; ob_start(); $GLOBALS["APPLICATION"]->IncludeComponent("bitrix:system.field.view", $arComments["UF"]["UF_SONET_COM_URL_PRV"]["USER_TYPE_ID"], array("arUserField" => $arComments["UF"]["UF_SONET_COM_URL_PRV"], "arAddField" => array("NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"], "PATH_TO_USER" => $arParams["~PATH_TO_USER"])), null, array("HIDE_ICONS" => "Y")); $urlPreviewText = ob_get_clean(); $arTmpCommentEvent["EVENT_FORMATTED"]["FULL_MESSAGE_CUT"] .= $urlPreviewText; $arAssets["CSS"] = array_merge($arAssets["CSS"], array_diff($GLOBALS["APPLICATION"]->sPath2css, $arCss)); $arAssets["JS"] = array_merge($arAssets["JS"], array_diff($GLOBALS["APPLICATION"]->arHeadScripts, $arJs)); unset($arComments["UF"]["UF_SONET_COM_URL_PRV"]); } $arTmpCommentEvent["UF"] = $arComments["UF"]; if (isset($arTmpCommentEvent["EVENT_FORMATTED"]) && is_array($arTmpCommentEvent["EVENT_FORMATTED"])) { $arFields2Cache = array("DATETIME", "MESSAGE", "FULL_MESSAGE_CUT", "ERROR_MSG"); foreach ($arTmpCommentEvent["EVENT_FORMATTED"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arTmpCommentEvent["EVENT_FORMATTED"][$field]); } } } if (isset($arTmpCommentEvent["EVENT"]) && is_array($arTmpCommentEvent["EVENT"])) { if (!empty($arTmpCommentEvent["EVENT"]["URL"])) { $arTmpCommentEvent["EVENT"]["URL"] = str_replace("#GROUPS_PATH#", COption::GetOptionString("socialnetwork", "workgroups_page", "/workgroups/", SITE_ID), $arTmpCommentEvent["EVENT"]["URL"]); } $arFields2Cache = array("ID", "SOURCE_ID", "EVENT_ID", "USER_ID", "LOG_DATE", "RATING_TYPE_ID", "RATING_ENTITY_ID", "URL"); foreach ($arTmpCommentEvent["EVENT"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arTmpCommentEvent["EVENT"][$field]); } } } if (isset($arTmpCommentEvent["CREATED_BY"]) && is_array($arTmpCommentEvent["CREATED_BY"])) { $arFields2Cache = array("TOOLTIP_FIELDS", "FORMATTED", "URL"); foreach ($arTmpCommentEvent["CREATED_BY"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arTmpCommentEvent["CREATED_BY"][$field]); } } if (isset($arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"]) && is_array($arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"])) { $arFields2Cache = array("ID", "PATH_TO_SONET_USER_PROFILE", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN", "EMAIL"); foreach ($arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"][$field]); } } } } } foreach ($arTmpCommentEvent["EVENT"] as $key => $value) { if (strpos($key, "~") === 0) { unset($arTmpCommentEvent["EVENT"][$key]); } } return $arTmpCommentEvent; }
</div> <?php } ?> <div class="blog-qtl<?php if (in_array($CurPost["PUBLISH_STATUS"], array(BLOG_PUBLISH_STATUS_READY, BLOG_PUBLISH_STATUS_DRAFT))) { ?> blog-post-hidden<?php } ?> "> <div class="blog-qtr"> <div class="blog-idea-body"> <div class="idea-owner"> <div class="bx-idea-condition-description status-color-<?php echo ToLower($arStatusList[$CurPost["POST_PROPERTIES"]["DATA"]["UF_STATUS"]["VALUE"]]["XML_ID"]); ?> "> <div <?php if ($arResult["IDEA_MODERATOR"]) { ?> class="status-action idea-action-cursor" onclick="JSPublicIdea.ShowStatusDialog(this, '<?php echo $CurPost["ID"]; ?> ')" id="status-<?php echo $CurPost["ID"]; ?> "<?php } ?> ><?php
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if ($arParams["SET_NAV_CHAIN_IDEA"] == "Y") { $Category = $arResult["POST_PROPERTIES"]["DATA"]["UF_CATEGORY_CODE"]["VALUE"]; $bParentCat = false; $arCategoryList = CIdeaManagment::getInstance()->Idea()->GetCategoryList(); if (isset($arCategoryList[$Category])) { if ($arCategoryList[$Category]["DEPTH_LEVEL"] > 1) { foreach ($arCategoryList as $Cat) { if ($arCategoryList[$Category]["IBLOCK_SECTION_ID"] == $Cat["ID"]) { $APPLICATION->AddChainItem($Cat["NAME"], str_replace("#category_1#", ToLower($Cat["CODE"]), $arParams["EXT"][0]["PATH_TO_CATEGORY_1"])); $bParentCat = true; break; } } } if ($bParentCat) { $APPLICATION->AddChainItem($arCategoryList[$Category]["NAME"], str_replace(array("#category_1#", "#category_2#"), array(ToLower($Cat["CODE"]), ToLower($Category)), $arParams["EXT"][0]["PATH_TO_CATEGORY_2"])); } else { $APPLICATION->AddChainItem($arCategoryList[$Category]["NAME"], str_replace(array("#category_1#"), array(ToLower($Category)), $arParams["EXT"][0]["PATH_TO_CATEGORY_1"])); } if (isset($arResult["Post"]["TITLE"])) { $APPLICATION->AddChainItem($arResult["Post"]["TITLE"]); } } }
$sort_order = $_SESSION["order"]; } else { $sort_order = ToLower($arParams["ELEMENT_SORT_ORDER"]); } } foreach ($arAvailableSort as $key => $val) { $newSort = $sort_order == 'desc' ? 'asc' : 'desc'; ?> <a rel="nofollow" href="<?php echo $APPLICATION->GetCurPageParam('sort=' . $key . '&order=' . $newSort, array('sort', 'order', 'mode')); ?> " class="button_middle <?php echo $sort == $key ? 'current' : ''; ?> <?php echo ToLower($sort_order); ?> <?php echo $key; ?> " rel="nofollow"> <i></i><span><?php echo GetMessage('SECT_SORT_' . $key); ?> </span> </a> <?php } ?> </div> <div class="sort_display">
?> <option value="<?php echo htmlspecialcharsbx($intPropID); ?> " <?php echo $strSelected; ?> ><?php echo htmlspecialcharsex($arIBlock['OFFERS_PROPERTY'][$intPropID]['NAME']); ?> </option><?php } ?> </select></td> <td valign="top"><select name="SKU_PROP_SELECT" id="SKU_PROP_SELECT"><option value="">--- <?php echo ToLower(GetMessage('YANDEX_SKU_EXPORT_PROP_COND')); ?> ---</option><?php foreach ($arCondSelectProp as $key => $value) { ?> <option value="<?php echo htmlspecialcharsbx($key); ?> " <?php echo $key == $arSKUExport['SKU_PROP_COND']['COND'] ? 'selected' : ''; ?> ><?php echo htmlspecialcharsex($value); ?> </option><?php }
function ImportUser() { if ($this->isErrorOccured) { return false; } $this->errorMessage = ""; $defaultEmail = $this->GetDefaultEmail(); if (!($arUser = $this->csv->FetchDelimiter())) { return false; } $arFields = array(); foreach ($this->arHeader as $index => $key) { if (($f = trim($arUser[$index])) != '') { $arFields[$key] = $f; } } if (!array_key_exists("NAME", $arFields) || strlen($arFields["NAME"]) < 1) { $this->errorMessage = GetMessage("CSV_IMPORT_NO_NAME") . " (" . implode(", ", $arFields) . ").<br>"; return true; } if (!array_key_exists("LAST_NAME", $arFields) || strlen($arFields["LAST_NAME"]) < 1) { $this->errorMessage = GetMessage("CSV_IMPORT_NO_LASTNAME") . " (" . implode(", ", $arFields) . ").<br>"; return true; } if (!array_key_exists("PASSWORD", $arFields) || strlen($arFields["PASSWORD"]) < 1) { $arFields["PASSWORD"] = $this->GenerateUserPassword(6); } $arFields["CONFIRM_PASSWORD"] = $arFields["PASSWORD"]; if (!array_key_exists("EMAIL", $arFields) || strlen($arFields["EMAIL"]) < 3 || !check_email($arFields["EMAIL"])) { $arFields["EMAIL"] = $defaultEmail; } if (!array_key_exists("LOGIN", $arFields)) { $arFields["LOGIN"] = ToLower($arFields["NAME"] . " " . $arFields["LAST_NAME"]); } if (array_key_exists("PERSONAL_BIRTHDAY", $arFields) && (strlen($arFields["PERSONAL_BIRTHDAY"]) < 2 || !CheckDateTime($arFields["PERSONAL_BIRTHDAY"]))) { unset($arFields["PERSONAL_BIRTHDAY"]); } if (array_key_exists("DATE_REGISTER", $arFields) && (strlen($arFields["DATE_REGISTER"]) < 2 || !CheckDateTime($arFields["DATE_REGISTER"]))) { unset($arFields["DATE_REGISTER"]); } if ($this->externalAuthID !== null && !array_key_exists("EXTERNAL_AUTH_ID", $arFields)) { $arFields["EXTERNAL_AUTH_ID"] = $this->externalAuthID; } if (!array_key_exists("XML_ID", $arFields)) { $arFields["XML_ID"] = md5(uniqid(rand(), true)); } if (!array_key_exists("CHECKWORD", $arFields) || strlen($arFields["CHECKWORD"]) <= 0) { $arFields["CHECKWORD"] = md5(CMain::GetServerUniqID() . uniqid()); } if ($this->imageFilePath !== null) { if (array_key_exists("PERSONAL_PHOTO", $arFields) && strlen($arFields["PERSONAL_PHOTO"]) > 0) { $arFile = CFile::MakeFileArray($this->imageFilePath . "/" . $arFields["PERSONAL_PHOTO"]); $arFile["MODULE_ID"] = "main"; $arFields["PERSONAL_PHOTO"] = $arFile; } if (array_key_exists("WORK_LOGO", $arFields) && strlen($arFields["WORK_LOGO"]) > 0) { $arFile = CFile::MakeFileArray($this->imageFilePath . "/" . $arFields["WORK_LOGO"]); $arFile["MODULE_ID"] = "main"; $arFields["WORK_LOGO"] = $arFile; } } else { unset($arFields["PERSONAL_PHOTO"]); unset($arFields["WORK_LOGO"]); } $arFields["GROUP_ID"] = $this->userGroups; $user = new CUser(); $userID = (int) $user->Add($arFields); if ($userID <= 0) { if ($user->LAST_ERROR != '') { $this->errorMessage = $arFields["NAME"] . " " . $arFields["LAST_NAME"] . ": " . $user->LAST_ERROR; } } if ($userID <= 0 && $this->ignoreDuplicate === false) { $postFix = 2; $login = $arFields["LOGIN"]; do { $rsUser = CUser::GetByLogin($arFields["LOGIN"]); if (!$rsUser->Fetch()) { break; } $arFields["LOGIN"] = $login . $postFix; $userID = (int) $user->Add($arFields); if ($userID > 1) { break; } $postFix++; } while (true); } if ($userID > 0) { if ($this->attachIBlockID > 0) { $iblockSectionID = $this->__GetIBlockSectionID($arFields); if ($iblockSectionID > 0) { if (!$this->isUserPropertyCreate) { $this->isUserPropertyCreate = $this->__CreateUserProperty(); } $arUpdate = array(); $arUpdate[$this->userPropertyName] = array($iblockSectionID); $user->Update($userID, $arUpdate); } } if ($this->callback !== null) { call_user_func_array($this->callback, array(&$arFields, &$userID)); } } return true; }
} elseif ($arEvents["EVENT_ID"] == "blog_comment") { if (!array_key_exists("blog", $arSocNetFeaturesSettings) || !CSocNetFeaturesPerms::CanPerformOperation($GLOBALS["USER"]->GetID(), SONET_ENTITY_USER, $arEvents["ENTITY_ID"], "blog", "view_comment", $bCurrentUserIsAdmin)) { continue; } } else { if (!array_key_exists($arEvents["EVENT_ID"], $arSocNetFeaturesSettings) || !CSocNetFeaturesPerms::CanPerformOperation($GLOBALS["USER"]->GetID(), SONET_ENTITY_USER, $arEvents["ENTITY_ID"], $arEvents["EVENT_ID"], $arSocNetFeaturesSettings[$arEvents["EVENT_ID"]]["minoperation"][0], $bCurrentUserIsAdmin)) { continue; } } $path2Entity = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arEvents["ENTITY_ID"])); } $arDateTmp = ParseDateTime($arEvents["LOG_DATE"], CSite::GetDateFormat('FULL')); $day = IntVal($arDateTmp["DD"]); $month = IntVal($arDateTmp["MM"]); $year = IntVal($arDateTmp["YYYY"]); $dateFormated = $day . ' ' . ToLower(GetMessage('MONTH_' . $month . '_S')) . ' ' . $year; $timeFormated = $arDateTmp["HH"] . ':' . $arDateTmp["MI"] . ':' . $arDateTmp["SS"]; $arEvents["MESSAGE_FORMAT"] = htmlspecialcharsback($arEvents["MESSAGE"]); if (StrLen($arEvents["CALLBACK_FUNC"]) > 0) { if (StrLen($arEvents["MODULE_ID"]) > 0) { CModule::IncludeModule($arEvents["MODULE_ID"]); } $arEvents["MESSAGE_FORMAT"] = call_user_func($arEvents["CALLBACK_FUNC"], $arEvents); } if ($arEvents["EVENT_ID"] == "system" || $arEvents["EVENT_ID"] == "system_friends" || $arEvents["EVENT_ID"] == "system_groups") { $arEvents["TITLE_TEMPLATE"] = ""; $arEvents["URL"] = ""; switch ($arEvents["TITLE"]) { case "join": list($titleTmp, $messageTmp) = CSocNetLog::InitUsersTmp($arEvents["MESSAGE"], GetMessage("SONET_ACTIVITY_TITLE_JOIN1"), GetMessage("SONET_ACTIVITY_TITLE_JOIN2"), $arParams); $arEvents["TITLE"] = $titleTmp;
/** * Отрисовать одно поле. * @param array $_field массив с описанием поля * @return string HTML-текст */ public static function RenderField($_field) { if (ToLower($_field['TYPE']) != 'hidden') { $result = '<div class="rf_fwrapper_o ' . $_field['WCLASS'] . '" ' . ($_field['WSTYLE'] ? 'style="' . $_field['WSTYLE'] . '" ' : '') . 'id="rf_wrapper_o_' . $_field['ID'] . '"> <div class="rf_lwrapper" id="rf_lwrapper_' . $_field['ID'] . '"> <label for="' . $_field['ID'] . '" id="rf_label_' . $_field['ID'] . '">' . $_field['LABEL'] . '</label> ' . ($_field['REQUIRED'] ? '<span class="rf_required">*</span>' : '') . ' </div> <div class="rf_fwrapper_i" id="rf_fwrapper_i_' . $_field['ID'] . '">'; } else { $result = ''; } // общая строка для большинства элементов $field = 'name="' . $_field['NAME'] . '" id="' . $_field['ID'] . '"' . ($_field['DISABLED'] ? ' disabled' : '') . ($_field['CLASS'] ? ' class="' . $_field['CLASS'] . '"' : '') . ($_field['ONCLICK'] ? ' onclick="' . $_field['ONCLICK'] . '"' : '') . ($_field['ONHOVER'] ? ' onmouseover="' . $_field['ONHOVER'] . '"' : '') . ($_field['ONCHANGE'] ? ' onchange="' . $_field['ONCHANGE'] . '"' : '') . ($_field['ONHOUT'] ? ' onmouseout="' . $_field['ONHOUT'] . '"' : ''); // типы почти по алфавиту switch (ToLower($_field['TYPE'])) { // привязка к теме форума с возможностью создать новую case 'bind_forum_topic2': $result .= '<div class="rf_selectforum"> <select id="' . $_field['ID'] . '_selectforum" name="' . $_field['NAME'] . '_selectforum"> <option value="" selected></option>'; foreach ($_field['FORUMS'] as $k => $v) { $result .= '<option value="' . $k . '">' . $v . '</option>'; } $result .= '</select></div> <div class="rf_createtopic"> <div class="rf_inner_label" id="rf_inner_label_' . $_field['ID'] . '"> <label for="' . $_field['ID'] . '_createtopic">Название темы форума</label> </div> <div class="rf_inner_input" id="rf_inner_input_' . $_field['ID'] . '"> <input type="text" id="' . $_field['ID'] . '_createtopic" name="' . $_field['NAME'] . '_createtopic"> </div> </div>'; // обратите внимание - тут нет брейка, следом должен идти bind_forum_topic1 // привязка к теме форума // привязка к теме форума case 'bind_forum_topic1': $result .= '<input type="text" ' . $field . ' value="' . $_field['VALUE'] . '"> <input type="button" onclick="jsUtils.OpenWindow(\'/bitrix/admin/forum_topics_search_gs.php?FC=' . $_field['ID'] . ($_field['FORUM_ID'] ? '&FORUM_ID=' . $_field['FORUM_ID'] : '') . '\', 600, 500);" value="...">'; break; // привязка к элементу инфоблока с возможностью создать новый // привязка к элементу инфоблока с возможностью создать новый case 'bind_iblock_element2': $result .= '<span class="rf_command" onclick="document.getElementById(\'' . $_field['ID'] . '_creatediv\').style.display=\'block\';">Создать</span> <div class="rf_hidden" id="' . $_field['ID'] . '_creatediv">'; $result .= CFormRenderer::RenderFields($_field); $result .= '</div>'; // обратите внимание - тут нет брейка, следом должен идти bind_iblock_element1 // привязка к элементу инфоблока // привязка к элементу инфоблока case 'bind_iblock_element1': $result .= '<input type="text" ' . $field . ' value="' . $_field['VALUE'] . '"> <span id="sp_' . md5($_field['ID']) . '_text">' . $_field['SPAN_VALUE'] . '</span> <input type="button" onclick="jsUtils.OpenWindow(\'/bitrix/admin/iblock_element_search.php?IBLOCK_ID=' . (int) $_field['IBLOCK_ID'] . '&n=' . $_field['ID'] . '&k=text\', 600, 500);" value="...">'; break; // привязка к пользователю // привязка к пользователю case 'bind_user': $result .= '<input type="text" ' . $field . ' value="' . $_field['VALUE'] . '"> <span id="div_sp_' . md5($_field['ID']) . '_text">' . $_field['SPAN_VALUE'] . '</span> <input type="button" onclick="jsUtils.OpenWindow(\'/bitrix/admin/user_search.php?FN=' . CFormRenderer::$formname . '&FC=' . $_field['ID'] . '\', 600, 500);" value="...">'; // немного говнеца в стиле битрикса $result .= '<iframe id="rf_iframe_' . $_field['ID'] . '" style="width: 0; height: 0; border: none;"></iframe> <script type="text/javascript"> var prev_' . $_field['ID'] . '_val = \'' . $_field['VALUE'] . '\'; function rf_input_' . $_field['ID'] . '_check() { var val = document.getElementById(\'' . $_field['ID'] . '\').value; if(val != prev_' . $_field['ID'] . '_val) { document.getElementById("rf_iframe_' . $_field['ID'] . '").src=\'/bitrix/admin/get_user.php?ID=\' + val + \'&strName=sp_' . md5($_field['ID']) . '_text&lang=ru&admin_section=Y\'; prev_' . $_field['ID'] . '_val = val; } } setInterval(function() { rf_input_' . $_field['ID'] . '_check(); }, 1000); </script>'; break; // кнопарь // кнопарь case 'button': $result .= '<input type="button" ' . $field . ' value="' . $_field['VALUE'] . '">'; break; // обычный текстовый инпут с календариком // обычный текстовый инпут с календариком case 'date': ob_start(); global $APPLICATION; $APPLICATION->IncludeComponent("bitrix:main.calendar", "", array("SHOW_INPUT" => "Y", "FORM_NAME" => CFormRenderer::$formname, "INPUT_NAME" => $_field['NAME'], "INPUT_NAME_FINISH" => "", "INPUT_VALUE" => $_field['VALUE'], "INPUT_VALUE_FINISH" => "", "SHOW_TIME" => "N", "HIDE_TIMEBAR" => "N")); $result .= ob_get_clean(); /*$result .= '<input type="text" '.$field.' value="'.htmlspecialchars($_field['VALUE']).'">' .Calendar($_field['NAME'], CFormRenderer::$formname);*/ break; // файл // файл case 'file': $result .= '<input type="file" ' . $field . '>'; break; // хидден // хидден case 'hidden': $result .= '<input type="hidden" ' . $field . ' value="' . htmlspecialcharsEx($_field['VALUE']) . '">'; break; // множественная привязка к элементу инфоблока // множественная привязка к элементу инфоблока case 'multibind_iblock_element1': $max_i = 10; if (is_array($_field['VALUE'])) { $max_i = sizeof($_field['VALUE']) + 10; } for ($i = 0; $i < $max_i; $i++) { $result .= '<div class="rf_multielementbind_wrapper' . ($i && !$_field['VALUE'][$i] ? ' rf_hidden' : '') . '" id="multielementbind_wrapper_' . $_field['ID'] . '_' . $i . '">'; $result .= '<input type="text" ' . 'name="' . $_field['NAME'] . '_' . $i . '" id="' . $_field['ID'] . '_' . $i . '"' . ' value="' . $_field['VALUE'][$i] . '"> <span id="sp_' . md5($_field['ID']) . '_text">' . $_field['SPAN_VALUE'][$i] . '</span> <input type="button" onclick="jsUtils.OpenWindow(\'/bitrix/admin/iblock_element_search.php?lang=ru&IBLOCK_ID=' . (int) $_field['IBLOCK_ID'] . '&n=' . $_field['ID'] . '_' . $i . '&k=text\', 600, 500);" value="...">' . ($i == $max_i - 1 ? '' : '<span class="rf_command" onclick="document.getElementById(\'multielementbind_wrapper_' . $_field['ID'] . '_' . ($i + 1) . '\').style.display = \'block\';this.style.display=\'none\';">Ещё...</span>') . '</div>'; } break; // множественная привязка к элементу инфоблока с возможностью создать новый // множественная привязка к элементу инфоблока с возможностью создать новый case 'multibind_iblock_element2': $max_i = 10; if (is_array($_field['VALUE'])) { $max_i = sizeof($_field['VALUE']) + 10; } for ($i = 0; $i < $max_i; $i++) { $result .= '<div class="rf_multielementbind_wrapper' . ($i && !$_field['VALUE'][$i] ? ' rf_hidden' : '') . '" id="multielementbind_wrapper_' . $_field['ID'] . '_' . $i . '"> <span class="rf_command" onclick="document.getElementById(\'' . $_field['ID'] . '_creatediv_' . $i . '\').style.display=\'block\';">Создать</span> <div class="rf_hidden" id="' . $_field['ID'] . '_creatediv_' . $i . '">'; $result .= CFormRenderer::RenderFields($_field, 'sub_', '_' . $i); $result .= '</div>'; $result .= '<input type="text" ' . 'name="' . $_field['NAME'] . '_' . $i . '" id="' . $_field['ID'] . '_' . $i . '"' . ' value="' . $_field['VALUE'][$i] . '"> <span id="sp_' . md5($_field['ID'] . '_' . $i) . '_text">' . $_field['SPAN_VALUE'][$i] . '</span> <input type="button" onclick="jsUtils.OpenWindow(\'/bitrix/admin/iblock_element_search.php?lang=ru&IBLOCK_ID=' . (int) $_field['IBLOCK_ID'] . '&n=' . $_field['ID'] . '_' . $i . '&k=text\', 600, 500);" value="...">' . ($i == $max_i - 1 ? '' : '<span class="rf_command" onclick="document.getElementById(\'multielementbind_wrapper_' . $_field['ID'] . '_' . ($i + 1) . '\').style.display = \'block\';this.style.display=\'none\';">Ещё...</span>') . '</div>'; } break; // множественная привязка к пользователям // множественная привязка к пользователям case 'multibind_user': $max_i = 5; if (is_array($_field['VALUE'])) { $max_i = sizeof($_field['VALUE']) + 5; } for ($i = 0; $i < $max_i; $i++) { $result .= '<div class="rf_multielementbind_wrapper' . ($i && !$_field['VALUE'][$i] ? ' rf_hidden' : '') . '" id="multiuserbind_wrapper_' . $_field['ID'] . '_' . $i . '">' . '<input type="text" ' . 'name="' . $_field['NAME'] . '_' . $i . '" id="' . $_field['ID'] . '_' . $i . '"' . ' value="' . $_field['VALUE'][$i] . '"> <span id="div_sp_' . md5($_field['ID'] . '_' . $i) . '_text">' . $_field['SPAN_VALUE'][$i] . '</span> <input type="button" onclick="jsUtils.OpenWindow(\'/bitrix/admin/user_search.php?FN=' . CFormRenderer::$formname . '&FC=' . $_field['ID'] . '_' . $i . '\', 600, 500);" value="...">' . ('<iframe id="rf_iframe_' . $_field['ID'] . '_' . $i . '" style="width: 0; height: 0; border: none;"></iframe> <script type="text/javascript"> var prev_' . $_field['ID'] . '_' . $i . '_val = \'' . $_field['VALUE'][$i] . '\'; function rf_input_' . $_field['ID'] . '_' . $i . '_check() { var val = document.getElementById(\'' . $_field['ID'] . '_' . $i . '\').value; if(val != prev_' . $_field['ID'] . '_' . $i . '_val) { document.getElementById("rf_iframe_' . $_field['ID'] . '_' . $i . '").src=\'/bitrix/admin/get_user.php?ID=\' + val + \'&strName=sp_' . md5($_field['ID'] . '_' . $i) . '_text&lang=ru&admin_section=Y\'; prev_' . $_field['ID'] . '_' . $i . '_val = val; } } setInterval(function() { rf_input_' . $_field['ID'] . '_' . $i . '_check(); }, 1000); </script>') . ($i == $max_i - 1 ? '' : '<span class="rf_command" onclick="document.getElementById(\'multiuserbind_wrapper_' . $_field['ID'] . '_' . ($i + 1) . '\').style.display = \'block\';this.style.display=\'none\';">Ещё...</span>') . '</div>'; } break; // множественные файлы // множественные файлы case 'multifile': $result .= '<div id="multifile_wrapper_' . $_field['ID'] . '_0" class="rf_multifile_wrapper"> <input type="file" id="' . $_field['ID'] . '_0" name="' . $_field['NAME'] . '_0"> <span class="rf_command" onclick="document.getElementById(\'multifile_wrapper_' . $_field['ID'] . '_1\').style.display=\'block\';">Ещё</span></div>'; for ($i = 1; $i < 5; $i++) { $result .= '<div id="multifile_wrapper_' . $_field['ID'] . '_' . $i . '" class="rf_multifile_wrapper rf_hidden"> <input type="file" id="' . $_field['ID'] . '_' . $i . '" name="' . $_field['NAME'] . '_' . $i . '">'; if ($i < 4) { $result .= '<span class="rf_command" onclick="document.getElementById(\'multifile_wrapper_' . $_field['ID'] . '_' . ($i + 1) . '\').style.display=\'block\';">Ещё</span>'; } $result .= '</div>'; } break; // селект с возможностью создать новый элемент // селект с возможностью создать новый элемент case 'selectplus': $result .= '<div class="rf_hidden" id="' . $_field['ID'] . '_creatediv"> <input type="text" id="' . $_field['ID'] . '_addnew" name="' . $_field['NAME'] . '_addnew"> </div> <span class="rf_command" onclick="document.getElementById(\'' . $_field['ID'] . '_creatediv\').style.display=\'block\';">Добавить элемент</span>'; // обратите внимание на отсутствие брейка - далене должен идти case 'select' // селект // селект case 'select': $result .= '<select ' . $field . '> <option value=""' . ($_field['VALUE'] == '' ? ' selected' : '') . '></option>'; foreach ($_field['ITEMS'] as $k => $v) { $result .= '<option value="' . $k . '"' . ($_field['VALUE'] == $k ? ' selected' : '') . '>' . $v . '</option>'; } $result .= '</select>'; break; // сабмит // сабмит case 'submit': $result .= '<input type="submit" ' . $field . ' value="' . $_field['VALUE'] . '">'; break; // текстареа // текстареа case 'textarea': $result .= '<textarea ' . $field . ' rows="10" cols="60">' . htmlspecialchars($_field['VALUE']) . '</textarea>'; break; // массив текстовых полей с ключами // массив текстовых полей с ключами case 'textarray': if (is_array($_field['VALUE'])) { $sizeof = sizeof($_field['VALUE']); } else { $_field['VALUE'] = array(array('' => '')); $sizeof = 5; } $result .= '<table id="' . $_field['ID'] . '_table">'; $i = 0; foreach ($_field['VALUE'] as &$v) { $result .= '<tr id="' . $_field['ID'] . '_tr_' . $i . '"> <td><input type="text" class="' . $_field['CLASS'] . ' rf_textarray_key" name="' . $_field['ID'] . '_key[' . $i . ']" id="' . $_field['ID'] . '_key_' . $i . '" value="' . htmlspecialchars($k) . '"></td> <td><input type="text" class="' . $_field['CLASS'] . ' rf_textarray_value" name="' . $_field['ID'] . '_value[' . $i . ']" id="' . $_field['ID'] . '_key_' . $i . '" value="' . htmlspecialchars($v) . '"></td> </tr>'; $i++; } // тут немножко говнеца $result .= '</table> <script type="text/javascript"> var last' . $_field['ID'] . '_counter = "' . $i . '"; </script> <span class="rf_command" onclick=" var newtr = document.createElement(\'tr\'); newtr.id = \'' . $_field['ID'] . '_tr_\' + last' . $_field['ID'] . '_counter; document.getElementById(\'' . $_field['ID'] . '_table\').appendChild(newtr); var newinp = document.createElement(\'input\'); newinp.type = \'text\'; newinp.className = \'' . $_field['CLASS'] . ' rf_textarray_key\'; newinp.id = \'' . $_field['ID'] . '_key_\' + last' . $_field['ID'] . '_counter; newinp.name = \'' . $_field['ID'] . '_key[\' + last' . $_field['ID'] . '_counter + \']\'; var newtd = document.createElement(\'td\'); newtr.appendChild(newtd); newtd.appendChild(newinp); newinp = document.createElement(\'input\'); newinp.type = \'text\'; newinp.className = \'' . $_field['CLASS'] . ' rf_textarray_key\'; newinp.id = \'' . $_field['ID'] . '_value_\' + last' . $_field['ID'] . '_counter; newinp.name = \'' . $_field['ID'] . '_value[\' + last' . $_field['ID'] . '_counter + \']\'; newtd = document.createElement(\'td\'); newtr.appendChild(newtd); newtd.appendChild(newinp) last' . $_field['ID'] . '_counter++; ">Ещё</span>'; break; // привязка к Яндекс-карте // привязка к Яндекс-карте case 'yandexmap': require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/fileman/properties.php'; ob_start(); CIBlockPropertyMapYandex::GetPropertyFieldHtml(array('ID' => $_field['ID'], 'NAME' => $_field['LABEL'], 'ACTIVE' => 'Y', 'CODE' => $_field['NAME'], 'MULTIPLE' => 'N', 'USER_TYPE' => 'map_yandex', 'USER_TYPE_SETTINGS' => ''), array('VALUE' => $_field['VALUE']), array('VALUE' => $_field['NAME'], 'FORM_NAM' => CFormRenderer::$formname, 'MODE' => 'FORM_FILL')); $cart = ob_get_clean(); if ($_field['MAP_CENTER']) { $cart = str_replace('map.disableRuler();', 'map.disableRuler(); map.setCenter(new context.YMaps.GeoPoint(' . $_field['MAP_CENTER'] . '), 10, context.YMaps.MapType.MAP);', $cart); } $result .= $cart; break; //Пароль //Пароль case 'password': $result .= '<input type="password" ' . $field . '>'; break; // обычный текстовый инпут // обычный текстовый инпут case 'text': default: $result .= '<input type="text" ' . $field . ' value="' . htmlspecialchars($_field['VALUE']) . '">'; break; } if (ToLower($_field['TYPE'] != 'hidden')) { $result .= '</div></div>'; } return $result; }
<td class="time"><?php echo $flight['TIME']['ESTIMATED']['TIME']; echo isset($flight['TIME']['ESTIMATED']['DATE']['DAY']) ? ' <div class="date">' . $flight['TIME']['ESTIMATED']['DATE']['DAY'] . '/' . $flight['TIME']['ESTIMATED']['DATE']['MONTH'] . '</div>' : ""; ?> </td> <td class="time"><?php echo $flight['TIME']['ACTUAL']['TIME']; echo isset($flight['TIME']['ACTUAL']['DATE']['DAY']) ? ' <div class="date">' . $flight['TIME']['ACTUAL']['DATE']['DAY'] . '/' . $flight['TIME']['ACTUAL']['DATE']['MONTH'] . '</div>' : ""; ?> </td> <td class="terminal"><?php echo $flight['TERMINAL']; ?> </td> <td class="state state_<?php echo ToLower($flight['STATUS']['CODE']); ?> "><?php echo $flight['STATUS']['NAME']; ?> </td> </tr> <?php } ?> </tbody> </table> <?php } ?> <?php
$arResult["Post"]["DATE_PUBLISH_DATE"] = FormatDateFromDB($arResult["Post"]["DATE_PUBLISH"], FORMAT_DATE); if (strcasecmp(LANGUAGE_ID, 'EN') !== 0 && strcasecmp(LANGUAGE_ID, 'DE') !== 0) { $arResult["Post"]["DATE_PUBLISH_FORMATED"] = ToLower($arResult["Post"]["DATE_PUBLISH_FORMATED"]); $arResult["Post"]["DATE_PUBLISH_DATE"] = ToLower($arResult["Post"]["DATE_PUBLISH_DATE"]); } // strip current year if (!empty($arParams['DATE_TIME_FORMAT_S']) && ($arParams['DATE_TIME_FORMAT_S'] == 'j F Y G:i' || $arParams['DATE_TIME_FORMAT_S'] == 'j F Y g:i a')) { $arResult["Post"]["DATE_PUBLISH_FORMATED"] = ltrim($arResult["Post"]["DATE_PUBLISH_FORMATED"], '0'); $arResult["Post"]["DATE_PUBLISH_DATE"] = ltrim($arResult["Post"]["DATE_PUBLISH_DATE"], '0'); $curYear = date('Y'); $arResult["Post"]["DATE_PUBLISH_FORMATED"] = str_replace(array('-' . $curYear, '/' . $curYear, ' ' . $curYear, '.' . $curYear), '', $arResult["Post"]["DATE_PUBLISH_FORMATED"]); $arResult["Post"]["DATE_PUBLISH_DATE"] = str_replace(array('-' . $curYear, '/' . $curYear, ' ' . $curYear, '.' . $curYear), '', $arResult["Post"]["DATE_PUBLISH_DATE"]); } $arResult["Post"]["DATE_PUBLISH_TIME"] = FormatDateFromDB($arResult["Post"]["DATE_PUBLISH"], strpos($arParams["DATE_TIME_FORMAT_S"], 'a') !== false || ($arParams["DATE_TIME_FORMAT_S"] == 'FULL' && IsAmPmMode()) !== false ? strpos(FORMAT_DATETIME, 'TT') !== false ? 'G:MI TT' : 'G:MI T' : 'GG:MI'); if (strcasecmp(LANGUAGE_ID, 'EN') !== 0 && strcasecmp(LANGUAGE_ID, 'DE') !== 0) { $arResult["Post"]["DATE_PUBLISH_TIME"] = ToLower($arResult["Post"]["DATE_PUBLISH_TIME"]); } $arResult["arUser"] = CBlogUser::GetUserInfo($arPost["AUTHOR_ID"], $arParams["PATH_TO_USER"], array("AVATAR_SIZE" => isset($arParams["AVATAR_SIZE_COMMON"]) ? $arParams["AVATAR_SIZE_COMMON"] : $arParams["AVATAR_SIZE"], "AVATAR_SIZE_COMMENT" => $arParams["AVATAR_SIZE_COMMENT"])); $arResult["arUser"]["isExtranet"] = intval($arPost["AUTHOR_ID"]) > 0 && is_array($GLOBALS["arExtranetUserID"]) && in_array($arPost["AUTHOR_ID"], $GLOBALS["arExtranetUserID"]); $arResult["Post"]["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => $arPost["AUTHOR_ID"])); if (strlen($arPost["CATEGORY_ID"]) > 0) { $bHasTag = true; $arCategory = explode(",", $arPost["CATEGORY_ID"]); $dbCategory = CBlogCategory::GetList(array(), array("@ID" => $arCategory)); while ($arCatTmp = $dbCategory->Fetch()) { $arCatTmp["~NAME"] = $arCatTmp["NAME"]; $arCatTmp["NAME"] = htmlspecialcharsEx($arCatTmp["NAME"]); $arCatTmp["urlToCategory"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_SEARCH_TAG"], array("tag" => urlencode($arCatTmp["NAME"]))); $arResult["Category"][] = $arCatTmp; } }
} $arParams['LINE_ELEMENT_COUNT'] = intval($arParams['LINE_ELEMENT_COUNT']); if (2 > $arParams['LINE_ELEMENT_COUNT'] || 5 < $arParams['LINE_ELEMENT_COUNT']) { $arParams['LINE_ELEMENT_COUNT'] = 3; } if (!in_array($arParams['VIEW_MODE'], $arViewModeList)) { $arParams['VIEW_MODE'] = 'SECTION'; } $arParams['TEMPLATE_THEME'] = (string) $arParams['TEMPLATE_THEME']; if ('' != $arParams['TEMPLATE_THEME']) { $arParams['TEMPLATE_THEME'] = preg_replace('/[^a-zA-Z0-9_\\-\\(\\)\\!]/', '', $arParams['TEMPLATE_THEME']); if ('site' == $arParams['TEMPLATE_THEME']) { $arParams['TEMPLATE_THEME'] = COption::GetOptionString('main', 'wizard_eshop_adapt_theme_id', 'blue', SITE_ID); } if ('' != $arParams['TEMPLATE_THEME']) { if (!is_file($_SERVER['DOCUMENT_ROOT'] . $this->GetFolder() . '/' . ToLower($arParams['VIEW_MODE']) . '/themes/' . $arParams['TEMPLATE_THEME'] . '/style.css')) { $arParams['TEMPLATE_THEME'] = ''; } } } if ('' == $arParams['TEMPLATE_THEME']) { $arParams['TEMPLATE_THEME'] = 'blue'; } if ('Y' != $arParams['PRODUCT_DISPLAY_MODE']) { $arParams['PRODUCT_DISPLAY_MODE'] = 'N'; } if ('BANNER' == $arParams['VIEW_MODE']) { $arParams['PRODUCT_DISPLAY_MODE'] = 'N'; } $arParams['ADD_PICT_PROP'] = trim($arParams['ADD_PICT_PROP']); if ('-' == $arParams['ADD_PICT_PROP']) {