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); }
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; }
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); }
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; }
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); }
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; }
?> :</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); ?>
?> </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"]);
?> </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>
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; }
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); }
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"]);
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; }
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; }
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; }
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()); }