Exemple #1
0
 public static function ReplaceDetailUrl($url, $arr, $server_name = false, $arrType = false)
 {
     /** @global CDatabase $DB */
     global $DB;
     static $arSectionCache = array();
     static $arSectionPathCache = array();
     if ($server_name) {
         $url = str_replace("#LANG#", $arr["LANG_DIR"], $url);
         if (defined("ADMIN_SECTION") && ADMIN_SECTION === true || !defined("BX_STARTED")) {
             static $cache = array();
             if (!isset($cache[$arr["LID"]])) {
                 $db_lang = CLang::GetByID($arr["LID"]);
                 $arLang = $db_lang->Fetch();
                 $cache[$arr["LID"]] = $arLang;
             }
             $arLang = $cache[$arr["LID"]];
             $url = str_replace("#SITE_DIR#", $arLang["DIR"], $url);
             $url = str_replace("#SERVER_NAME#", $arLang["SERVER_NAME"], $url);
         } else {
             $url = str_replace("#SITE_DIR#", SITE_DIR, $url);
             $url = str_replace("#SERVER_NAME#", SITE_SERVER_NAME, $url);
         }
     }
     if (strpos($url, "#PRODUCT_URL#") !== false) {
         $url = str_replace("#PRODUCT_URL#", CIBlock::_GetProductUrl($arr["ID"], $arr["IBLOCK_ID"], $server_name, $arrType), $url);
     }
     static $arSearch = array("#SITE_DIR#", "#ID#", "#CODE#", "#EXTERNAL_ID#", "#IBLOCK_TYPE_ID#", "#IBLOCK_ID#", "#IBLOCK_CODE#", "#IBLOCK_EXTERNAL_ID#", "#ELEMENT_ID#", "#ELEMENT_CODE#", "#SECTION_ID#", "#SECTION_CODE#", "#SECTION_CODE_PATH#");
     $arReplace = array($arr["LANG_DIR"], intval($arr["ID"]) > 0 ? intval($arr["ID"]) : "", urlencode(isset($arr["~CODE"]) ? $arr["~CODE"] : $arr["CODE"]), urlencode(isset($arr["~EXTERNAL_ID"]) ? $arr["~EXTERNAL_ID"] : $arr["EXTERNAL_ID"]), urlencode(isset($arr["~IBLOCK_TYPE_ID"]) ? $arr["~IBLOCK_TYPE_ID"] : $arr["IBLOCK_TYPE_ID"]), intval($arr["IBLOCK_ID"]) > 0 ? intval($arr["IBLOCK_ID"]) : "", urlencode(isset($arr["~IBLOCK_CODE"]) ? $arr["~IBLOCK_CODE"] : $arr["IBLOCK_CODE"]), urlencode(isset($arr["~IBLOCK_EXTERNAL_ID"]) ? $arr["~IBLOCK_EXTERNAL_ID"] : $arr["IBLOCK_EXTERNAL_ID"]));
     if ($arrType === "E") {
         $arReplace[] = intval($arr["ID"]) > 0 ? intval($arr["ID"]) : "";
         $arReplace[] = urlencode(isset($arr["~CODE"]) ? $arr["~CODE"] : $arr["CODE"]);
         #Deal with symbol codes
         $SECTION_CODE = "";
         $SECTION_ID = intval($arr["IBLOCK_SECTION_ID"]);
         if ($SECTION_ID > 0 && (strpos($url, "#SECTION_CODE#") !== false || strpos($url, "#SECTION_CODE_PATH#") !== false)) {
             if (!array_key_exists($SECTION_ID, $arSectionCache)) {
                 $res = $DB->Query("SELECT IBLOCK_ID, CODE FROM b_iblock_section WHERE ID = " . $SECTION_ID);
                 $arSectionCache[$SECTION_ID] = $res->Fetch();
             }
             if (is_array($arSectionCache[$SECTION_ID])) {
                 $SECTION_CODE = $arSectionCache[$SECTION_ID]["CODE"];
             }
         }
         $SECTION_CODE_PATH = "";
         if ($SECTION_ID > 0 && array_key_exists($SECTION_ID, $arSectionCache) && strpos($url, "#SECTION_CODE_PATH#") !== false) {
             if (!array_key_exists($SECTION_ID, $arSectionPathCache)) {
                 $res = CIBlockSection::GetNavChain($arSectionCache[$SECTION_ID]["IBLOCK_ID"], $SECTION_ID, array("ID", "IBLOCK_SECTION_ID", "CODE"));
                 while ($a = $res->Fetch()) {
                     $arSectionPathCache[$SECTION_ID] .= urlencode($a["CODE"]) . "/";
                 }
             }
             if (isset($arSectionCache[$SECTION_ID])) {
                 $SECTION_CODE_PATH = rtrim($arSectionPathCache[$SECTION_ID], "/");
             }
         }
         $arReplace[] = $SECTION_ID > 0 ? $SECTION_ID : "";
         $arReplace[] = urlencode($SECTION_CODE);
         $arReplace[] = $SECTION_CODE_PATH;
     } elseif ($arrType === "S") {
         $SECTION_ID = intval($arr["ID"]);
         $SECTION_CODE_PATH = "";
         if (strpos($url, "#SECTION_CODE_PATH#") !== false && $SECTION_ID > 0) {
             if (!array_key_exists($SECTION_ID, $arSectionCache)) {
                 $res = $DB->Query("SELECT IBLOCK_ID, CODE FROM b_iblock_section WHERE ID = " . $SECTION_ID);
                 $arSectionCache[$SECTION_ID] = $res->Fetch();
             }
             if (is_array($arSectionCache[$SECTION_ID])) {
                 if (!array_key_exists($SECTION_ID, $arSectionPathCache)) {
                     $res = CIBlockSection::GetNavChain($arSectionCache[$SECTION_ID]["IBLOCK_ID"], $SECTION_ID, array("ID", "IBLOCK_SECTION_ID", "CODE"));
                     while ($a = $res->Fetch()) {
                         $arSectionPathCache[$SECTION_ID] .= urlencode($a["CODE"]) . "/";
                     }
                 }
                 if (isset($arSectionCache[$SECTION_ID])) {
                     $SECTION_CODE_PATH = rtrim($arSectionPathCache[$SECTION_ID], "/");
                 }
             }
         }
         $arReplace[] = "";
         $arReplace[] = "";
         $arReplace[] = $SECTION_ID > 0 ? $SECTION_ID : "";
         $arReplace[] = urlencode(isset($arr["~CODE"]) ? $arr["~CODE"] : $arr["CODE"]);
         $arReplace[] = $SECTION_CODE_PATH;
     } else {
         $arReplace[] = intval($arr["ELEMENT_ID"]) > 0 ? intval($arr["ELEMENT_ID"]) : "";
         $arReplace[] = urlencode(isset($arr["~ELEMENT_CODE"]) ? $arr["~ELEMENT_CODE"] : $arr["ELEMENT_CODE"]);
         $arReplace[] = intval($arr["IBLOCK_SECTION_ID"]) > 0 ? intval($arr["IBLOCK_SECTION_ID"]) : "";
         $arReplace[] = urlencode(isset($arr["~SECTION_CODE"]) ? $arr["~SECTION_CODE"] : $arr["SECTION_CODE"]);
         $arReplace[] = "";
     }
     $url = str_replace($arSearch, $arReplace, $url);
     return preg_replace("'(?<!:)/+'s", "/", $url);
 }
Exemple #2
0
	function CheckFields($arFields, $ID=false)
	{
		global $APPLICATION;
		$arMsg = array();

		if (is_set($arFields, 'NAME') && strlen($arFields['NAME']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_NAME', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_NAME').'"');
			$arMsg[] = array('id' => 'NAME', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_NAME').'"');
		}

		if (in_array(strtolower($arFields['SERVER_TYPE']), array('pop3', 'imap', 'controller', 'domain', 'crdomain')) && is_set($arFields, 'LOGIN') && strlen($arFields['LOGIN']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_LOGIN', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_LOGIN').'"');
			$arMsg[] = array('id' => 'LOGIN', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_LOGIN').'"');
		}

		if (in_array(strtolower($arFields['SERVER_TYPE']), array('pop3', 'imap')) && is_set($arFields, 'PASSWORD') && strlen($arFields['PASSWORD']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_PASSWORD', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_PASSWORD').'"');
			$arMsg[] = array('id' => 'PASSWORD', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_PASSWORD').'"');
		}

		if (strtolower($arFields['SERVER_TYPE']) == 'imap' && is_set($arFields, 'LINK') && strlen($arFields['LINK']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_LINK', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_LINK').'"');
			$arMsg[] = array('id' => 'LINK', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_LINK').'"');
		}

		if (in_array(strtolower($arFields['SERVER_TYPE']), array('imap', 'controller', 'domain', 'crdomain')) && is_set($arFields, 'USER_ID') && strlen($arFields['USER_ID']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_USER_ID', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_USER_ID').'"');
			$arMsg[] = array('id' => 'USER_ID', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_USER_ID').'"');
		}

		if (in_array(strtolower($arFields['SERVER_TYPE']), array('pop3', 'smtp', 'imap')) && is_set($arFields, 'SERVER') && strlen($arFields['SERVER']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_SERVER_NAME', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_SERVER').'"');
			$arMsg[] = array('id' => 'SERVER', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_SERVER').'"');
		}
		elseif (strtolower($arFields['SERVER_TYPE']) == 'smtp')
		{
			$dbres = CMailBox::GetList(array(), array('ACTIVE' => 'Y', 'SERVER_TYPE' => 'smtp', 'SERVER' => $arFields['SERVER'], 'PORT' => $arFields['PORT']));
			while($arres = $dbres->Fetch())
			{
				if ($ID === false || $arres['ID'] != $ID)
				{
					CMailError::SetError('B_MAIL_ERR_SERVER_NAME',  GetMessage('B_MAIL_ERR_SN').' "'.GetMessage('MAIL_CL_SERVER').'"');
					$arMsg[] = array('id' => 'SERVER', 'text' => GetMessage('B_MAIL_ERR_SN').' "'.GetMessage('MAIL_CL_SERVER').'"');
					break;
				}
			}
		}

		if (is_set($arFields, 'LID'))
		{
			$r = CLang::GetByID($arFields['LID']);
			if (!$r->Fetch())
			{
				CMailError::SetError('B_MAIL_ERR_BAD_LANG', GetMessage('MAIL_CL_ERR_BAD_LANG'));
				$arMsg[] = array('id' => 'LID', 'text' => GetMessage('MAIL_CL_ERR_BAD_LANG'));
			}
		}
		elseif ($ID === false)
		{
			CMailError::SetError('B_MAIL_ERR_BAD_LANG_NA', GetMessage('MAIL_CL_ERR_BAD_LANG_NX'));
			$arMsg[] = array('id' => 'LID', 'text' => GetMessage('MAIL_CL_ERR_BAD_LANG_NX'));
		}

		if ($arFields['USER_ID'])
		{
			if (is_set($arFields, 'SERVICE_ID'))
			{
				$result = Bitrix\Mail\MailServicesTable::getList(array(
					'filter' => array('=SITE_ID' => $arFields['LID'], '=ID' => $arFields['SERVICE_ID'])
				));
				if (!$result->fetch())
				{
					CMailError::SetError('B_MAIL_ERR_BAD_SERVICE_ID', GetMessage('MAIL_CL_ERR_BAD_SERVICE_ID'));
					$arMsg[] = array('id' => 'SERVICE_ID', 'text' => GetMessage('MAIL_CL_ERR_BAD_SERVICE_ID'));
				}
			}
			else if ($ID === false)
			{
				CMailError::SetError('B_MAIL_ERR_BAD_SERVICE_ID_NA', GetMessage('MAIL_CL_ERR_BAD_SERVICE_ID_NX'));
				$arMsg[] = array('id' => 'SERVICE_ID', 'text' => GetMessage('MAIL_CL_ERR_BAD_SERVICE_ID_NX'));
			}
		}

		if (!empty($arMsg))
		{
			$e = new CAdminException($arMsg);
			$APPLICATION->ThrowException($e);
			return false;
		}

		return true;
	}
Exemple #3
0
 public static function ReplaceDetailUrl($url, $arr, $server_name = false, $arrType = false)
 {
     /** @global CDatabase $DB */
     global $DB;
     if ($server_name) {
         $url = str_replace("#LANG#", $arr["LANG_DIR"], $url);
         if (defined("ADMIN_SECTION") && ADMIN_SECTION === true || !defined("BX_STARTED")) {
             static $cache = array();
             if (!isset($cache[$arr["LID"]])) {
                 $db_lang = CLang::GetByID($arr["LID"]);
                 $arLang = $db_lang->Fetch();
                 $cache[$arr["LID"]] = $arLang;
             }
             $arLang = $cache[$arr["LID"]];
             $url = str_replace("#SITE_DIR#", $arLang["DIR"], $url);
             $url = str_replace("#SERVER_NAME#", $arLang["SERVER_NAME"], $url);
         } else {
             $url = str_replace("#SITE_DIR#", SITE_DIR, $url);
             $url = str_replace("#SERVER_NAME#", SITE_SERVER_NAME, $url);
         }
     }
     if (strpos($url, "#PRODUCT_URL#") !== false) {
         $url = str_replace("#PRODUCT_URL#", CIBlock::_GetProductUrl($arr["ID"], $arr["IBLOCK_ID"], $server_name, $arrType), $url);
     }
     static $arSearch = array("#SITE_DIR#", "#ID#", "#CODE#", "#EXTERNAL_ID#", "#IBLOCK_TYPE_ID#", "#IBLOCK_ID#", "#IBLOCK_CODE#", "#IBLOCK_EXTERNAL_ID#", "#ELEMENT_ID#", "#ELEMENT_CODE#", "#SECTION_ID#", "#SECTION_CODE#", "#SECTION_CODE_PATH#");
     $arReplace = array($arr["LANG_DIR"], intval($arr["ID"]) > 0 ? intval($arr["ID"]) : "", urlencode(isset($arr["~CODE"]) ? $arr["~CODE"] : $arr["CODE"]), urlencode(isset($arr["~EXTERNAL_ID"]) ? $arr["~EXTERNAL_ID"] : $arr["EXTERNAL_ID"]), urlencode(isset($arr["~IBLOCK_TYPE_ID"]) ? $arr["~IBLOCK_TYPE_ID"] : $arr["IBLOCK_TYPE_ID"]), intval($arr["IBLOCK_ID"]) > 0 ? intval($arr["IBLOCK_ID"]) : "", urlencode(isset($arr["~IBLOCK_CODE"]) ? $arr["~IBLOCK_CODE"] : $arr["IBLOCK_CODE"]), urlencode(isset($arr["~IBLOCK_EXTERNAL_ID"]) ? $arr["~IBLOCK_EXTERNAL_ID"] : $arr["IBLOCK_EXTERNAL_ID"]));
     if ($arrType === "E") {
         $arReplace[] = intval($arr["ID"]) > 0 ? intval($arr["ID"]) : "";
         $arReplace[] = urlencode(isset($arr["~CODE"]) ? $arr["~CODE"] : $arr["CODE"]);
         #Deal with symbol codes
         $SECTION_ID = intval($arr["IBLOCK_SECTION_ID"]);
         $SECTION_CODE = "";
         if ($SECTION_ID > 0 && strpos($url, "#SECTION_CODE#") !== false) {
             $SECTION_CODE = CIBlockSection::getSectionCode($SECTION_ID);
         }
         $SECTION_CODE_PATH = "";
         if ($SECTION_ID > 0 && strpos($url, "#SECTION_CODE_PATH#") !== false) {
             $SECTION_CODE_PATH = CIBlockSection::getSectionCodePath($SECTION_ID);
         }
         $arReplace[] = $SECTION_ID > 0 ? $SECTION_ID : "";
         $arReplace[] = $SECTION_CODE;
         $arReplace[] = $SECTION_CODE_PATH;
     } elseif ($arrType === "S") {
         $SECTION_ID = intval($arr["ID"]);
         $SECTION_CODE_PATH = "";
         if ($SECTION_ID > 0 && strpos($url, "#SECTION_CODE_PATH#") !== false) {
             $SECTION_CODE_PATH = CIBlockSection::getSectionCodePath($SECTION_ID);
         }
         $arReplace[] = "";
         $arReplace[] = "";
         $arReplace[] = $SECTION_ID > 0 ? $SECTION_ID : "";
         $arReplace[] = urlencode(isset($arr["~CODE"]) ? $arr["~CODE"] : $arr["CODE"]);
         $arReplace[] = $SECTION_CODE_PATH;
     } else {
         $arReplace[] = intval($arr["ELEMENT_ID"]) > 0 ? intval($arr["ELEMENT_ID"]) : "";
         $arReplace[] = urlencode(isset($arr["~ELEMENT_CODE"]) ? $arr["~ELEMENT_CODE"] : $arr["ELEMENT_CODE"]);
         $arReplace[] = intval($arr["IBLOCK_SECTION_ID"]) > 0 ? intval($arr["IBLOCK_SECTION_ID"]) : "";
         $arReplace[] = urlencode(isset($arr["~SECTION_CODE"]) ? $arr["~SECTION_CODE"] : $arr["SECTION_CODE"]);
         $arReplace[] = "";
     }
     $url = str_replace($arSearch, $arReplace, $url);
     return preg_replace("'(?<!:)/+'s", "/", $url);
 }
Exemple #4
0
 function GetDateFormat($type = "FULL", $lang = false, $bSearchInSitesOnly = false)
 {
     $bFullFormat = strtoupper($type) == "FULL";
     if ($lang === false) {
         $lang = LANG;
     }
     if (defined("SITE_ID") && $lang == SITE_ID) {
         if ($bFullFormat && defined("FORMAT_DATETIME")) {
             return FORMAT_DATETIME;
         }
         if (!$bFullFormat && defined("FORMAT_DATE")) {
             return FORMAT_DATE;
         }
     }
     if (!$bSearchInSitesOnly && defined("ADMIN_SECTION") && ADMIN_SECTION === true) {
         global $MAIN_LANGS_ADMIN_CACHE;
         if (!is_set($MAIN_LANGS_ADMIN_CACHE, $lang)) {
             $res = CLanguage::GetByID($lang);
             if ($res = $res->Fetch()) {
                 $MAIN_LANGS_ADMIN_CACHE[$res["LID"]] = $res;
             }
         }
         if (is_set($MAIN_LANGS_ADMIN_CACHE, $lang)) {
             if ($bFullFormat) {
                 return strtoupper($MAIN_LANGS_ADMIN_CACHE[$lang]["FORMAT_DATETIME"]);
             }
             return strtoupper($MAIN_LANGS_ADMIN_CACHE[$lang]["FORMAT_DATE"]);
         }
     }
     // if LANG is not found in LangAdmin:
     global $MAIN_LANGS_CACHE;
     if (!is_set($MAIN_LANGS_CACHE, $lang)) {
         $res = CLang::GetByID($lang);
         $res = $res->Fetch();
         $MAIN_LANGS_CACHE[$res["LID"]] = $res;
         if (defined("ADMIN_SECTION") && ADMIN_SECTION === true) {
             $MAIN_LANGS_ADMIN_CACHE[$res["LID"]] = $res;
         }
     }
     if ($bFullFormat) {
         $format = strtoupper($MAIN_LANGS_CACHE[$lang]["FORMAT_DATETIME"]);
         if ($format == '') {
             $format = "DD.MM.YYYY HH:MI:SS";
         }
     } else {
         $format = strtoupper($MAIN_LANGS_CACHE[$lang]["FORMAT_DATE"]);
         if ($format == '') {
             $format = "DD.MM.YYYY";
         }
     }
     return $format;
 }
Exemple #5
0
 function Reindex($ID, &$arMessage)
 {
     if (!($ID > 0) || !CModule::IncludeModule("search")) {
         return array("FORUM_ID", "TOPIC_ID", "TITLE_SEO", "MESSAGE_ID", "SOCNET_GROUP_ID", "OWNER_ID", "PARAM1", "PARAM2");
     }
     if (!is_array($arMessage) || !array_key_exists("FORUM_INFO", $arMessage) || !array_key_exists("TOPIC_INFO", $arMessage)) {
         $arMessage = CForumMessage::GetByIDEx($ID, array("GET_TOPIC_INFO" => "Y", "GET_FORUM_INFO" => "Y", "FILTER" => "Y"));
     }
     $arMessage["POST_MESSAGE"] = COption::GetOptionString("forum", "FILTER", "Y") == "Y" ? $arMessage["POST_MESSAGE_FILTER"] : $arMessage["POST_MESSAGE"];
     $arParams = array("PERMISSION" => array(), "SITE" => CForumNew::GetSites($arMessage["FORUM_ID"]), "DEFAULT_URL" => "/");
     $arGroups = CForumNew::GetAccessPermissions($arMessage["FORUM_ID"]);
     for ($i = 0; $i < count($arGroups); $i++) {
         if ($arGroups[$i][1] >= "E") {
             $arParams["PERMISSION"][] = $arGroups[$i][0];
             if ($arGroups[$i][0] == 2) {
                 break;
             }
         }
     }
     $arSearchInd = array("LID" => array(), "LAST_MODIFIED" => $arMessage["POST_DATE"], "PARAM1" => $arMessage["FORUM_ID"], "PARAM2" => $arMessage["TOPIC_ID"], "PERMISSIONS" => $arParams["PERMISSION"], "TITLE" => $arMessage["TOPIC_INFO"]["TITLE"] . ($arMessage["NEW_TOPIC"] == "Y" && !empty($arMessage["TOPIC_INFO"]["DESCRIPTION"]) ? ", " . $arMessage["TOPIC_INFO"]["DESCRIPTION"] : ""), "TAGS" => $arMessage["NEW_TOPIC"] == "Y" ? $arMessage["TOPIC_INFO"]["TAGS"] : "", "BODY" => GetMessage("AVTOR_PREF") . " " . $arMessage["AUTHOR_NAME"] . ". " . forumTextParser::clearAllTags($arMessage["POST_MESSAGE"]), "ENTITY_TYPE_ID" => $arMessage["NEW_TOPIC"] == "Y" ? "FORUM_TOPIC" : "FORUM_POST", "ENTITY_ID" => $arMessage["NEW_TOPIC"] == "Y" ? $arMessage["TOPIC_ID"] : $arMessage["ID"], "USER_ID" => $arMessage["AUTHOR_ID"], "URL" => "", "INDEX_TITLE" => $arMessage["NEW_TOPIC"] == "Y");
     // get mentions
     $arMentionedUserID = CForumMessage::GetMentionedUserID($arMessage["POST_MESSAGE"]);
     if (!empty($arMentionedUserID)) {
         $arSearchInd["PARAMS"] = array("mentioned_user_id" => $arMentionedUserID);
     }
     $urlPatterns = array("FORUM_ID" => $arMessage["FORUM_ID"], "TOPIC_ID" => $arMessage["TOPIC_ID"], "TITLE_SEO" => $arMessage["TOPIC_INFO"]["TITLE_SEO"], "MESSAGE_ID" => $arMessage["ID"], "SOCNET_GROUP_ID" => $arMessage["TOPIC_INFO"]["SOCNET_GROUP_ID"], "OWNER_ID" => $arMessage["TOPIC_INFO"]["OWNER_ID"], "PARAM1" => $arMessage["PARAM1"], "PARAM2" => $arMessage["PARAM2"]);
     foreach ($arParams["SITE"] as $key => $val) {
         $arSearchInd["LID"][$key] = CForumNew::PreparePath2Message($val, $urlPatterns);
         if (empty($arSearchInd["URL"]) && !empty($arSearchInd["LID"][$key])) {
             $arSearchInd["URL"] = $arSearchInd["LID"][$key];
         }
     }
     if (empty($arSearchInd["URL"])) {
         foreach ($arParams["SITE"] as $key => $val) {
             $db_lang = CLang::GetByID($key);
             if ($db_lang && ($ar_lang = $db_lang->Fetch())) {
                 $arParams["DEFAULT_URL"] = $ar_lang["DIR"];
                 break;
             }
         }
         $arParams["DEFAULT_URL"] .= COption::GetOptionString("forum", "REL_FPATH", "") . "forum/read.php?FID=#FID#&TID=#TID#&MID=#MID##message#MID#";
         $arSearchInd["URL"] = CForumNew::PreparePath2Message($arParams["DEFAULT_URL"], $urlPatterns);
     }
     CSearch::DeleteIndex("forum", $ID);
     CSearch::Index("forum", $ID, $arSearchInd, true);
 }
Exemple #6
0
 function CheckFields($arFields)
 {
     global $DB;
     $this->LAST_ERROR = "";
     $aMsg = array();
     if (strlen($arFields["NAME"]) == 0) {
         $aMsg[] = array("id" => "NAME", "text" => GetMessage("class_rub_err_name"));
     }
     if (strlen($arFields["LID"]) > 0) {
         $r = CLang::GetByID($arFields["LID"]);
         if (!$r->Fetch()) {
             $aMsg[] = array("id" => "LID", "text" => GetMessage("class_rub_err_lang"));
         }
     } else {
         $aMsg[] = array("id" => "LID", "text" => GetMessage("class_rub_err_lang2"));
     }
     if (strlen($arFields["DAYS_OF_MONTH"]) > 0) {
         $arDoM = explode(",", $arFields["DAYS_OF_MONTH"]);
         $arFound = array();
         foreach ($arDoM as $strDoM) {
             if (preg_match("/^(\\d{1,2})\$/", trim($strDoM), $arFound)) {
                 if (intval($arFound[1]) < 1 || intval($arFound[1]) > 31) {
                     $aMsg[] = array("id" => "DAYS_OF_MONTH", "text" => GetMessage("class_rub_err_dom"));
                     break;
                 }
             } elseif (preg_match("/^(\\d{1,2})-(\\d{1,2})\$/", trim($strDoM), $arFound)) {
                 if (intval($arFound[1]) < 1 || intval($arFound[1]) > 31 || intval($arFound[2]) < 1 || intval($arFound[2]) > 31 || intval($arFound[1]) >= intval($arFound[2])) {
                     $aMsg[] = array("id" => "DAYS_OF_MONTH", "text" => GetMessage("class_rub_err_dom"));
                     break;
                 }
             } else {
                 $aMsg[] = array("id" => "DAYS_OF_MONTH", "text" => GetMessage("class_rub_err_dom2"));
                 break;
             }
         }
     }
     if (strlen($arFields["DAYS_OF_WEEK"]) > 0) {
         $arDoW = explode(",", $arFields["DAYS_OF_WEEK"]);
         $arFound = array();
         foreach ($arDoW as $strDoW) {
             if (preg_match("/^(\\d)\$/", trim($strDoW), $arFound)) {
                 if (intval($arFound[1]) < 1 || intval($arFound[1]) > 7) {
                     $aMsg[] = array("id" => "DAYS_OF_WEEK", "text" => GetMessage("class_rub_err_dow"));
                     break;
                 }
             } else {
                 $aMsg[] = array("id" => "DAYS_OF_WEEK", "text" => GetMessage("class_rub_err_dow2"));
                 break;
             }
         }
     }
     if (strlen($arFields["TIMES_OF_DAY"]) > 0) {
         $arToD = explode(",", $arFields["TIMES_OF_DAY"]);
         $arFound = array();
         foreach ($arToD as $strToD) {
             if (preg_match("/^(\\d{1,2}):(\\d{1,2})\$/", trim($strToD), $arFound)) {
                 if (intval($arFound[1]) > 23 || intval($arFound[2]) > 59) {
                     $aMsg[] = array("id" => "TIMES_OF_DAY", "text" => GetMessage("class_rub_err_tod"));
                     break;
                 }
             } else {
                 $aMsg[] = array("id" => "TIMES_OF_DAY", "text" => GetMessage("class_rub_err_tod2"));
                 break;
             }
         }
     }
     if (strlen($arFields["TEMPLATE"]) > 0 && !CPostingTemplate::IsExists($arFields["TEMPLATE"])) {
         $aMsg[] = array("id" => "TEMPLATE", "text" => GetMessage("class_rub_err_wrong_templ"));
     }
     if ($arFields["AUTO"] == "Y") {
         if (strlen($arFields["FROM_FIELD"]) < 3 || !check_email($arFields["FROM_FIELD"])) {
             $aMsg[] = array("id" => "FROM_FIELD", "text" => GetMessage("class_rub_err_email"));
         }
         if (strlen($arFields["DAYS_OF_MONTH"]) + strlen($arFields["DAYS_OF_WEEK"]) <= 0) {
             $aMsg[] = array("id" => "DAYS_OF_MONTH", "text" => GetMessage("class_rub_err_days_missing"));
         }
         if (strlen($arFields["TIMES_OF_DAY"]) <= 0) {
             $aMsg[] = array("id" => "TIMES_OF_DAY", "text" => GetMessage("class_rub_err_times_missing"));
         }
         if (strlen($arFields["TEMPLATE"]) <= 0) {
             $aMsg[] = array("id" => "TEMPLATE", "text" => GetMessage("class_rub_err_templ_missing"));
         }
         if (is_set($arFields, "FROM_FIELD") && strlen($arFields["FROM_FIELD"]) <= 0) {
             $aMsg[] = array("id" => "FROM_FIELD", "text" => GetMessage("class_rub_err_from"));
         }
         if (strlen($arFields["LAST_EXECUTED"]) <= 0) {
             $aMsg[] = array("id" => "LAST_EXECUTED", "text" => GetMessage("class_rub_err_le_missing"));
         } elseif (is_set($arFields, "LAST_EXECUTED") && $arFields["LAST_EXECUTED"] !== false && $DB->IsDate($arFields["LAST_EXECUTED"], false, false, "FULL") !== true) {
             $aMsg[] = array("id" => "LAST_EXECUTED", "text" => GetMessage("class_rub_err_le_wrong"));
         }
     }
     if (!empty($aMsg)) {
         $e = new CAdminException($aMsg);
         $GLOBALS["APPLICATION"]->ThrowException($e);
         $this->LAST_ERROR = $e->GetString();
         return false;
     }
     return true;
 }
Exemple #7
0
    ?>
:</td>
			<td><?php 
    echo $str_DATE_INSERT_FORMAT;
    ?>
</td>
		</tr>
		<tr>
			<td><?php 
    echo GetMessage("P_ORDER_LANG");
    ?>
:</td>
			<td>
				<?php 
    echo "[" . $str_LID . "] ";
    $db_lang = CLang::GetByID($str_LID);
    if ($arLang = $db_lang->GetNext()) {
        echo $arLang["NAME"];
    }
    ?>
			</td>
		</tr>
		<tr>
			<td><?php 
    echo GetMessage("P_ORDER_STATUS");
    ?>
:</td>
			<td>
				<?php 
    $ar_status = CSaleStatus::GetByID($str_STATUS_ID);
    ?>
Exemple #8
0
        ?>
</td>
				<td width="60%"><?php 
        echo $str_DATE_UPDATE;
        ?>
</td>
			</tr>
			<tr>
				<td width="40%"><?php 
        echo GetMessage("P_ORDER_LANG");
        ?>
:</td>
				<td width="60%">
					<?php 
        echo '[<a href="site_edit.php?LID=' . $str_LID . '&lang=' . LANGUAGE_ID . '">' . $str_LID . '</a>] ';
        $dbSite = CLang::GetByID($str_LID);
        if ($arSite = $dbSite->GetNext()) {
            echo $arSite["NAME"];
        }
        ?>
				</td>
			</tr>
			<tr>
				<td width="40%" valign="top"><?php 
        echo GetMessage("SOD_CUR_STATUS");
        ?>
</td>
				<form method="get" action="/bitrix/admin/sale_order_detail.php">
					<td width="60%" valign="top">
						<script language="JavaScript">
						<!--
 * @copyright 2001-2013 Bitrix
 */
require_once substr(__FILE__, 0, strlen(__FILE__) - strlen("/include.php")) . "/bx_root.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/start.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/virtual_io.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/virtual_file.php";
//define global application object
$GLOBALS["APPLICATION"] = new CMain();
if (defined("SITE_ID")) {
    define("LANG", SITE_ID);
}
if (defined("LANG")) {
    if (defined("ADMIN_SECTION") && ADMIN_SECTION === true) {
        $db_lang = CLangAdmin::GetByID(LANG);
    } else {
        $db_lang = CLang::GetByID(LANG);
    }
    $arLang = $db_lang->Fetch();
} else {
    $arLang = $GLOBALS["APPLICATION"]->GetLang();
    define("LANG", $arLang["LID"]);
}
$lang = $arLang["LID"];
define("SITE_ID", $arLang["LID"]);
define("SITE_DIR", $arLang["DIR"]);
define("SITE_SERVER_NAME", $arLang["SERVER_NAME"]);
define("SITE_CHARSET", $arLang["CHARSET"]);
define("FORMAT_DATE", $arLang["FORMAT_DATE"]);
define("FORMAT_DATETIME", $arLang["FORMAT_DATETIME"]);
define("LANG_DIR", $arLang["DIR"]);
define("LANG_CHARSET", $arLang["CHARSET"]);
Exemple #10
0
        ?>
</font>
		</td>
	</tr>
	<tr>
		<td align="right" width="40%" class="tablebody">
			<font class="tablefieldtext"><?php 
        echo GetMessage("STPOD_ORDER_SITE'");
        ?>
:</font>
		</td>
		<td align="left" width="60%" class="tablebody">
			<font class="tablebodytext">
			<?php 
        echo "[" . $arOrder["LID"] . "] ";
        $dbSite = CLang::GetByID($arOrder["LID"]);
        if ($arSite = $dbSite->Fetch()) {
            echo $arSite["NAME"];
        }
        ?>
			</font>
		</td>
	</tr>
	//-->
	<tr>
		<td align="right" width="40%" class="tablebody">
			<font class="tablefieldtext"><?php 
        echo GetMessage("STPOD_ORDER_STATUS");
        ?>
</font>
		</td>
Exemple #11
0
 function CheckFields($action, &$arFields)
 {
     global $DB;
     $this->LAST_ERROR = "";
     $aMsg = array();
     if (($action == "update" && array_key_exists("TYPE", $arFields) || $action == "add") && strlen($arFields["TYPE"]) == 0) {
         $aMsg[] = array("id" => "TYPE", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_TYPE"));
     }
     if (($action == "update" && array_key_exists("ENTITY_TYPE", $arFields) || $action == "add") && strlen($arFields["ENTITY_TYPE"]) == 0) {
         $aMsg[] = array("id" => "ENTITY_TYPE", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_ENTITY_TYPE"));
     }
     if (($action == "update" && array_key_exists("EVENT_ID", $arFields) || $action == "add") && strlen($arFields["EVENT_ID"]) == 0) {
         $aMsg[] = array("id" => "EVENT_ID", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_EVENT_ID"));
     }
     if (($action == "update" && array_key_exists("NAME", $arFields) || $action == "add") && strlen($arFields["NAME"]) == 0) {
         $aMsg[] = array("id" => "NAME", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_NAME"));
     }
     if (strlen($arFields["LID"]) > 0) {
         $r = CLang::GetByID($arFields["LID"]);
         if (!$r->Fetch()) {
             $aMsg[] = array("id" => "LID", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_SITE"));
         }
     } elseif ($action == "update" && array_key_exists("LID", $arFields) || $action == "add") {
         $aMsg[] = array("id" => "LID", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_SITE2"));
     }
     if ($action == "add" && $arFields["TYPE"] == "POST" && (!array_key_exists("HASH", $arFields) || strlen($arFields["HASH"]) <= 0) || $action == "update" && $arFields["TYPE"] == "POST" && array_key_exists("HASH", $arFields) && strlen($arFields["HASH"]) <= 0) {
         $arFields["HASH"] = md5(randString(20));
     }
     if ($action == "add" && (!array_key_exists("ENABLE_COMMENTS", $arFields) || !in_array($arFields["ENABLE_COMMENTS"], array("Y", "N"))) || $action == "update" && array_key_exists("ENABLE_COMMENTS", $arFields) && !in_array($arFields["ENABLE_COMMENTS"], array("Y", "N"))) {
         $arFields["ENABLE_COMMENTS"] = "Y";
     }
     if (($action == "update" && array_key_exists("DAYS_OF_MONTH", $arFields) || $action == "add") && strlen($arFields["DAYS_OF_MONTH"]) > 0) {
         $arDoM = explode(",", $arFields["DAYS_OF_MONTH"]);
         $arFound = array();
         foreach ($arDoM as $strDoM) {
             if (preg_match("/^(\\d{1,2})\$/", trim($strDoM), $arFound)) {
                 if (intval($arFound[1]) < 1 || intval($arFound[1]) > 31) {
                     $aMsg[] = array("id" => "DAYS_OF_MONTH", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_DOM"));
                     break;
                 }
             } elseif (preg_match("/^(\\d{1,2})-(\\d{1,2})\$/", trim($strDoM), $arFound)) {
                 if (intval($arFound[1]) < 1 || intval($arFound[1]) > 31 || intval($arFound[2]) < 1 || intval($arFound[2]) > 31 || intval($arFound[1]) >= intval($arFound[2])) {
                     $aMsg[] = array("id" => "DAYS_OF_MONTH", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_DOM"));
                     break;
                 }
             } else {
                 $aMsg[] = array("id" => "DAYS_OF_MONTH", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_DOM2"));
                 break;
             }
         }
     }
     if (($action == "update" && array_key_exists("DAYS_OF_WEEK", $arFields) || $action == "add") && strlen($arFields["DAYS_OF_WEEK"]) > 0) {
         $arDoW = explode(",", $arFields["DAYS_OF_WEEK"]);
         $arFound = array();
         foreach ($arDoW as $strDoW) {
             if (preg_match("/^(\\d)\$/", trim($strDoW), $arFound)) {
                 if (intval($arFound[1]) < 1 || intval($arFound[1]) > 7) {
                     $aMsg[] = array("id" => "DAYS_OF_WEEK", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_DOW"));
                     break;
                 }
             } else {
                 $aMsg[] = array("id" => "DAYS_OF_WEEK", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_DOW2"));
                 break;
             }
         }
     }
     if (($action == "update" && array_key_exists("TIMES_OF_DAY", $arFields) || $action == "add") && strlen($arFields["TIMES_OF_DAY"]) > 0) {
         $arToD = explode(",", $arFields["TIMES_OF_DAY"]);
         $arFound = array();
         foreach ($arToD as $strToD) {
             if (preg_match("/^(\\d{1,2}):(\\d{1,2})\$/", trim($strToD), $arFound)) {
                 if (intval($arFound[1]) > 23 || intval($arFound[2]) > 59) {
                     $aMsg[] = array("id" => "TIMES_OF_DAY", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_TOD"));
                     break;
                 }
             } else {
                 $aMsg[] = array("id" => "TIMES_OF_DAY", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_TOD2"));
                 break;
             }
         }
     }
     if (!array_key_exists("AUTO", $arFields)) {
         if (array_key_exists("TYPE", $arFields)) {
             if (in_array($arFields["TYPE"], array("XML", "RSS"))) {
                 $arFields["AUTO"] = "Y";
             } else {
                 $arFields["AUTO"] = "N";
             }
         }
     } elseif (!in_array($arFields["AUTO"], array("Y", "N"))) {
         $arFields["AUTO"] = "N";
     }
     if (array_key_exists("IS_HTML", $arFields) && !in_array($arFields["IS_HTML"], array("Y", "N"))) {
         $arFields["IS_HTML"] = "N";
     }
     if (array_key_exists("URI", $arFields)) {
         $arURI = parse_url($arFields["URI"]);
         if (array_key_exists("TYPE", $arFields) && in_array($arFields["TYPE"], array("XML", "RSS"))) {
             if (strlen($arURI["host"]) <= 0) {
                 $aMsg[] = array("id" => "URI", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_URI_HOST"));
             } else {
                 $arFields["HOST"] = $arURI["host"];
             }
             if (strlen($arURI["port"]) > 0) {
                 $arFields["PORT"] = $arURI["port"];
             }
             if (strlen($arURI["path"]) > 0) {
                 $arFields["PAGE"] = $arURI["path"];
             }
         }
         if (array_key_exists("TYPE", $arFields) && $arFields["TYPE"] == "RSS" && strlen($arURI["query"]) > 0) {
             $arFields["PARAMS"] = $arURI["query"];
         }
         if ($arFields["TYPE"] != "RSS") {
             unset($arFields["URI"]);
         }
     } elseif (array_key_exists("HOST", $arFields)) {
         if (array_key_exists("TYPE", $arFields) && in_array($arFields["TYPE"], array("XML"))) {
             if (strpos($arFields["HOST"], "://") === false) {
                 $arFields["HOST"] = "http://" . $arFields["HOST"];
             }
             $arURI = parse_url($arFields["HOST"]);
             if (strlen($arURI["host"]) <= 0) {
                 $aMsg[] = array("id" => "HOST", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_URI_HOST"));
             } else {
                 $arFields["HOST"] = $arURI["host"];
             }
             if (strlen($arURI["port"]) > 0) {
                 $arFields["PORT"] = $arURI["port"];
             }
         }
     }
     if ($arFields["AUTO"] == "Y") {
         if (strlen($arFields["DAYS_OF_MONTH"]) + strlen($arFields["DAYS_OF_WEEK"]) <= 0) {
             $aMsg[] = array("id" => "DAYS_OF_MONTH", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_DAYS_MISSING"));
         }
         if (strlen($arFields["TIMES_OF_DAY"]) <= 0) {
             $aMsg[] = array("id" => "TIMES_OF_DAY", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_TIMES_MISSING"));
         }
         if (strlen($arFields["LAST_EXECUTED"]) <= 0) {
             $aMsg[] = array("id" => "LAST_EXECUTED", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_LE_MISSING"));
         } elseif (is_set($arFields, "LAST_EXECUTED") && $arFields["LAST_EXECUTED"] !== false && $DB->IsDate($arFields["LAST_EXECUTED"], false, false, "FULL") !== true) {
             $aMsg[] = array("id" => "LAST_EXECUTED", "text" => GetMessage("LFP_CLASS_SCHEME_ERR_LE_WRONG"));
         }
     }
     if (!empty($aMsg)) {
         $e = new CAdminException($aMsg);
         $GLOBALS["APPLICATION"]->ThrowException($e);
         $this->LAST_ERROR = $e->GetString();
         return false;
     }
     return true;
 }
Exemple #12
0
	public static function Reindex($ID, &$arMessage)
	{
		if (!CModule::IncludeModule("search")) return;
		if (!is_set($arMessage, "FORUM_INFO") || !is_set($arMessage, "TOPIC_INFO"))
			$arMessage = CForumMessage::GetByIDEx($arMessage['ID'], array("GET_TOPIC_INFO" => "Y", "GET_FORUM_INFO" => "Y", "FILTER" => "Y"));

		$arForum = $arMessage["FORUM_INFO"];
		$arTopic = $arMessage["TOPIC_INFO"];
		$arMessage["POST_MESSAGE"] = (COption::GetOptionString("forum", "FILTER", "Y") == "Y" ?
			$arMessage["POST_MESSAGE_FILTER"] : $arMessage["POST_MESSAGE"]);

		$arParams = array(
			"PERMISSION" => array(),
			"SITE" => CForumNew::GetSites($arMessage["FORUM_ID"]),
			"DEFAULT_URL" => "/");

		$arGroups = CForumNew::GetAccessPermissions($arMessage["FORUM_ID"]);
		for ($i = 0; $i < count($arGroups); $i++)
		{
			if ($arGroups[$i][1] >= "E")
			{
				$arParams["PERMISSION"][] = $arGroups[$i][0];
				if ($arGroups[$i][0] == 2)
					break;
			}
		}

		$arSearchInd = array(
			"LID" => array(),
			"LAST_MODIFIED" => $arMessage["POST_DATE"],
			"PARAM1" => $arMessage["FORUM_ID"],
			"PARAM2" => $arMessage["TOPIC_ID"],
			"PERMISSIONS" => $arParams["PERMISSION"],
			"TITLE" => $arMessage["TOPIC_INFO"]["TITLE"],
			"TAGS" => (($arMessage["NEW_TOPIC"] == "Y") ? $arMessage["TOPIC_INFO"]["TAGS"] : ""),
			"BODY" => GetMessage("AVTOR_PREF")." ".$arMessage["AUTHOR_NAME"].". ".(textParser::killAllTags($arMessage["POST_MESSAGE"])),
			"ENTITY_TYPE_ID"  => $arMessage["NEW_TOPIC"] == "Y"? "FORUM_TOPIC": "FORUM_POST",
			"ENTITY_ID"  => $arMessage["NEW_TOPIC"] == "Y"? $arMessage["TOPIC_ID"]: $arMessage["ID"],
			"USER_ID" => $arMessage["AUTHOR_ID"],
			"URL" => "",
			"INDEX_TITLE" => $arMessage["NEW_TOPIC"] == "Y",
		);

		foreach ($arParams["SITE"] as $key => $val)
		{
			$arSearchInd["LID"][$key] =
				CForumNew::PreparePath2Message(
					$val,
					array(
						"FORUM_ID" => $arMessage["FORUM_ID"],
						"TOPIC_ID" => $arMessage["TOPIC_ID"],
						"MESSAGE_ID" => $arMessage["ID"],
						"SOCNET_GROUP_ID" => $arMessage["TOPIC_INFO"]["SOCNET_GROUP_ID"],
						"OWNER_ID" => $arMessage["TOPIC_INFO"]["OWNER_ID"],
						"PARAM1" => $arMessage["PARAM1"],
						"PARAM2" => $arMessage["PARAM2"]));
			if (empty($arSearchInd["URL"]) && !empty($arSearchInd["LID"][$key]))
				$arSearchInd["URL"] = $arSearchInd["LID"][$key];
		}

		if (empty($arSearchInd["URL"]))
		{
			foreach ($arParams["SITE"] as $key => $val) {
				$db_lang = CLang::GetByID($key);
				if ($db_lang && $ar_lang = $db_lang->Fetch()){
					$arParams["DEFAULT_URL"] = $ar_lang["DIR"];
					break;
				}
			}
			$arParams["DEFAULT_URL"] .= COption::GetOptionString("forum", "REL_FPATH", "").
				"forum/read.php?FID=#FID#&TID=#TID#&MID=#MID##message#MID#";

			$arSearchInd["URL"] = CForumNew::PreparePath2Message($arParams["DEFAULT_URL"],
				array("FORUM_ID" => $arMessage["FORUM_ID"], "TOPIC_ID" => $arMessage["TOPIC_ID"], "MESSAGE_ID" => $arMessage["ID"],
				"SOCNET_GROUP_ID" => $arMessage["TOPIC_INFO"]["SOCNET_GROUP_ID"], "OWNER_ID" => $arMessage["TOPIC_INFO"]["OWNER_ID"],
				"PARAM1" => $arMessage["PARAM1"], "PARAM2" => $arMessage["PARAM2"]));
		}
		CSearch::DeleteIndex("forum", $ID);
		CSearch::Index("forum", $ID, $arSearchInd, true);
	}
Exemple #13
0
require_once $_SERVER["DOCUMENT_ROOT"] . "/freetrix/modules/main" . "/SetCorePath.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/freetrix/modules/main/Start.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/freetrix/modules/main/classes/general/virtual_io.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/freetrix/modules/main/classes/general/virtual_file.php";
$Application = \Freetrix\Main\Application::getInstance();
$Application->initializeExtendedKernel(array("get" => $_GET, "post" => $_POST, "files" => $_FILES, "cookie" => $_COOKIE, "server" => $_SERVER, "env" => $_ENV));
$GLOBALS["APPLICATION"] = new CMain();
if (defined("SITE_ID")) {
    define("LANG", SITE_ID);
}
if (defined("LANG")) {
    if (defined("ADMIN_SECTION") && ADMIN_SECTION === true) {
        $currentLangGetter = CLangAdmin::GetByID(LANG);
    } else {
        $currentLangGetter = CLang::GetByID(LANG);
    }
    $definedLang = $currentLangGetter->Fetch();
} else {
    $definedLang = $GLOBALS["APPLICATION"]->GetLang();
    define("LANG", $definedLang["LID"]);
}
$_762722495 = $definedLang["LID"];
define("SITE_ID", $definedLang["LID"]);
define("SITE_DIR", $definedLang["DIR"]);
define("SITE_SERVER_NAME", $definedLang["SERVER_NAME"]);
define("SITE_CHARSET", $definedLang["CHARSET"]);
define("FORMAT_DATE", $definedLang["FORMAT_DATE"]);
define("FORMAT_DATETIME", $definedLang["FORMAT_DATETIME"]);
define("LANG_DIR", $definedLang["DIR"]);
define("LANG_CHARSET", $definedLang["CHARSET"]);
Exemple #14
0
 function OnReindex($NS = array(), $oCallback = NULL, $callback_method = "")
 {
     global $DB;
     $arResultAll = array();
     $arParams = array("PERMISSION" => array(), "SITE" => array(), "DEFAULT_URL" => array());
     $search_message_count = intVal(COption::GetOptionInt("forum", "search_message_count", 0));
     $strNSJoin = "";
     $strFilter = "";
     if ($NS["MODULE"] == "forum" && intVal($NS["ID"]) > 0 && intVal($NS["CNT"]) > 0) {
         $strFilter = " AND (FM.ID>" . intVal($NS["ID"]) . ") ";
     } elseif ($NS["MODULE"] == "forum" && intVal($NS["ID"]) > 0) {
         // out of date
         $strFilter = " AND (FM.ID>=" . intVal($NS["ID"]) . ") ";
     }
     if ($NS["SITE_ID"] != "") {
         $strNSJoin .= " INNER JOIN b_forum2site FS ON (FS.FORUM_ID=F.ID) ";
         $strFilter .= " AND FS.SITE_ID='" . $DB->ForSQL($NS["SITE_ID"]) . "' ";
     }
     $strSql = "SELECT STRAIGHT_JOIN FT.ID as TID, FM.ID as MID, FM.ID as ID, FT.FORUM_ID, FT.TITLE, " . CForumNew::Concat("-", array("FT.ID", "FT.TITLE_SEO")) . ",\n\t\t\t\tFT.DESCRIPTION, FT.TAGS, FT.HTML as FT_HTML,\n\t\t\t\tFM.PARAM1, FM.PARAM2, FM.POST_MESSAGE, FM.POST_MESSAGE_FILTER, FM.POST_MESSAGE_HTML, FM.AUTHOR_NAME, FM.AUTHOR_ID, FM.NEW_TOPIC,\n\t\t\t\t" . $DB->DateToCharFunction("FM.POST_DATE") . " as POST_DATE, " . $DB->DateToCharFunction("FM.EDIT_DATE") . " as EDIT_DATE, FT.SOCNET_GROUP_ID, FT.OWNER_ID\n\t\t\tFROM b_forum_message FM use index (PRIMARY), b_forum_topic FT, b_forum F\n\t\t\t" . $strNSJoin . "\n\t\t\tWHERE (FM.TOPIC_ID = FT.ID) AND (F.ID = FT.FORUM_ID) AND (F.INDEXATION = 'Y') AND (FM.APPROVED = 'Y')\n\t\t\t" . $strFilter . "\n\t\t\tORDER BY FM.ID";
     if ($search_message_count > 0) {
         $strSql .= " LIMIT 0, " . $search_message_count;
     }
     $db_res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     if ($db_res && COption::GetOptionString("forum", "FILTER", "Y") == "Y") {
         $db_res = new _CMessageDBResult($db_res);
     }
     $rownum = 0;
     while ($res = $db_res->Fetch()) {
         $rownum++;
         if (empty($arParams["PERMISSION"][$res["FORUM_ID"]])) {
             $arGroups = CForumNew::GetAccessPermissions($res["FORUM_ID"]);
             $arParams["PERMISSION"][$res["FORUM_ID"]] = array();
             for ($i = 0; $i < count($arGroups); $i++) {
                 if ($arGroups[$i][1] >= "E") {
                     $arParams["PERMISSION"][$res["FORUM_ID"]][] = $arGroups[$i][0];
                     if ($arGroups[$i][0] == 2) {
                         break;
                     }
                 }
             }
         }
         if (empty($arParams["SITE"][$res["FORUM_ID"]])) {
             $arParams["SITE"][$res["FORUM_ID"]] = CForumNew::GetSites($res["FORUM_ID"]);
         }
         $arResult = array("ID" => $res["MID"], "LID" => array(), "LAST_MODIFIED" => !empty($res["EDIT_DATE"]) ? $res["EDIT_DATE"] : $res["POST_DATE"], "PARAM1" => $res["FORUM_ID"], "PARAM2" => $res["TID"], "USER_ID" => $res["AUTHOR_ID"], "ENTITY_TYPE_ID" => $res["NEW_TOPIC"] == "Y" ? "FORUM_TOPIC" : "FORUM_POST", "ENTITY_ID" => $res["NEW_TOPIC"] == "Y" ? $res["TID"] : $res["MID"], "PERMISSIONS" => $arParams["PERMISSION"][$res["FORUM_ID"]], "TITLE" => $res["TITLE"] . ($res["NEW_TOPIC"] == "Y" && !empty($res["DESCRIPTION"]) ? ", " . $res["DESCRIPTION"] : ""), "TAGS" => $res["NEW_TOPIC"] == "Y" ? $res["TAGS"] : "", "BODY" => GetMessage("AVTOR_PREF") . " " . $res["AUTHOR_NAME"] . ". " . textParser::killAllTags(COption::GetOptionString("forum", "FILTER", "Y") != "Y" ? $res["POST_MESSAGE"] : $res["POST_MESSAGE_FILTER"]), "URL" => "", "INDEX_TITLE" => $res["NEW_TOPIC"] == "Y");
         foreach ($arParams["SITE"][$res["FORUM_ID"]] as $key => $val) {
             $arResult["LID"][$key] = CForumNew::PreparePath2Message($val, array("FORUM_ID" => $res["FORUM_ID"], "TOPIC_ID" => $res["TID"], "MESSAGE_ID" => $res["MID"], "SOCNET_GROUP_ID" => $res["SOCNET_GROUP_ID"], "OWNER_ID" => $res["OWNER_ID"], "PARAM1" => $res["PARAM1"], "PARAM2" => $res["PARAM2"]));
             if (empty($arResult["URL"]) && !empty($arResult["LID"][$key])) {
                 $arResult["URL"] = $arResult["LID"][$key];
             }
         }
         if (empty($arResult["URL"])) {
             if (empty($arParams["DEFAULT_URL"][$res["FORUM_ID"]])) {
                 $arParams["DEFAULT_URL"][$res["FORUM_ID"]] = "/";
                 foreach ($arParams["SITE"][$res["FORUM_ID"]] as $key => $val) {
                     $db_lang = CLang::GetByID($key);
                     if ($db_lang && ($ar_lang = $db_lang->Fetch())) {
                         $arParams["DEFAULT_URL"][$res["FORUM_ID"]] = $ar_lang["DIR"];
                         break;
                     }
                 }
                 $arParams["DEFAULT_URL"][$res["FORUM_ID"]] .= COption::GetOptionString("forum", "REL_FPATH", "") . "forum/read.php?FID=#FID#&TID=#TID#&MID=#MID##message#MID#";
             }
             $arResult["URL"] = CForumNew::PreparePath2Message($arParams["DEFAULT_URL"][$res["FORUM_ID"]], array("FORUM_ID" => $res["FORUM_ID"], "TOPIC_ID" => $res["TID"], "MESSAGE_ID" => $res["MID"], "SOCNET_GROUP_ID" => $res["SOCNET_GROUP_ID"], "OWNER_ID" => $res["OWNER_ID"], "PARAM1" => $res["PARAM1"], "PARAM2" => $res["PARAM2"]));
         }
         if ($oCallback) {
             $resCall = call_user_func(array($oCallback, $callback_method), $arResult);
             if (!$resCall) {
                 return $arResult["ID"];
             }
         } else {
             $arResultAll[] = $arResult;
         }
     }
     if ($oCallback && $search_message_count > 0 && $rownum >= $search_message_count - 1) {
         return $arResult["ID"];
     }
     if ($oCallback) {
         return false;
     }
     return $arResultAll;
 }
Exemple #15
0
	function Add($arFields, $strUploadDir = false, $arParams = array())
	{
		global $DB;

		$strUploadDir = ($strUploadDir === false ? "forum/upload" : $strUploadDir);

		if (!CForumMessage::CheckFields("ADD", $arFields))
			return false;

		$arForum = CForumNew::GetByID($arFields["FORUM_ID"]);
		$arParams["SKIP_STATISTIC"] = ($arParams["SKIP_STATISTIC"] == "Y" ? "Y" : "N");
		$arParams["SKIP_INDEXING"] = ($arParams["SKIP_INDEXING"] == "Y" || $arForum["INDEXATION"] != "Y" ? "Y" : "N");

		$POST_MESSAGE = $arFields["POST_MESSAGE"];
		$parser = new forumTextParser(LANGUAGE_ID);
		$allow = forumTextParser::GetFeatures($arForum);
		$allow['SMILES'] = (($arFields["USE_SMILES"] != "Y") ? 'N' : $allow['SMILES']);
		if (COption::GetOptionString("forum", "FILTER", "Y") == "Y")
		{
			$POST_MESSAGE = CFilterUnquotableWords::Filter($POST_MESSAGE);
			$arFields["POST_MESSAGE_FILTER"] = (empty($POST_MESSAGE) ? "*" : $POST_MESSAGE);
		}
/***************** Attach ******************************************/
		$arFiles = array();
		if (is_array($arFields["ATTACH_IMG"]))
			$arFields["FILES"] = array($arFields["ATTACH_IMG"]);
		unset($arFields["ATTACH_IMG"]);
		if (is_array($arFields["FILES"]) && !empty($arFields["FILES"]))
		{
			$res = array("FORUM_ID" => $arFields["FORUM_ID"], "USER_ID" => $arFields["AUTHOR_ID"], "upload_dir" => $strUploadDir);
			$arFiles = CForumFiles::Save($arFields["FILES"], $res, false);
			if (!empty($arFiles))
			{
				$arFiles = array_keys($arFiles);
				sort($arFiles);
				$arFields["ATTACH_IMG"] = $arFiles[0];
				$arFields["ATTACHED_FILES"] = $arFiles;
			}
			unset($arFields["FILES"]);
		}
/***************** Attach/******************************************/
		if (COption::GetOptionString("forum", "MESSAGE_HTML", "N") == "Y")
			$POST_MESSAGE = $parser->convert($POST_MESSAGE, $allow, "html", $arFiles);
		$arFields["POST_MESSAGE_HTML"] = $POST_MESSAGE;
/***************** Event onBeforeMessageAdd ************************/
		foreach(GetModuleEvents("forum", "onBeforeMessageAdd", true) as $arEvent)
		{
			if (ExecuteModuleEventEx($arEvent, array(&$arFields, &$strUploadDir)) === false)
				return false;
		}
/***************** /Event ******************************************/
		if (empty($arFields))
			return false;
		$arInsert = $DB->PrepareInsert("b_forum_message", $arFields, $strUploadDir);

		$strDatePostField = "";
		$strDatePostValue = "";
		if (!is_set($arFields, "POST_DATE"))
		{
			$strDatePostField = ", POST_DATE";
			$strDatePostValue = ", ".$DB->GetNowFunction()."";
		}

		$strSql = "INSERT INTO b_forum_message(".$arInsert[0].$strDatePostField.") VALUES(".$arInsert[1].$strDatePostValue.")";
		$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
		$ID = intVal($DB->LastID());
/***************** Attach ******************************************/
		if (!empty($arFiles))
			CForumFiles::UpdateByID($arFiles, array("FORUM_ID" => $arFields["FORUM_ID"],
				"TOPIC_ID" => $arFields["TOPIC_ID"], "MESSAGE_ID" => $ID));
/***************** Attach/******************************************/
/***************** Quota *******************************************/
		$_SESSION["SESS_RECOUNT_DB"] = "Y";

		$GLOBALS["USER_FIELD_MANAGER"]->Update("FORUM_MESSAGE", $ID, $arFields);
		if ($arParams["SKIP_STATISTIC"] == "Y" && $arParams["SKIP_INDEXING"] == "Y")
			return $ID;
		$arMessage = CForumMessage::GetByIDEx($ID, array("GET_FORUM_INFO" => "N", "GET_TOPIC_INFO" => "Y", "FILTER" => "Y"));

		if ($arParams["SKIP_STATISTIC"] != "Y")
		{
			if (intVal($arMessage["AUTHOR_ID"]) > 0)
			{
				CForumUser::SetStat($arMessage["AUTHOR_ID"], array("MESSAGE" => $arMessage));
			}
			CForumTopic::SetStat($arMessage["TOPIC_ID"],  array("MESSAGE" => $arMessage));
			CForumNew::SetStat($arMessage["FORUM_ID"],  array("MESSAGE" => $arMessage));
		}
/***************** Events onAfterMessageAdd ************************/
		foreach(GetModuleEvents("forum", "onAfterMessageAdd", true) as $arEvent)
			ExecuteModuleEventEx($arEvent, array(&$ID, $arMessage, $arMessage["TOPIC_INFO"], $arMessage["FORUM_INFO"], $arFields));
/***************** /Events *****************************************/
		if ($arMessage["APPROVED"] == "Y")
		{
			if ($arParams["SKIP_INDEXING"] != "Y" && CModule::IncludeModule("search"))
			{
				$arMessage["POST_MESSAGE"] = (COption::GetOptionString("forum", "FILTER", "Y") == "Y" ?
					$arMessage["POST_MESSAGE_FILTER"] : $arMessage["POST_MESSAGE"]);
				$arParams = array(
					"PERMISSION" => array(),
					"SITE" => CForumNew::GetSites($arMessage["FORUM_ID"]),
					"DEFAULT_URL" => "/");

				$arGroups = CForumNew::GetAccessPermissions($arMessage["FORUM_ID"]);
				foreach($arGroups as $arGroup)
				{
					if ($arGroup[1] >= "E")
					{
						$arParams["PERMISSION"][] = $arGroup[0];
						if ($arGroup[0] == 2)
							break;
					}
				}

				$arSearchInd = array(
					"LID" => array(),
					"LAST_MODIFIED" => $arMessage["POST_DATE"],
					"PARAM1" => $arMessage["FORUM_ID"],
					"PARAM2" => $arMessage["TOPIC_ID"],
					"ENTITY_TYPE_ID"  => ($arMessage["NEW_TOPIC"] == "Y"? "FORUM_TOPIC": "FORUM_POST"),
					"ENTITY_ID" => ($arMessage["NEW_TOPIC"] == "Y"? $arMessage["TOPIC_ID"]: $ID),
					"USER_ID" => $arMessage["AUTHOR_ID"],
					"PERMISSIONS" => $arParams["PERMISSION"],
					"TITLE" => $arMessage["TOPIC_INFO"]["TITLE"].($arMessage["NEW_TOPIC"] == "Y" && !empty($arMessage["TOPIC_INFO"]["DESCRIPTION"]) ?
						", ".$arMessage["TOPIC_INFO"]["DESCRIPTION"] : ""),
					"TAGS" => ($arMessage["NEW_TOPIC"] == "Y" ? $arMessage["TOPIC_INFO"]["TAGS"] : ""),
					"BODY" => GetMessage("AVTOR_PREF")." ".$arMessage["AUTHOR_NAME"].". ".(textParser::killAllTags($arMessage["POST_MESSAGE"])),
					"URL" => "",
					"INDEX_TITLE" => $arMessage["NEW_TOPIC"] == "Y",
				);

				// get mentions
				$arMentionedUserID = CForumMessage::GetMentionedUserID($arMessage["POST_MESSAGE"]);
				if (!empty($arMentionedUserID))
				{
					$arSearchInd["PARAMS"] = array(
						"mentioned_user_id" => $arMentionedUserID
					);
				}

				$urlPatterns = array(
					"FORUM_ID" => $arMessage["FORUM_ID"],
					"TOPIC_ID" => $arMessage["TOPIC_ID"],
					"TITLE_SEO" => $arMessage["TOPIC_INFO"]["TITLE_SEO"],
					"MESSAGE_ID" => $arMessage["ID"],
					"SOCNET_GROUP_ID" => $arMessage["TOPIC_INFO"]["SOCNET_GROUP_ID"],
					"OWNER_ID" => $arMessage["TOPIC_INFO"]["OWNER_ID"],
					"PARAM1" => $arMessage["PARAM1"],
					"PARAM2" => $arMessage["PARAM2"]);
				foreach ($arParams["SITE"] as $key => $val)
				{
					$arSearchInd["LID"][$key] = CForumNew::PreparePath2Message($val, $urlPatterns);
					if (empty($arSearchInd["URL"]) && !empty($arSearchInd["LID"][$key]))
						$arSearchInd["URL"] = $arSearchInd["LID"][$key];
				}

				if (empty($arSearchInd["URL"]))
				{
					foreach ($arParams["SITE"] as $key => $val):
						$db_lang = CLang::GetByID($key);
						if ($db_lang && $ar_lang = $db_lang->Fetch()):
							$arParams["DEFAULT_URL"] = $ar_lang["DIR"];
							break;
						endif;
					endforeach;
					$arParams["DEFAULT_URL"] .= COption::GetOptionString("forum", "REL_FPATH", "").
						"forum/read.php?FID=#FID#&TID=#TID#&MID=#MID##message#MID#";

					$arSearchInd["URL"] = CForumNew::PreparePath2Message($arParams["DEFAULT_URL"], $urlPatterns);
				}
				CSearch::Index("forum", $ID, $arSearchInd);
			}
		}
		return $ID;
	}
Exemple #16
0
 function ConfirmEvent($ID, $SITE_ID = SITE_ID)
 {
     static $SITE_DIR_CACHE = array();
     CTimeZone::Disable();
     $subscr = CSubscription::GetByID($ID);
     CTimeZone::Enable();
     if ($subscr_arr = $subscr->Fetch()) {
         if (!array_key_exists($SITE_ID, $SITE_DIR_CACHE)) {
             $db_lang = CLang::GetByID($SITE_ID);
             if ($ar_lang = $db_lang->Fetch()) {
                 $SITE_DIR_CACHE[$SITE_ID] = $ar_lang["DIR"];
             } else {
                 $SITE_DIR_CACHE[$SITE_ID] = LANG_DIR;
             }
         }
         $subscr_arr["USER_NAME"] = "";
         $subscr_arr["USER_LAST_NAME"] = "";
         if (intval($subscr_arr["USER_ID"]) > 0) {
             $rsUser = CUser::GetByID($subscr_arr["USER_ID"]);
             if ($arUser = $rsUser->Fetch()) {
                 $subscr_arr["USER_NAME"] = $arUser["NAME"];
                 $subscr_arr["USER_LAST_NAME"] = $arUser["LAST_NAME"];
             }
         }
         $arFields = array("ID" => $subscr_arr["ID"], "EMAIL" => $subscr_arr["EMAIL"], "CONFIRM_CODE" => $subscr_arr["CONFIRM_CODE"], "USER_NAME" => $subscr_arr["USER_NAME"] . " " . $subscr_arr["USER_LAST_NAME"], "DATE_SUBSCR" => $subscr_arr["DATE_UPDATE"] != "" ? $subscr_arr["DATE_UPDATE"] : $subscr_arr["DATE_INSERT"], "SUBSCR_SECTION" => str_replace(array("#SITE_DIR#", "#LANG_DIR#"), array($SITE_DIR_CACHE[$SITE_ID], $SITE_DIR_CACHE[$SITE_ID]), COption::GetOptionString("subscribe", "subscribe_section")));
         CEvent::Send("SUBSCRIBE_CONFIRM", $SITE_ID, $arFields);
         return true;
     }
     return false;
 }
Exemple #17
0
 function CheckFields($arFields, $ID = false)
 {
     $err_cnt = CMailError::ErrCount();
     $arMsg = array();
     if (is_set($arFields, "NAME") && strlen($arFields["NAME"]) < 1) {
         CMailError::SetError("B_MAIL_ERR_NAME", GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_NAME") . "\"");
         $arMsg[] = array("id" => "NAME", "text" => GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_NAME") . "\"");
     }
     if (strtolower($arFields["SERVER_TYPE"]) == "pop3" && is_set($arFields, "LOGIN") && strlen($arFields["LOGIN"]) < 1) {
         CMailError::SetError("B_MAIL_ERR_LOGIN", GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_LOGIN") . "\"");
         $arMsg[] = array("id" => "LOGIN", "text" => GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_LOGIN") . "\"");
     }
     if (strtolower($arFields["SERVER_TYPE"]) == "pop3" && is_set($arFields, "PASSWORD") && strlen($arFields["PASSWORD"]) < 1) {
         CMailError::SetError("B_MAIL_ERR_PASSWORD", GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_PASSWORD") . "\"");
         $arMsg[] = array("id" => "PASSWORD", "text" => GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_PASSWORD") . "\"");
     }
     if (is_set($arFields, "SERVER") && strlen($arFields["SERVER"]) < 1) {
         CMailError::SetError("B_MAIL_ERR_SERVER_NAME", GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_SERVER") . "\"");
         $arMsg[] = array("id" => "SERVER", "text" => GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_SERVER") . "\"");
     } elseif (strtolower($arFields["SERVER_TYPE"]) == "smtp") {
         $dbres = CMailBox::GetList(array(), array("ACTIVE" => "Y", "SERVER_TYPE" => "smtp", "SERVER" => $arFields["SERVER"], "PORT" => $arFields["PORT"]));
         while ($arres = $dbres->Fetch()) {
             if ($ID === false || $arres["ID"] != $ID) {
                 CMailError::SetError("B_MAIL_ERR_SERVER_NAME", GetMessage("B_MAIL_ERR_SN") . " \"" . GetMessage("MAIL_CL_SERVER") . "\"");
                 $arMsg[] = array("id" => "SERVER", "text" => GetMessage("B_MAIL_ERR_SN") . " (\"" . GetMessage("MAIL_CL_SERVER") . "\")");
                 break;
             }
         }
     }
     if (is_set($arFields, "LID")) {
         $r = CLang::GetByID($arFields["LID"]);
         if (!$r->Fetch()) {
             CMailError::SetError("B_MAIL_ERR_BAD_LANG", GetMessage("MAIL_CL_ERR_BAD_LANG"));
             $arMsg[] = array("id" => "LID", "text" => GetMessage("MAIL_CL_ERR_BAD_LANG"));
         }
     } elseif ($ID === false) {
         CMailError::SetError("B_MAIL_ERR_BAD_LANG_NA", GetMessage("MAIL_CL_ERR_BAD_LANG_NX"));
         $arMsg[] = array("id" => "LID", "text" => GetMessage("MAIL_CL_ERR_BAD_LANG_NX"));
     }
     if (!empty($arMsg)) {
         $e = new CAdminException($arMsg);
         $GLOBALS["APPLICATION"]->ThrowException($e);
         return false;
     }
     return true;
     //return ($err_cnt == CMailError::ErrCount());
 }