function UnInstallDB($arParams = array()) { global $DB, $APPLICATION; $this->errors = false; if (!array_key_exists("savedata", $arParams) || $arParams["savedata"] != "Y") { $this->errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/meeting/install/db/" . strtolower($DB->type) . "/uninstall.sql"); if ($this->errors === false && CModule::IncludeModule('forum')) { $dbRes = CSite::GetList($by = 'sort', $order = 'asc', array()); while ($arSite = $dbRes->Fetch()) { $forumId = COption::GetOptionInt('meeting', 'comments_forum_id', 0, $arSite['ID']); if ($forumId > 0) { CForumNew::Delete($forumId); } } } } UnRegisterModuleDependences("calendar", "OnAfterCalendarConvert", "meeting", "CMeetingEventHandlers", "OnAfterCalendarConvert"); UnRegisterModuleDependences("tasks", "OnTaskDelete", "meeting", "CMeetingEventHandlers", "OnTaskDelete"); UnRegisterModule("meeting"); if ($this->errors !== false) { $APPLICATION->ThrowException(implode("<br>", $this->errors)); return false; } return true; }
private function updateStatisticModule($mid) { if (\CModule::IncludeModule("statistic")) { $F_EVENT1 = $this->forum["EVENT1"]; $F_EVENT2 = $this->forum["EVENT2"]; $F_EVENT3 = $this->forum["EVENT3"]; if (empty($F_EVENT3)) { $site = (array) \CForumNew::GetSites($this->forum["ID"]); $F_EVENT3 = \CForumNew::PreparePath2Message(array_key_exists(SITE_ID, $site) ? $site[SITE_ID] : reset($site), array("FORUM_ID" => $this->forum["ID"], "TOPIC_ID" => $this->topic["ID"], "MESSAGE_ID" => $mid)); } \CStatistics::Set_Event($F_EVENT1, $F_EVENT2, $F_EVENT3); } }
function GetForumsList() { $arGroup = array(); $arForum = array(); $db_res = CForumGroup::GetListEx(array(), array("LID" => LANG)); if ($db_res && ($res = $db_res->GetNext())) { do { $arGroup[intVal($res["ID"])] = $res["~NAME"]; } while ($res = $db_res->GetNext()); } $db_res = CForumNew::GetListEx(array("FORUM_GROUP_SORT" => "ASC", "FORUM_GROUP_ID" => "ASC", "SORT" => "ASC", "NAME" => "ASC"), array()); if ($db_res && ($res = $db_res->GetNext())) { do { $arForum[intVal($res["ID"])] = $res["~NAME"]; if (intVal($res["FORUM_GROUP_ID"]) > 0 && array_key_exists($res["FORUM_GROUP_ID"], $arGroup)) { $arForum[intVal($res["ID"])] .= " [" . $arGroup[$res["FORUM_GROUP_ID"]] . "]"; } if ($res["ACTIVE"] != "Y") { $arForum[intVal($res["ID"])] .= " N/A"; } } while ($res = $db_res->GetNext()); } return $arForum; }
$arComponentParameters["PARAMETERS"]["FILTER_NAME"] = array("PARENT" => "FILTER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_FILTER"), "TYPE" => "STRING", "DEFAULT" => ""); $arComponentParameters["PARAMETERS"]["FILTER_FIELD_CODE"] = CIBlockParameters::GetFieldCode(GetMessage("IBLOCK_FIELD"), "FILTER_SETTINGS"); $arComponentParameters["PARAMETERS"]["FILTER_PROPERTY_CODE"] = array("PARENT" => "FILTER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_PROPERTY"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty_LNS, "ADDITIONAL_VALUES" => "Y"); $arComponentParameters["PARAMETERS"]["FILTER_PRICE_CODE"] = array("PARENT" => "FILTER_SETTINGS", "NAME" => GetMessage("IBLOCK_PRICE_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arPrice); if ($OFFERS_IBLOCK_ID) { $arComponentParameters["PARAMETERS"]["FILTER_OFFERS_FIELD_CODE"] = CIBlockParameters::GetFieldCode(GetMessage("CP_BC_FILTER_OFFERS_FIELD_CODE"), "FILTER_SETTINGS"); $arComponentParameters["PARAMETERS"]["FILTER_OFFERS_PROPERTY_CODE"] = array("PARENT" => "FILTER_SETTINGS", "NAME" => GetMessage("CP_BC_FILTER_OFFERS_PROPERTY_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty_Offers, "ADDITIONAL_VALUES" => "Y"); } } if (!IsModuleInstalled("forum")) { unset($arComponentParameters["PARAMETERS"]["USE_REVIEW"]); unset($arComponentParameters["GROUPS"]["REVIEW_SETTINGS"]); } elseif ($arCurrentValues["USE_REVIEW"] == "Y") { $arForumList = array(); if (CModule::IncludeModule("forum")) { $rsForum = CForumNew::GetList(); while ($arForum = $rsForum->Fetch()) { $arForumList[$arForum["ID"]] = $arForum["NAME"]; } } $arComponentParameters["PARAMETERS"]["MESSAGES_PER_PAGE"] = array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_MESSAGES_PER_PAGE"), "TYPE" => "STRING", "DEFAULT" => intVal(COption::GetOptionString("forum", "MESSAGES_PER_PAGE", "10"))); $arComponentParameters["PARAMETERS"]["USE_CAPTCHA"] = array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_USE_CAPTCHA"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y"); $arComponentParameters["PARAMETERS"]["REVIEW_AJAX_POST"] = array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_REVIEW_AJAX_POST"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y"); $arComponentParameters["PARAMETERS"]["PATH_TO_SMILE"] = array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_PATH_TO_SMILE"), "TYPE" => "STRING", "DEFAULT" => "/bitrix/images/forum/smile/"); $arComponentParameters["PARAMETERS"]["FORUM_ID"] = array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_FORUM_ID"), "TYPE" => "LIST", "VALUES" => $arForumList, "DEFAULT" => ""); $arComponentParameters["PARAMETERS"]["URL_TEMPLATES_READ"] = array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_READ_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => ""); $arComponentParameters["PARAMETERS"]["SHOW_LINK_TO_FORUM"] = array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_SHOW_LINK_TO_FORUM"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y"); $arComponentParameters["PARAMETERS"]["POST_FIRST_MESSAGE"] = array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_POST_FIRST_MESSAGE"), "TYPE" => "CHECKBOX", "DEFAULT" => "N"); } if (CModule::IncludeModule('catalog') && $arCurrentValues["USE_STORE"] == 'Y') { $arComponentParameters["PARAMETERS"]['USE_STORE_PHONE'] = array('PARENT' => 'STORE_SETTINGS', 'NAME' => GetMessage('USE_STORE_PHONE'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'N');
$DocsSharedForumID = 0; $dbRes = CForumNew::GetListEx(array(), array("SITE_ID" => WIZARD_SITE_ID, "XML_ID" => "DOCS_SHARED_COMMENTS")); if ($arRes = $dbRes->Fetch()) { $DocsSharedForumID = $arRes["ID"]; } CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/docs/shared/index.php", array("SHARED_FILES_FORUM_ID" => $DocsSharedForumID)); $DocsSalesForumID = 0; $dbRes = CForumNew::GetListEx(array(), array("SITE_ID" => WIZARD_SITE_ID, "XML_ID" => "DOCS_SALES_COMMENTS")); if ($arRes = $dbRes->Fetch()) { $DocsSalesForumID = $arRes["ID"]; } CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/docs/sale/index.php", array("SALE_FILES_FORUM_ID" => $DocsSalesForumID)); $DocsDirectorsForumID = 0; $dbRes = CForumNew::GetListEx(array(), array("SITE_ID" => WIZARD_SITE_ID, "XML_ID" => "DOCS_DIRECTORS_COMMENTS")); if ($arRes = $dbRes->Fetch()) { $DocsDirectorsForumID = $arRes["ID"]; } CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/docs/manage/index.php", array("DIRECTORS_FILES_FORUM_ID" => $DocsDirectorsForumID)); $DocsSocnetCommentsForumID = 0; $dbRes = CForumNew::GetListEx(array(), array("SITE_ID" => WIZARD_SITE_ID, "XML_ID" => "GROUPS_AND_USERS_FILES_COMMENTS")); if ($arRes = $dbRes->Fetch()) { $DocsSocnetCommentsForumID = $arRes["ID"]; } CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/company/personal.php", array("FILES_FORUM_ID" => $DocsSocnetCommentsForumID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index_b24.php", array("FILES_FORUM_ID" => $DocsSocnetCommentsForumID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/workgroups/index.php", array("FILES_FORUM_ID" => $DocsSocnetCommentsForumID)); if (!WIZARD_IS_RERUN) { $APPLICATION->SetGroupRight("forum", WIZARD_PORTAL_ADMINISTRATION_GROUP, "W"); COption::SetOptionString("forum", "SHOW_VOTES", "N"); COption::SetOptionString("forum", "file_max_size", 10485760); }
$res["~POST_MESSAGE_TEXT"] = COption::GetOptionString("forum", "FILTER", "Y") == "Y" ? $res["~POST_MESSAGE_FILTER"] : $res["~POST_MESSAGE"]; // attach $res["ATTACH_IMG"] = ""; $res["FILES"] = array(); $res["~ATTACH_FILE"] = array(); $res["ATTACH_FILE"] = array(); /************** Message info/***************************************/ /************** Author info ****************************************/ $res["AUTHOR_ID"] = intVal($res["AUTHOR_ID"]); $res["AUTHOR_NAME"] = $parser->wrap_long_words($res["AUTHOR_NAME"]); if ($res["AUTHOR_ID"] <= 0) { // Status list($res["AUTHOR_STATUS_CODE"], $res["AUTHOR_STATUS"]) = ForumGetUserForumStatus(0); } else { if (!array_key_exists($res["AUTHOR_ID"], $UserInfo)) { $perm = CForumNew::GetUserPermission($res["FORUM_ID"], CUser::GetUserGroup($res["AUTHOR_ID"])); $arUser = array("Perms" => $perm, "Rank" => $perm <= "Q" ? CForumUser::GetUserRank($res["AUTHOR_ID"], LANGUAGE_ID) : "", "Points" => !empty($res["POINTS"]) ? array("POINTS" => $res["POINTS"], "DATE_UPDATE" => $res["DATE_UPDATE"]) : false); $arUData = array(); // Status list($arUData["AUTHOR_STATUS_CODE"], $arUData["AUTHOR_STATUS"]) = ForumGetUserForumStatus($res["AUTHOR_ID"], $arUser["Perms"], $arUser); // Avatar if (!empty($res["AVATAR"])) { $arUData["AVATAR"] = array("ID" => $res["~AVATAR"], "FILE" => CFile::GetFileArray($res["~AVATAR"])); $arUData["AVATAR"]["HTML"] = CFile::ShowImage($arUData["AVATAR"]["FILE"], COption::GetOptionString("forum", "avatar_max_width", 90), COption::GetOptionString("forum", "avatar_max_height", 90), "border=\"0\"", "", true); } // Voting $arUData["VOTING"] = "N"; if (COption::GetOptionString("forum", "SHOW_VOTES", "Y") == "Y" && $USER->IsAuthorized() && ($GLOBALS["APPLICATION"]->GetGroupRight("forum") >= "W" || $USER->GetID() != $res["AUTHOR_ID"])) { $bUnVote = $arUser["Points"]; $bVote = !$arUser["Points"] ? $arResult["USER"]["RANK"]["VOTES"] : intval($arUser["Points"]["POINTS"]) < intval($arResult["USER"]["RANK"]["VOTES"]); $bVote = $bVote ? $bVote : $GLOBALS["APPLICATION"]->GetGroupRight("forum") >= "W";
/Input params ********************************************************************/ $APPLICATION->SetTitle($ID > 0 ? GetMessage("FORUM_EDIT_RECORD", array("#ID#" => $ID)) : GetMessage("FORUM_NEW_RECORD")); /******************************************************************** Action ********************************************************************/ $fileName = ''; if ($REQUEST_METHOD == "POST" && $forumPermissions >= "W" && (strlen($save) > 0 || strlen($apply) > 0)) { if (isset($_FILES["IMAGE"]["name"])) { $fileName = RemoveScriptExtension($_FILES["IMAGE"]["name"]); } if (!check_bitrix_sessid()) { $arError[] = array("id" => "bad_sessid", "text" => GetMessage("ERROR_BAD_SESSID")); } elseif ($ID > 0 && !CForumNew::CanUserUpdateForum($ID, $USER->GetUserGroupArray(), $USER->GetID())) { $arError[] = array("id" => "not_right_for_edit", "text" => GetMessage("FE_NO_PERMS2UPDATE")); } elseif ($ID <= 0 && !CForumNew::CanUserAddForum($USER->GetUserGroupArray(), $USER->GetID())) { $arError[] = array("id" => "not_right_for_add", "text" => GetMessage("FE_NO_PERMS2ADD")); } elseif (!empty($_FILES["IMAGE"]["tmp_name"])) { $sUploadDir = $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/images/forum/" . ($_REQUEST["TYPE"] == "I" ? "icon" : "smile") . "/"; CheckDirPath($sUploadDir); $arSmile = $ID > 0 ? CForumSmile::GetByID($ID) : $arSmile; $res = CFile::CheckImageFile($_FILES["IMAGE"], COption::GetOptionString("forum", "file_max_size", 50000), 0, 0); if (strLen($res) > 0) { $arError[] = array("id" => "IMAGE", "text" => $res); } elseif (file_exists($sUploadDir . $fileName) && !(isset($arSmile["IMAGE"]) && $arSmile["IMAGE"] != $fileName)) { $arError[] = array("id" => "IMAGE", "text" => GetMessage("ERROR_EXISTS_IMAGE", array("#FILE#" => str_replace("//", "/", "/" . BX_ROOT . "/images/forum/" . ($_REQUEST["TYPE"] == "I" ? "icon" : "smile") . "/" . $fileName)))); } elseif (!@copy($_FILES["IMAGE"]["tmp_name"], $sUploadDir . $fileName)) { $arError[] = array("id" => "IMAGE", "text" => GetMessage("ERROR_COPY_IMAGE")); } else { @chmod($sUploadDir . $fileName, BX_FILE_PERMISSIONS); }
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; }
} $arParams["SET_TITLE"] = $arParams["SET_TITLE"] == "N" ? "N" : "Y"; $arParams["SET_NAVIGATION"] = $arParams["SET_NAVIGATION"] == "N" ? "N" : "Y"; // $arParams["DISPLAY_PANEL"] = ($arParams["DISPLAY_PANEL"] == "Y" ? "Y" : "N"); /******************************************************************** /Input params ********************************************************************/ $arResult["FORUM"] = CForumNew::GetByID($arParams["FID"]); if (empty($arResult["FORUM"])) { CHTTP::SetStatus("404 Not Found"); ShowError(GetMessage("F_ERROR_FORUM_NOT_EXISTS")); return false; } elseif (!CForumNew::CanUserViewForum($arParams["FID"], $USER->GetUserGroupArray())) { $APPLICATION->AuthForm(GetMessage("F_NO_FPERMS")); return false; } elseif (!array_key_exists(SITE_ID, CForumNew::GetSites($arParams["FID"])) && ($arParams["SHOW_FORUM_ANOTHER_SITE"] == "N" || !CForumUser::IsAdmin())) { CHTTP::SetStatus("404 Not Found"); ShowError(GetMessage("F_ERROR_FORUM_NOT_EXISTS")); return false; } /******************************************************************** Default values ********************************************************************/ $arParams["PERMISSION"] = $arResult["PERMISSION"] = ForumCurrUserPermissions($arParams["FID"]); $arResult["Topics"] = array(); $arResult["TOPICS"] = array(); $arResult["URL"] = array("INDEX" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_INDEX"], array()), "~INDEX" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_INDEX"], array()), "TOPIC_LIST" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_LIST"], array("FID" => $arParams["FID"])), "~TOPIC_LIST" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_LIST"], array("FID" => $arParams["FID"])), "TOPIC_NEW" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_NEW"], array("FID" => $arParams["FID"])), "~TOPIC_NEW" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_TOPIC_NEW"], array("FID" => $arParams["FID"])), "RSS" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_RSS"], array("TYPE" => "default", "MODE" => "forum", "IID" => $arParams["FID"])), "~RSS" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_RSS"], array("TYPE" => "default", "MODE" => "forum", "IID" => $arParams["FID"])), "RSS_DEFAULT" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_RSS"], array("TYPE" => "rss2", "MODE" => "forum", "IID" => $arParams["FID"])), "~RSS_DEFAULT" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_RSS"], array("TYPE" => "rss2", "MODE" => "forum", "IID" => $arParams["FID"]))); $arResult["CanUserAddTopic"] = CForumTopic::CanUserAddTopic($arParams["FID"], $USER->GetUserGroupArray(), $USER->GetID(), $arResult["FORUM"]); $arResult["ERROR_MESSAGE"] = ""; $arResult["OK_MESSAGE"] = ""; $parser = new forumTextParser(false, false, false, "light");
public static function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array(), $arAddParams = array()) { global $DB; $arSqlSearch = array(); $arSqlFrom = array(); $arSqlOrder = array(); $strSqlSearch = ""; $strSqlFrom = ""; $strSqlOrder = ""; $arFilter = is_array($arFilter) ? $arFilter : array(); foreach ($arFilter as $key => $val) { $key_res = CForumNew::GetFilterOperation($key); $key = strtoupper($key_res["FIELD"]); $strNegative = $key_res["NEGATIVE"]; $strOperation = $key_res["OPERATION"]; switch ($key) { case "TOPIC_ID": case "FORUM_ID": if (intVal($val) <= 0) { $arSqlSearch[] = ($strNegative == "Y" ? "NOT" : "") . "(FSTAT." . $key . " IS NULL OR FSTAT." . $key . "<=0)"; } else { $arSqlSearch[] = ($strNegative == "Y" ? " FSTAT." . $key . " IS NULL OR NOT " : "") . "(FSTAT." . $key . " " . $strOperation . " " . intVal($val) . ")"; } break; case "SITE_ID": $bOrNull = false; if (is_array($val)) { $res = array(); foreach ($val as $v) { $v = trim($v); if ($v == "NULL") { $bOrNull = true; } elseif (!empty($v)) { $res[] = "'" . $DB->ForSql($v) . "'"; } } $val = !empty($res) ? implode(", ", $res) : ""; $strOperation = !empty($res) ? "IN" : $strOperation; } else { $val = "'" . $DB->ForSql($val) . "'"; } if (strlen($val) <= 0) { $arSqlSearch[] = ($strNegative == "Y" ? "NOT" : "") . "(FSTAT." . $key . " IS NULL OR LENGTH(FSTAT." . $key . ")<=0)"; } elseif ($strOperation == "IN") { $arSqlSearch[] = ($strNegative == "Y" ? " FSTAT." . $key . " IS NULL OR NOT " : "") . "(FSTAT." . $key . " IN (" . $val . ")" . ($bOrNull ? " OR (FSTAT." . $key . " IS NULL OR LENGTH(FSTAT." . $key . ")<=0)" : "") . ")"; } else { $arSqlSearch[] = ($strNegative == "Y" ? " FSTAT." . $key . " IS NULL OR NOT " : "") . "(FSTAT." . $key . " " . $strOperation . " " . $val . ")"; } break; case "LAST_VISIT": if (strLen($val) <= 0) { $arSqlSearch[] = ($strNegative == "Y" ? "NOT" : "") . "(FSTAT." . $key . " IS NULL)"; } else { $arSqlSearch[] = ($strNegative == "Y" ? " FSTAT." . $key . " IS NULL OR NOT " : "") . "(FSTAT." . $key . " " . $strOperation . " " . $DB->CharToDateFunction($DB->ForSql($val), "FULL") . ")"; } break; case "PERIOD": if (strLen($val) <= 0) { $arSqlSearch[] = ($strNegative == "Y" ? "NOT" : "") . "(FSTAT.LAST_VISIT IS NULL)"; } else { $arSqlSearch[] = ($strNegative == "Y" ? " FSTAT.LAST_VISIT IS NULL OR NOT " : "") . "(FROM_UNIXTIME(UNIX_TIMESTAMP(CURRENT_TIMESTAMP) - " . intVal($val) . ") " . $strOperation . " FSTAT.LAST_VISIT)"; } break; case "HIDE_FROM_ONLINE": $arSqlFrom["FU"] = "LEFT JOIN b_forum_user FU ON (FSTAT.USER_ID=FU.USER_ID)"; if (strLen($val) <= 0) { $arSqlSearch[] = ($strNegative == "Y" ? "NOT" : "") . "(FU." . $key . " IS NULL OR LENGTH(FU." . $key . ")<=0)"; } else { $arSqlSearch[] = ($strNegative == "Y" ? " FU." . $key . " IS NULL OR NOT " : "") . "(((FU." . $key . " " . $strOperation . " '" . $DB->ForSql($val) . "' ) AND (FSTAT.USER_ID > 0)) OR (FSTAT.USER_ID <= 0))"; } break; break; case "ACTIVE": $arSqlFrom["U"] = "LEFT JOIN b_user U ON (FSTAT.USER_ID=U.ID)"; $arSqlSearch[] = ($strNegative == "Y" ? " U." . $key . " IS NULL OR NOT " : "") . "(FSTAT.USER_ID = 0 OR U.ACTIVE = 'Y')"; break; } } if (!empty($arSqlSearch)) { $strSqlSearch = " AND " . implode(" AND ", $arSqlSearch) . " "; } if (!empty($arSqlFrom)) { $strSqlFrom = implode("\n", $arSqlFrom); } foreach ($arOrder as $by => $order) { $by = strtoupper($by); $order = strtoupper($order); $order = $order != "ASC" ? $order = "DESC" : "ASC"; if ($by == "USER_ID") { $arSqlOrder[] = " FSTAT.USER_ID " . $order . " "; } } DelDuplicateSort($arSqlOrder); if (count($arSqlOrder) > 0) { $strSqlOrder = " ORDER BY " . implode(", ", $arSqlOrder); } $strSql = "SELECT FSTAT.USER_ID, FSTAT.IP_ADDRESS, FSTAT.PHPSESSID, \n" . "\t" . $DB->DateToCharFunction("FSTAT.LAST_VISIT", "FULL") . " AS LAST_VISIT, \n" . "\tFSTAT.FORUM_ID, FSTAT.TOPIC_ID \n" . "FROM b_forum_stat FSTAT " . $strSqlFrom . "\n" . "WHERE 1=1 " . $strSqlSearch . "\n" . $strSqlOrder; if (is_set($arFilter, "COUNT_GUEST")) { $strSql = "SELECT FST.*, FU.*, FSTAT.IP_ADDRESS, FSTAT.PHPSESSID, \n" . "\t" . $DB->DateToCharFunction("FSTAT.LAST_VISIT", "FULL") . " AS LAST_VISIT, \n" . "\tFSTAT.FORUM_ID, FSTAT.TOPIC_ID, \n" . "\tU.LOGIN, U.NAME, U.SECOND_NAME, U.LAST_NAME, \n" . "\t" . (!empty($arAddParams["sNameTemplate"]) ? CForumUser::GetFormattedNameFieldsForSelect(array_merge($arAddParams, array("sUserTablePrefix" => "U.", "sForumUserTablePrefix" => "FU.", "sFieldName" => "SHOW_NAME")), false) : "FSTAT.SHOW_NAME") . "\n " . " FROM ( " . " SELECT FSTAT.USER_ID, MAX(FSTAT.ID) FST_ID, COUNT(FSTAT.PHPSESSID) COUNT_USER " . " FROM b_forum_stat FSTAT " . $strSqlFrom . " WHERE 1=1 " . $strSqlSearch . " GROUP BY FSTAT.USER_ID" . ") FST " . "LEFT JOIN b_forum_stat FSTAT ON (FST.FST_ID = FSTAT.ID) " . "LEFT JOIN b_forum_user FU ON (FST.USER_ID = FU.USER_ID) " . "LEFT JOIN b_user U ON (FST.USER_ID = U.ID) " . $strSqlOrder; } $db_res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); return $db_res; }
********************************************************************/ if ($_SERVER["REQUEST_METHOD"] == "POST") { $TID1 = $arParams["MESSAGE_TYPE"] == "NEW" ? 0 : intVal($arParams["TID"]); $MID1 = $arParams["MESSAGE_TYPE"] == "NEW" ? 0 : intVal($arParams["MID"]); if (!check_bitrix_sessid()) { $arError[] = array("id" => "bad sessid", "text" => GetMessage("F_ERR_SESS_FINISH")); } elseif (!in_array($arResult["FORUM"]["ALLOW_UPLOAD"], array("Y", "A", "F")) && (!empty($_FILES) || !empty($_REQUEST["FILES"]))) { $arError[] = array("id" => "bad files", "text" => GetMessage("F_ERRRO_FILE_NOT_UPLOAD")); unset($_REQUEST["FILES"]); } elseif ($arResult["VIEW"] == "N") { $arFieldsG = array("POST_MESSAGE" => $_REQUEST["POST_MESSAGE"], "USE_SMILES" => $_REQUEST["USE_SMILES"], "OWNER_ID" => $arParams["USER_ID"], "SOCNET_GROUP_ID" => $arParams["SOCNET_GROUP_ID"], "PERMISSION_EXTERNAL" => $arParams["PERMISSION"]); if ($arParams["SHOW_VOTE"] == "Y" && (!empty($_REQUEST["QUESTION"]) || !empty($_REQUEST["QUESTION_ID"]))) { $VOTE_ID = $arResult["MESSAGE"]["PARAM1"] == 'VT' ? intVal($arResult["MESSAGE"]["PARAM2"]) : 0; $arVote = array("CHANNEL_ID" => $arParams["VOTE_CHANNEL_ID"], "TITLE" => $_REQUEST["TITLE"], "QUESTIONS" => array()); if ($VOTE_ID <= 0) { $arVote["DATE_START"] = GetTime(CForumNew::GetNowTime(), "FULL"); $arVote["DATE_END"] = GetTime(MakeTimeStamp($_REQUEST['DATE_END']), "FULL"); } else { $arVote["DATE_END"] = $_REQUEST['DATE_END']; } $arQuestions = $arResult["~QUESTIONS"]; $_REQUEST["QUESTION"] = is_array($_REQUEST["QUESTION"]) ? $_REQUEST["QUESTION"] : array(); foreach ($_REQUEST["QUESTION"] as $key => $val) { $res = array("QUESTION" => trim($val), "MULTI" => $_REQUEST["MULTI"][$key] == "Y" ? "Y" : "N", "DEL" => $_REQUEST["QUESTION_DEL"][$key] == "Y" ? "Y" : "N", "ANSWERS" => array()); $id = intval($_REQUEST["QUESTION_ID"][$key]); if ($id > 0 && is_set($arQuestions, $id)) { $res["ID"] = $id; } elseif ($res["DEL"] == "Y") { continue; } $arAnswers = is_array($arResult["~QUESTIONS"][$res["ID"]]["ANSWERS"]) ? $arResult["~QUESTIONS"][$res["ID"]]["ANSWERS"] : array();
<?php /******************************************************************** Topics **************************************!*****************************/ require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/forum/include.php"; $forumModulePermissions = $APPLICATION->GetGroupRight("forum"); if ($forumModulePermissions == "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } IncludeModuleLangFile(__FILE__); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/forum/prolog.php"; /*******************************************************************/ $db_Forum = CForumNew::GetListEx(array("SORT" => "ASC", "NAME" => "ASC")); $arr = array(); $arr["reference_id"][] = ""; $arr["reference"][] = ""; $arrForum = array(); $arrSelect = ""; while ($dbForum = $db_Forum->Fetch()) { $arrForum[$dbForum["ID"]] = $dbForum["NAME"]; $arrSelect .= "<option value='" . $dbForum["ID"] . "'>" . htmlspecialcharsex($dbForum["NAME"]) . "</option>"; $arr["reference_id"][] = $dbForum["ID"]; $arr["reference"][] = $dbForum["NAME"]; } /*******************************************************************/ $sTableID = "tbl_topic"; $oSort = new CAdminSorting($sTableID, "ID", "asc"); $lAdmin = new CAdminList($sTableID, $oSort); $lAdmin->InitFilter(array("FORUM_ID", "TITLE", "DESCRIPTION", "USER_START_ID", "ACTIVE", "PINNED", "OPENED", "DATE_FROM", "DATE_TO", "CREATE_DATE_FROM", "CREATE_DATE_TO"));
public static function GetSettings($Params = array()) { if (isset(self::$settings) && count(self::$settings) > 0 && $Params['request'] === false) { return self::$settings; } $pathes_for_sites = COption::GetOptionString('calendar', 'pathes_for_sites', true); if ($Params['forseGetSitePathes'] || !$pathes_for_sites) { $pathes = self::GetPathes(); } else { $pathes = array(); } if (!isset($Params['getDefaultForEmpty']) || $Params['getDefaultForEmpty'] !== false) { $Params['getDefaultForEmpty'] = true; } self::$settings = array('work_time_start' => COption::GetOptionString('calendar', 'work_time_start', 9), 'work_time_end' => COption::GetOptionString('calendar', 'work_time_end', 19), 'year_holidays' => COption::GetOptionString('calendar', 'year_holidays', '1.01,2.01,7.01,23.02,8.03,1.05,9.05,12.06,4.11,12.12'), 'year_workdays' => COption::GetOptionString('calendar', 'year_workdays', ''), 'week_holidays' => explode('|', COption::GetOptionString('calendar', 'week_holidays', 'SA|SU')), 'week_start' => COption::GetOptionString('calendar', 'week_start', 'MO'), 'user_name_template' => self::GetUserNameTemplate($Params['getDefaultForEmpty']), 'user_show_login' => COption::GetOptionString('calendar', 'user_show_login', true), 'path_to_user' => COption::GetOptionString('calendar', 'path_to_user', "/company/personal/user/#user_id#/"), 'path_to_user_calendar' => COption::GetOptionString('calendar', 'path_to_user_calendar', "/company/personal/user/#user_id#/calendar/"), 'path_to_group' => COption::GetOptionString('calendar', 'path_to_group', "/workgroups/group/#group_id#/"), 'path_to_group_calendar' => COption::GetOptionString('calendar', 'path_to_group_calendar', "/workgroups/group/#group_id#/calendar/"), 'path_to_vr' => COption::GetOptionString('calendar', 'path_to_vr', ""), 'path_to_rm' => COption::GetOptionString('calendar', 'path_to_rm', ""), 'rm_iblock_type' => COption::GetOptionString('calendar', 'rm_iblock_type', ""), 'rm_iblock_id' => COption::GetOptionString('calendar', 'rm_iblock_id', ""), 'vr_iblock_id' => COption::GetOptionString('calendar', 'vr_iblock_id', ""), 'dep_manager_sub' => COption::GetOptionString('calendar', 'dep_manager_sub', true), 'denied_superpose_types' => unserialize(COption::GetOptionString('calendar', 'denied_superpose_types', serialize(array()))), 'pathes_for_sites' => $pathes_for_sites, 'pathes' => $pathes, 'forum_id' => COption::GetOptionString('calendar', 'forum_id', "")); if (self::$settings['work_time_start'] > 23) { self::$settings['work_time_start'] = 23; } if (self::$settings['work_time_end'] <= self::$settings['work_time_start']) { self::$settings['work_time_end'] = self::$settings['work_time_start'] + 1; } if (self::$settings['work_time_end'] > 23.3) { self::$settings['work_time_end'] = 23.3; } if (self::$settings['forum_id'] == "") { self::$settings['forum_id'] = COption::GetOptionString("tasks", "task_forum_id", ""); if (self::$settings['forum_id'] == "" && CModule::IncludeModule("forum")) { $db = CForumNew::GetListEx(); if ($ar = $db->GetNext()) { self::$settings['forum_id'] = $ar["ID"]; } } COption::SetOptionString("calendar", "forum_id", self::$settings['forum_id']); } return self::$settings; }
while ($arLang = $rsLanguages->Fetch()) { $file = dirname(__FILE__) . "/lang/" . $arLang["LANGUAGE_ID"] . "/books-files.php"; include $file; $arFields["LANG"][] = array("LID" => $arLang["LANGUAGE_ID"], "NAME" => GetMessage("DEMO_IBLOCK_ESTORE_BOOKS_FORUM_GROUP_NAME"), "DESCRIPTION" => ""); } $arForumGroup = array("FORUM_GROUP_ID" => CForumGroup::Add($arFields)); } if ($arForumGroup["FORUM_GROUP_ID"]) { $arFields = array("NAME" => GetMessage("DEMO_IBLOCK_ESTORE_BOOKS_FORUM_NAME"), "DESCRIPTION" => "", "SORT" => 150, "ACTIVE" => "Y", "ALLOW_HTML" => "N", "ALLOW_ANCHOR" => "Y", "ALLOW_BIU" => "Y", "ALLOW_IMG" => "Y", "ALLOW_LIST" => "Y", "ALLOW_QUOTE" => "Y", "ALLOW_CODE" => "Y", "ALLOW_FONT" => "Y", "ALLOW_SMILES" => "Y", "ALLOW_UPLOAD" => "N", "ALLOW_UPLOAD_EXT" => "", "ALLOW_NL2BR" => "N", "MODERATION" => "N", "ALLOW_MOVE_TOPIC" => "N", "ORDER_BY" => "P", "ORDER_DIRECTION" => "DESC", "PATH2FORUM_MESSAGE" => "", "FORUM_GROUP_ID" => $arForumGroup["FORUM_GROUP_ID"], "ASK_GUEST_EMAIL" => "N", "USE_CAPTCHA" => "N", "SITES" => array($arParams["site_id"] => "/communication/forum/messages/forum#FORUM_ID#/topic#TOPIC_ID#/message#MESSAGE_ID#/")); $arFields["GROUP_ID"] = array("2" => "M", "19" => "Q"); if (CModule::IncludeModule("statistic")) { $arFields["EVENT1"] = "forum"; $arFields["EVENT2"] = "message"; $arFields["EVENT3"] = ""; } $arForum = array("ID" => CForumNew::Add($arFields)); } } } else { $arForum = array("ID" => ""); } //Include language one more time (after forum creation) __IncludeLang(GetLangFileName(dirname(__FILE__) . "/lang/", "/" . basename(__FILE__))); $search = array("#IBLOCK.ID(XML_ID=books-authors)#", "#IBLOCK.ID(XML_ID=books-books)#", "#IBLOCK.ID(XML_ID=books-reviews)#", "#FORUM.ID(NAME=books-reviews)#", "#MODULE.INSTALLED(ID=forum)#"); $replace = array(CIBlockCMLImport::GetIBlockByXML_ID("books-authors"), CIBlockCMLImport::GetIBlockByXML_ID("books-books"), CIBlockCMLImport::GetIBlockByXML_ID("books-reviews"), $arForum["ID"], IsModuleInstalled("forum") ? "Y" : "N"); //Create directory and copy files DEMO_IBlock_CopyFiles("/public/e-store/books/", "/e-store/books/", false, $search, $replace); DEMO_IBlock_CopyFiles("/public/e-store/books/authors/", "/e-store/books/authors/", false, $search, $replace); DEMO_IBlock_CopyFiles("/public/e-store/books/reviews/", "/e-store/books/reviews/", false, $search, $replace); CopyDirFiles(dirname(__FILE__) . "/public/language/" . LANGUAGE_ID . "/e-store/books/", $_SERVER["DOCUMENT_ROOT"] . "/e-store/books", false, true); //Add menu item
} if ($user_id > 0 && ($arParams["ENTITY_TYPE"] != SONET_ENTITY_GROUP || (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["GROUP_ID"], "blog", "full_post", CSocNetUser::IsCurrentUserModuleAdmin()) || $APPLICATION->GetGroupRight("blog") >= "W" || CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["GROUP_ID"], "blog", "write_post") || CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["GROUP_ID"], "blog", "moderate_post") || CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["GROUP_ID"], "blog", "premoderate_post")))) { $arResult["MICROBLOG_USER_ID"] = $user_id; } if (IsModuleInstalled("photogallery")) { if (strlen($arParams["PHOTO_USER_IBLOCK_TYPE"]) <= 0) { $arParams["PHOTO_USER_IBLOCK_TYPE"] = "photos"; } if (intval($arParams["PHOTO_USER_IBLOCK_ID"]) <= 0 && CModule::IncludeModule("iblock")) { $dbRes = CIBlock::GetList(array(), array("SITE_ID" => SITE_ID, "CODE" => "user_photogallery")); if ($arRes = $dbRes->Fetch()) { $arParams["PHOTO_USER_IBLOCK_ID"] = $arRes["ID"]; } } if (intval($arParams["PHOTO_FORUM_ID"]) <= 0 && CModule::IncludeModule("forum")) { $dbRes = CForumNew::GetListEx(array(), array("SITE_ID" => SITE_ID, "XML_ID" => "PHOTOGALLERY_COMMENTS")); if ($arRes = $dbRes->Fetch()) { $arParams["PHOTO_FORUM_ID"] = $arRes["ID"]; } } $arParams["PATH_TO_USER_PHOTO"] = strlen($arParams["PATH_TO_USER_PHOTO"]) > 0 ? $arParams["PATH_TO_USER_PHOTO"] : $folderUsers . "user/#user_id#/photo/"; $arParams["PATH_TO_GROUP_PHOTO"] = strlen($arParams["PATH_TO_GROUP_PHOTO"]) > 0 ? $arParams["PATH_TO_GROUP_PHOTO"] : $folderWorkgroups . "group/#group_id#/photo/"; $arParams["PATH_TO_USER_PHOTO_SECTION"] = strlen($arParams["PATH_TO_USER_PHOTO_SECTION"]) > 0 ? $arParams["PATH_TO_USER_PHOTO_SECTION"] : $folderUsers . "user/#user_id#/photo/album/#section_id#/"; $arParams["PATH_TO_GROUP_PHOTO_SECTION"] = strlen($arParams["PATH_TO_GROUP_PHOTO_SECTION"]) > 0 ? $arParams["PATH_TO_GROUP_PHOTO_SECTION"] : $folderWorkgroups . "group/#group_id#/photo/album/#section_id#/"; $arParams["PATH_TO_USER_PHOTO_ELEMENT"] = strlen($arParams["PATH_TO_USER_PHOTO_ELEMENT"]) > 0 ? $arParams["PATH_TO_USER_PHOTO_ELEMENT"] : $folderUsers . "user/#user_id#/photo/photo/#section_id#/#element_id#/"; $arParams["PATH_TO_GROUP_PHOTO_ELEMENT"] = strlen($arParams["PATH_TO_GROUP_PHOTO_ELEMENT"]) > 0 ? $arParams["PATH_TO_GROUP_PHOTO_ELEMENT"] : $folderWorkgroups . "group/#group_id#/photo/#section_id#/#element_id#/"; } $bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin(); $arResult["TZ_OFFSET"] = CTimeZone::GetOffset(); CSocNetTools::InitGlobalExtranetArrays(); if ($GLOBALS["USER"]->IsAuthorized() || $arParams["AUTH"] == "Y") {
/******************************************************************** Default values ********************************************************************/ $arResult["TOPIC"] = array(); $arResult["FORUM"] = array(); $arResult["FORUMS"] = array(); $arResult["TOPICS"] = array(); $arForums = array(); $arTopics = array(); /******************************************************************** /Default values ********************************************************************/ /******************************************************************** Data ********************************************************************/ $db_res = CForumNew::GetListEx(array(), $arFilter); if ($db_res && ($res = $db_res->GetNext())) { do { $res["URL"] = array("LIST" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_LIST"], array("FID" => $res["ID"])), "~LIST" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_LIST"], array("FID" => $res["ID"]))); $res["list"] = $res["URL"]["list"]; // for custom $arForums[$res["ID"]] = $res; } while ($res = $db_res->GetNext()); } if (!empty($arForums)) { // it need for custom components foreach (array("TITLE", "USER_START_NAME", "POSTS", "VIEWS", "LAST_POST_DATE") as $res) { $arResult["SortingEx"][$res] = SortingEx($res, false, "by" . $orderIndex, "order" . $orderIndex); } // /it need for custom components $db_res = CForumTopic::GetListEx($arSort, array("@FORUM_ID" => array_keys($arForums), "APPROVED" => "Y"), false, false, $arNavParams);
$lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("NAV"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "ID", "default" => false), array("id" => "FORUM_GROUP_ID", "content" => GetMessage("FORUM_GROUP_ID"), "sort" => "FORUM_GROUP_LEFT_MARGIN", "default" => true), array("id" => "NAME", "content" => GetMessage("NAME"), "sort" => "NAME", "default" => true), array("id" => "ACTIVE", "content" => GetMessage("ACTIVE"), "sort" => "ACTIVE", "default" => true), array("id" => "LAND", "content" => GetMessage('LAND'), "default" => true), array("id" => "SORT", "content" => GetMessage("SORT"), "sort" => "SORT", "align" => "right"), array("id" => "MODERATION", "content" => GetMessage("MODERATION"), "sort" => "MODERATION"), array("id" => "INDEXATION", "content" => GetMessage("INDEXATION"), "sort" => "INDEXATION"), array("id" => "ORDER_BY", "content" => GetMessage("ORDER_BY"), "sort" => "ORDER_BY"), array("id" => "ORDER_DIRECTION", "content" => GetMessage("ORDER_DIRECTION"), "sort" => "ORDER_DIRECTION"))); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); while ($arForum = $dbResultList->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arForum); $bCanUpdateForum = CForumNew::CanUserUpdateForum($f_ID, $USER->GetUserGroupArray(), $USER->GetID()); $bCanDeleteForum = CForumNew::CanUserDeleteForum($f_ID, $USER->GetUserGroupArray(), $USER->GetID()); $row->bReadOnly = $bCanUpdateForum ? false : true; $row->AddField("ID", $f_ID); $row->AddViewField("NAME", '<a title="' . GetMessage("FORUM_EDIT") . '" href="forum_edit.php?ID=' . $f_ID . '&lang=' . LANG . GetFilterParams("filter_") . '">' . $f_NAME . '</a>'); $row->AddInputField("NAME", $bCanUpdateForum ? array("size" => "30") : false); $row->AddCheckField("ACTIVE", $bCanUpdateForum ? array() : false); $res = array(); $res2 = array(); if (in_array("LAND", $arVisibleColumns)) { $arForumSite = CForumNew::GetSites($f_ID); foreach ($arSites as $lid => $site) { if (array_key_exists($lid, $arForumSite)) { $res[] = $site["NAME"] . " [" . $lid . "]"; } $class = empty($arForumSite[$lid]) ? "empty-path" : ""; $res2[] = <<<HTML <dt class="{$class}" id="site_lid_{$key}">{$site["NAME"]} [{$key}]</dt> <dd> \t<textarea id="site_path_{$key}" rows="2" cols="40" name="SITE_PATH[{$key}]" \t\tonfocus="BX.removeClass(BX('site_lid_{$key}'), 'empty-path')" \t\tonblur="if(!BX.type.isNotEmptyString(this.value)){ BX.addClass(BX('site_lid_{$key}'), 'empty-path')}" \t\t>{$arForumSite[$lid]}</textarea> </dd> HTML; }
function SocnetEMailMessageAdd($arMessageFields, $ACTION_VARS) { if (!is_array($arMessageFields["FORUM_EMAIL_FILTER"])) { return false; } if (!CModule::IncludeModule("socialnetwork")) { return false; } $arParams = $arMessageFields["FORUM_EMAIL_FILTER"]; if (!CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "forum")) { return false; } // Найдем кто отправитель $message_email = strlen($arMessageFields["FIELD_REPLY_TO"]) > 0 ? $arMessageFields["FIELD_REPLY_TO"] : $arMessageFields["FIELD_FROM"]; $message_email_addr = strtolower(CMailUtil::ExtractMailAddress($message_email)); $o = "LAST_LOGIN"; $b = "DESC"; $res = CUser::GetList($o, $b, array("ACTIVE" => "Y", "EMAIL" => $message_email_addr)); if (($arUser = $res->Fetch()) && strtolower(CMailUtil::ExtractMailAddress($arUser["EMAIL"])) == $message_email_addr) { $AUTHOR_USER_ID = $arUser["ID"]; } elseif ($arParams["NOT_MEMBER_POST"] == "Y") { $AUTHOR_USER_ID = false; } else { CMailLog::AddMessage(array("MAILBOX_ID" => $arMessageFields["MAILBOX_ID"], "MESSAGE_ID" => $arMessageFields["ID"], "FILTER_ID" => $arParams["MAIL_FILTER_ID"], "LOG_TYPE" => "FILTER_ERROR", "MESSAGE" => GetMessage("FORUM_MAIL_ERROR1") . ": " . $message_email_addr)); return false; } if ($arParams["NOT_MEMBER_POST"] != "Y") { // Проверим права доступа if (CSocNetFeaturesPerms::CanPerformOperation($AUTHOR_USER_ID, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "forum", "full")) { $PERMISSION = "Y"; } elseif (CSocNetFeaturesPerms::CanPerformOperation($AUTHOR_USER_ID, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "forum", "newtopic")) { $PERMISSION = "M"; } elseif (CSocNetFeaturesPerms::CanPerformOperation($AUTHOR_USER_ID, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "forum", "answer")) { $PERMISSION = "I"; } else { CMailLog::AddMessage(array("MAILBOX_ID" => $arMessageFields["MAILBOX_ID"], "MESSAGE_ID" => $arMessageFields["ID"], "FILTER_ID" => $arParams["MAIL_FILTER_ID"], "LOG_TYPE" => "FILTER_ERROR", "MESSAGE" => GetMessage("FORUM_MAIL_ERROR2") . " " . $arUser["LOGIN"] . " [" . $AUTHOR_USER_ID . "] (" . $message_email_addr . ")")); return false; } } $body = $arMessageFields["BODY"]; //$body = preg_replace("/(\r\n)+/", "\r\n", $body); $p = strpos($body, "\r\nFrom:"); if ($p > 0) { $body = substr($body, 0, $p) . "\r\n[CUT]" . substr($body, $p) . "[/CUT]"; } $subject = $arMessageFields["SUBJECT"]; // обрежем все RE и FW $subject = trim(preg_replace('#^\\s*((RE[0-9\\[\\]]*:\\s*)|(FW:\\s*))+(.*)$#i', '\\4', $subject)); if ($subject == '') { $subject = GetMessage("FORUM_MAIL_EMPTY_TOPIC_TITLE") . " " . rand(); } // Найдем какая тема $arFields = array(); $FORUM_ID = IntVal($arParams["FORUM_ID"]); $SOCNET_GROUP_ID = IntVal($arParams["SOCNET_GROUP_ID"]); $TOPIC_ID = 0; global $DB; if ($arMessageFields["IN_REPLY_TO"] != '') { $dbTopic = $DB->Query("SELECT FT.ID FROM b_forum_topic FT INNER JOIN b_forum_message FM ON FM.TOPIC_ID=FT.ID WHERE FM.XML_ID='" . $DB->ForSQL($arMessageFields["IN_REPLY_TO"], 255) . "' AND FT.FORUM_ID=" . $FORUM_ID . " AND FT.SOCNET_GROUP_ID=" . $SOCNET_GROUP_ID); if ($arTopic = $dbTopic->Fetch()) { $TOPIC_ID = $arTopic["ID"]; } } if ($arParams["USE_SUBJECT"] == "Y" && $TOPIC_ID <= 0) { $dbTopic = $DB->Query("SELECT ID FROM b_forum_topic WHERE TITLE='" . $DB->ForSQL($subject, 255) . "' AND FORUM_ID=" . $FORUM_ID . " AND SOCNET_GROUP_ID=" . $SOCNET_GROUP_ID); // ограничить по старости? if ($arTopic = $dbTopic->Fetch()) { $TOPIC_ID = $arTopic["ID"]; } } if ($AUTHOR_USER_ID > 0) { if ($TOPIC_ID < 0 && $PERMISSION <= "I") { CMailLog::AddMessage(array("MAILBOX_ID" => $arMessageFields["MAILBOX_ID"], "MESSAGE_ID" => $arMessageFields["ID"], "FILTER_ID" => $arParams["MAIL_FILTER_ID"], "LOG_TYPE" => "FILTER_ERROR", "MESSAGE" => GetMessage("FORUM_MAIL_ERROR3") . " " . $arUser["LOGIN"] . " [" . $AUTHOR_USER_ID . "] (" . $message_email_addr . ")")); return false; } $bSHOW_NAME = true; $res = CForumUser::GetByUSER_ID($AUTHOR_USER_ID); if ($res) { $bSHOW_NAME = $res["SHOW_NAME"] == "Y"; } if ($bSHOW_NAME) { $AUTHOR_NAME = $arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"]; } if (strlen(Trim($AUTHOR_NAME)) <= 0) { $AUTHOR_NAME = $arUser["LOGIN"]; } } else { $AUTHOR_NAME = $arMessageFields["FIELD_FROM"]; $arFields["AUTHOR_EMAIL"] = $arMessageFields["FIELD_FROM"]; } $arFields["NEW_TOPIC"] = "N"; if ($PERMISSION >= "Q") { $arFields["APPROVED"] = "Y"; } else { $arFields["APPROVED"] = $arParams["MODERATION"] == "Y" ? "N" : "Y"; } // Добавим новую тему if ($TOPIC_ID <= 0) { $arTopicFields = array("TITLE" => $subject, "FORUM_ID" => $FORUM_ID, "USER_START_ID" => $AUTHOR_USER_ID, "OWNER_ID" => $AUTHOR_USER_ID, "SOCNET_GROUP_ID" => $SOCNET_GROUP_ID); $arTopicFields["XML_ID"] = $arMessageFields["MSG_ID"]; $arTopicFields["APPROVED"] = $arFields['APPROVED']; $arTopicFields["USER_START_NAME"] = $AUTHOR_NAME; $arTopicFields["LAST_POSTER_NAME"] = $AUTHOR_NAME; $TOPIC_ID = CForumTopic::Add($arTopicFields); if (IntVal($TOPIC_ID) <= 0) { CMailLog::AddMessage(array("MAILBOX_ID" => $arMessageFields["MAILBOX_ID"], "MESSAGE_ID" => $arMessageFields["ID"], "FILTER_ID" => $arParams["MAIL_FILTER_ID"], "LOG_TYPE" => "FILTER_ERROR", "MESSAGE" => GetMessage("FORUM_MAIL_ERROR4"))); return false; } $arFields["NEW_TOPIC"] = "Y"; } // Добавим сообщение $arFields["POST_MESSAGE"] = $body; // Аттаченные файлы $arFILES = array(); $rsAttach = CMailAttachment::GetList(array(), array("MESSAGE_ID" => $arMessageFields["ID"])); while ($arAttach = $rsAttach->Fetch()) { $filename = CTempFile::GetFileName(md5(uniqid("")) . ".tmp"); CheckDirPath($filename); if (file_put_contents($filename, $arAttach["FILE_DATA"]) !== false) { $arFile = array("name" => $arAttach["FILE_NAME"], "type" => $arAttach["CONTENT_TYPE"], "size" => @filesize($filename), "tmp_name" => $filename, "MODULE_ID" => "forum"); $arFilter = array("FORUM_ID" => $FORUM_ID); $arFiles = array($arFile); if (CForumFiles::CheckFields($arFiles, $arFilter)) { $arFILES[] = $arFiles[0]; } else { $oError = $GLOBALS["APPLICATION"]->GetException(); CMailLog::AddMessage(array("MAILBOX_ID" => $arMessageFields["MAILBOX_ID"], "MESSAGE_ID" => $arMessageFields["ID"], "FILTER_ID" => $arParams["MAIL_FILTER_ID"], "LOG_TYPE" => "FILTER_ERROR", "MESSAGE" => GetMessage("FORUM_MAIL_ERROR6") . " (" . $arAttach["FILE_NAME"] . "): " . ($oError && $oError->GetString() ? $oError->GetString() : ""))); } } } if (count($arFILES) > 0) { $arFields["FILES"] = $arFILES; } $arFields["AUTHOR_NAME"] = $AUTHOR_NAME; $arFields["AUTHOR_ID"] = $AUTHOR_USER_ID; $arFields["FORUM_ID"] = $FORUM_ID; $arFields["TOPIC_ID"] = $TOPIC_ID; $arFields["XML_ID"] = $arMessageFields["MSG_ID"]; $arFields["SOURCE_ID"] = "EMAIL"; $arRes = array(); if (!empty($arMessageFields["FIELD_FROM"])) { $arRes[] = "From: " . $arMessageFields["FIELD_FROM"]; } if (!empty($arMessageFields["FIELD_TO"])) { $arRes[] = "To: " . $arMessageFields["FIELD_TO"]; } if (!empty($arMessageFields["FIELD_CC"])) { $arRes[] = "Cc: " . $arMessageFields["FIELD_CC"]; } if (!empty($arMessageFields["FIELD_BCC"])) { $arRes[] = "Bcc: " . $arMessageFields["FIELD_BCC"]; } $arRes[] = "Subject: " . $arMessageFields["SUBJECT"]; $arRes[] = "Date: " . $arMessageFields["FIELD_DATE"]; $arFields["MAIL_HEADER"] = implode("\r\n", $arRes); preg_match_all('#Received:\\s+from\\s+(.*)by.*#i', $arMessageFields["HEADER"], $regs); if (is_array($regs) && is_array($regs[1])) { $arFields["AUTHOR_IP"] = $arFields["AUTHOR_REAL_IP"] = '<email: ' . $regs[1][count($regs[1]) - 1] . '>'; } else { $arFields["AUTHOR_IP"] = $arFields["AUTHOR_REAL_IP"] = '<email: no address>'; } /* $AUTHOR_IP = ForumGetRealIP(); $AUTHOR_IP_tmp = $AUTHOR_IP; $AUTHOR_REAL_IP = $_SERVER['REMOTE_ADDR']; if (COption::GetOptionString("forum", "FORUM_GETHOSTBYADDR", "N") == "Y") { $AUTHOR_IP = @gethostbyaddr($AUTHOR_IP); if ($AUTHOR_IP_tmp==$AUTHOR_REAL_IP) $AUTHOR_REAL_IP = $AUTHOR_IP; else $AUTHOR_REAL_IP = @gethostbyaddr($AUTHOR_REAL_IP); } $arFields["AUTHOR_IP"] = ($AUTHOR_IP!==False) ? $AUTHOR_IP : "<no address>"; $arFields["AUTHOR_REAL_IP"] = ($AUTHOR_REAL_IP!==False) ? $AUTHOR_REAL_IP : "<no address>"; */ $strErrorMessage = ''; $MESSAGE_ID = CForumMessage::Add($arFields, false); if (intVal($MESSAGE_ID) <= 0) { $str = $GLOBALS['APPLICATION']->GetException(); if ($str && $str->GetString()) { $strErrorMessage .= "[" . $str->GetString() . "]"; } if ($arFields["NEW_TOPIC"] == 'Y') { CForumTopic::Delete($TOPIC_ID); } CMailLog::AddMessage(array("MAILBOX_ID" => $arMessageFields["MAILBOX_ID"], "MESSAGE_ID" => $arMessageFields["ID"], "FILTER_ID" => $arParams["MAIL_FILTER_ID"], "LOG_TYPE" => "FILTER_ERROR", "MESSAGE" => GetMessage("FORUM_MAIL_ERROR5") . " " . $strErrorMessage)); } if ($MESSAGE_ID > 0) { CMailLog::AddMessage(array("MAILBOX_ID" => $arMessageFields["MAILBOX_ID"], "MESSAGE_ID" => $arMessageFields["ID"], "FILTER_ID" => $arParams["MAIL_FILTER_ID"], "LOG_TYPE" => "FILTER_COMPLETE", "MESSAGE" => GetMessage("FORUM_MAIL_OK") . " " . $MESSAGE_ID . " (TID#" . $TOPIC_ID . ")")); CForumMessage::SendMailMessage($MESSAGE_ID, array(), false, "NEW_FORUM_MESSAGE"); $dbSite = CSite::GetById($arMessageFields["LID"]); if ($arSite = $dbSite->Fetch()) { $lang = $arSite['LANGUAGE_ID']; } else { $lang = $LANGUAGE_ID; } $parser = new forumTextParser(); $arForum = CForumNew::GetByID($FORUM_ID); $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "LIST" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "SMILES" => "N", "UPLOAD" => $arForum["ALLOW_UPLOAD"], "NL2BR" => "N", "TABLE" => "N", "ALIGN" => "N"); if ($arFields["NEW_TOPIC"] == "Y") { $arFieldsForSocnet = array("ENTITY_TYPE" => SONET_ENTITY_GROUP, "ENTITY_ID" => $SOCNET_GROUP_ID, "EVENT_ID" => "forum", "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "TITLE_TEMPLATE" => str_replace("#AUTHOR_NAME#", $AUTHOR_NAME, CForumEmail::GetLangMessage("FORUM_MAIL_SOCNET_TITLE_TOPIC", $lang)), "TITLE" => $subject, "MESSAGE" => $parser->convert($body, $arAllow), "TEXT_MESSAGE" => $parser->convert4mail($body), "URL" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("UID" => $AUTHOR_USER_ID, "FID" => $FORUM_ID, "TID" => $TOPIC_ID, "MID" => $MESSAGE_ID)), "PARAMS" => serialize(array("PATH_TO_MESSAGE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("TID" => $TOPIC_ID)))), "MODULE_ID" => false, "CALLBACK_FUNC" => false, "SOURCE_ID" => $MESSAGE_ID, "RATING_TYPE_ID" => "FORUM_TOPIC", "RATING_ENTITY_ID" => intval($TOPIC_ID)); if (intVal($AUTHOR_USER_ID) > 0) { $arFieldsForSocnet["USER_ID"] = $AUTHOR_USER_ID; } $logID = CSocNetLog::Add($arFieldsForSocnet, false); if (intval($logID) > 0) { CSocNetLog::Update($logID, array("TMP_ID" => $logID)); CSocNetLogRights::SetForSonet($logID, $arFieldsForSocnet["ENTITY_TYPE"], $arFieldsForSocnet["ENTITY_ID"], "forum", "view", true); CSocNetLog::SendEvent($logID, "SONET_NEW_EVENT", $logID); } } else { $dbForumMessage = CForumMessage::GetList(array("ID" => "ASC"), array("TOPIC_ID" => $TOPIC_ID)); if ($arForumMessage = $dbForumMessage->Fetch()) { $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => "forum", "SOURCE_ID" => $arForumMessage["ID"]), false, false, array("ID", "TMP_ID")); if ($arRes = $dbRes->Fetch()) { $log_id = $arRes["TMP_ID"]; } else { $dbFirstMessage = CForumMessage::GetList(array("ID" => "ASC"), array("TOPIC_ID" => $arForumMessage["TOPIC_ID"]), false, 1); if ($arFirstMessage = $dbFirstMessage->Fetch()) { $arTopic = CForumTopic::GetByID($arFirstMessage["TOPIC_ID"]); $sFirstMessageText = COption::GetOptionString("forum", "FILTER", "Y") == "Y" ? $arFirstMessage["POST_MESSAGE_FILTER"] : $arFirstMessage["POST_MESSAGE"]; $sFirstMessageURL = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("UID" => $arFirstMessage["AUTHOR_ID"], "FID" => $arFirstMessage["FORUM_ID"], "TID" => $arFirstMessage["TOPIC_ID"], "MID" => $arFirstMessage["ID"])); $arFieldsForSocnet = array("ENTITY_TYPE" => SONET_ENTITY_GROUP, "ENTITY_ID" => $SOCNET_GROUP_ID, "EVENT_ID" => "forum", "LOG_DATE" => $arFirstMessage["POST_DATE"], "LOG_UPDATE" => $arFirstMessage["POST_DATE"], "TITLE_TEMPLATE" => str_replace("#AUTHOR_NAME#", $arFirstMessage["AUTHOR_NAME"], GetMessage("SONET_FORUM_LOG_TOPIC_TEMPLATE")), "TITLE" => $arTopic["TITLE"], "MESSAGE" => $parser->convert($sFirstMessageText, $arAllow), "TEXT_MESSAGE" => $parser->convert4mail($sFirstMessageText), "URL" => $sFirstMessageURL, "PARAMS" => serialize(array("PATH_TO_MESSAGE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("TID" => $arFirstMessage["TOPIC_ID"])))), "MODULE_ID" => false, "CALLBACK_FUNC" => false, "SOURCE_ID" => $arFirstMessage["ID"], "RATING_TYPE_ID" => "FORUM_TOPIC", "RATING_ENTITY_ID" => intval($arFirstMessage["TOPIC_ID"])); if (intVal($arFirstMessage["AUTHOR_ID"]) > 0) { $arFieldsForSocnet["USER_ID"] = $arFirstMessage["AUTHOR_ID"]; } $log_id = CSocNetLog::Add($arFieldsForSocnet, false); if (intval($log_id) > 0) { CSocNetLog::Update($log_id, array("TMP_ID" => $log_id)); CSocNetLogRights::SetForSonet($log_id, $arFieldsForSocnet["ENTITY_TYPE"], $arFieldsForSocnet["ENTITY_ID"], "forum", "view", true); } } } if (intval($log_id) > 0) { $arFieldsForSocnet = array("ENTITY_TYPE" => SONET_ENTITY_GROUP, "ENTITY_ID" => $SOCNET_GROUP_ID, "EVENT_ID" => "forum", "LOG_ID" => $log_id, "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE" => $parser->convert($body, $arAllow), "TEXT_MESSAGE" => $parser->convert4mail($body), "URL" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("UID" => $AUTHOR_USER_ID, "FID" => $FORUM_ID, "TID" => $TOPIC_ID, "MID" => $MESSAGE_ID)), "MODULE_ID" => false, "SOURCE_ID" => $MESSAGE_ID, "RATING_TYPE_ID" => "FORUM_POST", "RATING_ENTITY_ID" => intval($MESSAGE_ID)); if (intVal($AUTHOR_USER_ID) > 0) { $arFieldsForSocnet["USER_ID"] = $AUTHOR_USER_ID; } CSocNetLogComments::Add($arFieldsForSocnet); } } } } }
<?php if (!$USER->IsAdmin()) { return; } IncludeModuleLangFile(__FILE__); \Bitrix\Main\Loader::includeModule('tasks'); $arDefaultValues = array('paths_task_user' => '/company/personal/user/#user_id#/tasks/', 'paths_task_user_entry' => '/company/personal/user/#user_id#/tasks/task/view/#task_id#/', 'paths_task_user_edit' => '/company/personal/user/#user_id#/tasks/task/edit/#task_id#/', 'paths_task_user_action' => '/company/personal/user/#user_id#/tasks/task/#action#/#task_id#/', 'paths_task_group' => '/workgroups/group/#group_id#/tasks/', 'paths_task_group_entry' => '/workgroups/group/#group_id#/tasks/task/view/#task_id#/', 'paths_task_group_edit' => '/workgroups/group/#group_id#/tasks/task/edit/#task_id#/', 'paths_task_group_action' => '/workgroups/group/#group_id#/tasks/task/#action#/#task_id#/', 'MAX_UPLOAD_FILES_IN_COMMENTS' => 10); $arForums = array(); if (CModule::IncludeModule("forum")) { $db = CForumNew::GetListEx(); while ($ar = $db->GetNext()) { $arForums[$ar["ID"]] = "[" . $ar["ID"] . "] " . $ar["NAME"]; } } $dbSites = CSite::GetList($b = "", $o = "", array("ACTIVE" => "Y")); $arSites = array(); $aSubTabs = array(); while ($site = $dbSites->Fetch()) { $arSites[] = $site; $aSubTabs[] = array("DIV" => "opt_site_" . $site["ID"], "TAB" => "(" . htmlspecialcharsbx($site["ID"]) . ") " . htmlspecialcharsbx($site["NAME"]), 'TITLE' => GetMessage('TASKS_SUBTAB_TITLE_SITE') . ' ' . htmlspecialcharsbx($site["ID"])); } $subTabControl = new CAdminViewTabControl("subTabControl", $aSubTabs); $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("TASKS_SETTINGS"), "ICON" => "tasks_settings", "TITLE" => GetMessage("TASKS_SETTINGS_TITLE"))); $tabControl = new CAdminTabControl("tabControl", $aTabs); if ($REQUEST_METHOD == "POST" && strlen($Update . $Apply . $RestoreDefaults) > 0 && check_bitrix_sessid()) { if (strlen($RestoreDefaults) > 0) { COption::RemoveOption("tasks"); COption::SetOptionString("tasks", "task_comment_allow_edit", true); COption::SetOptionString("tasks", "task_comment_allow_remove", true); } else {
elseif (empty($arResult["FORUM"])): ShowError(GetMessage("F_ERRROR_FORUM_NOT_FOUND")); return false; elseif (ForumCurrUserPermissions($arParams["FID"]) < "Q"): $APPLICATION->AuthForm(GetMessage("F_NO_PERMS")); return false; endif; /******************************************************************** Default params ********************************************************************/ $arParams["PERMISSION"] = ForumCurrUserPermissions($arParams["FID"]); $arResult["USER"] = array( "INFO" => array(), "PERMISSION" => $arParams["PERMISSION"], "RIGHTS" => array( "EDIT" => CForumNew::CanUserEditForum($arParams["FID"], $USER->GetUserGroupArray(), $USER->GetID()) ? "Y" : "N"), "SUBSCRIBE" => array()); $arResult["TOPIC"] = array(); $arResult["MESSAGE_LIST"] = array(); $arResult["MESSAGE"] = array(); // out of date $arResult["SHOW_RESULT"] = "N"; $arResult["ERROR_MESSAGE"] = ""; $arResult["OK_MESSAGE"] = ""; $arResult["list"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_LIST"], array("FID" => $arParams["FID"])); $arResult["read"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_READ"], array("FID" => $arParams["FID"], "TID" => $arParams["TID"], "MID" => "s")); $arResult["URL"] = array( "LIST" => $arResult["list"], "~LIST" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_LIST"], array("FID" => $arParams["FID"])), "READ" => $arResult["read"],
ShowError(GetMessage("F_ERROR_MESSAGES_NOT_FOUND")); return false; } foreach ($arResult["TOPIC"] as $key => $val) { $arResult["TOPIC"]["~" . $key] = $val; $arResult["TOPIC"][$key] = htmlspecialcharsEx($val); } foreach ($arResult["FORUM"] as $key => $val) { $arResult["FORUM"]["~" . $key] = $val; $arResult["FORUM"][$key] = htmlspecialcharsEx($val); } /******************************************************************** Default values ********************************************************************/ $arParams["PERMISSION"] = ForumCurrUserPermissions($arParams["FID"]); $arResult["USER"] = array("INFO" => array(), "PERMISSION" => $arParams["PERMISSION"], "RIGHTS" => array("EDIT" => CForumNew::CanUserEditForum($arParams["FID"], $USER->GetUserGroupArray(), $USER->GetID()) ? "Y" : "N", "MODERATE" => "Y"), "SUBSCRIBE" => array()); $arResult["MESSAGE"] = array(); $arResult["NEW_TOPIC"] = array("TOPIC" => array(), "FORUM" => array()); $arResult["VALUES"] = array(); $bVarsFromForm = false; $arResult["TOPIC"]["read"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_READ"], array("FID" => $arResult["FORUM"]["ID"], "TID" => $arResult["TOPIC"]["ID"], "MID" => "s")); $arResult["FORUM"]["list"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_LIST"], array("FID" => $arResult["FORUM"]["ID"])); $arResult["topic_search"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_SEARCH"], array()); $arResult["ERROR_MESSAGE"] = ""; $arResult["OK_MESSAGE"] = ""; $arResult["sessid"] = bitrix_sessid_post(); $arResult["ForumPrintIconsList"] = ForumPrintIconsList(7, "ICON_ID", intVal($_REQUEST["ICON_ID"]), GetMessage("FM_NO_ICON"), LANGUAGE_ID, $arParams["PATH_TO_ICON"]); $parser = new forumTextParser(LANGUAGE_ID, $arParams["PATH_TO_SMILE"]); $parser->MaxStringLen = $arParams["WORD_LENGTH"]; $parser->image_params["width"] = $arParams["IMAGE_SIZE"]; $parser->image_params["height"] = $arParams["IMAGE_SIZE"];
$GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/components/bitrix/forum/templates/.default/style.css'); $GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/components/bitrix/forum/templates/.default/themes/gray/style.css'); $GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/components/bitrix/forum/templates/.default/styles/additional.css'); } $GLOBALS['APPLICATION']->AddHeadString('<script src="/bitrix/js/main/utils.js"></script>', true); $GLOBALS['APPLICATION']->AddHeadString('<script src="/bitrix/components/bitrix/forum.interface/templates/.default/script.js"></script>', true); /******************************************************************** Input params ********************************************************************/ /***************** BASE ********************************************/ $arParams["component"] = $component; $arParams["SHOW_MAIL"] = $arParams["SEND_MAIL"] <= "A" || $arParams["SEND_MAIL"] <= "E" && !$GLOBALS['USER']->IsAuthorized() ? "N" : "Y"; $arParams["SHOW_RSS"] = $arParams["SHOW_RSS"] == "N" ? "N" : "Y"; $arParams["SHOW_VOTE"] = $arParams["SHOW_VOTE"] == "Y" ? "Y" : "N"; $arParams["VOTE_TEMPLATE"] = strlen(trim($arParams["VOTE_TEMPLATE"])) > 0 ? trim($arParams["VOTE_TEMPLATE"]) : "light"; $arParams["VOTE_CHANNEL_ID"] = intval($arParams["VOTE_CHANNEL_ID"]) > 0 ? $arParams["VOTE_CHANNEL_ID"] : 1; if ($arParams["SHOW_RSS"] == "Y") { $arParams["SHOW_RSS"] = !$USER->IsAuthorized() ? "Y" : (CForumNew::GetUserPermission($arParams["FID"], array(2)) > "A" ? "Y" : "N"); if ($arParams["SHOW_RSS"] == "Y") { $APPLICATION->AddHeadString('<link rel="alternate" type="application/rss+xml" href="' . $arResult["URL"]["RSS"] . '" />'); } } $arParams["SHOW_NAME_LINK"] = $arParams["SHOW_NAME_LINK"] == "N" ? "N" : "Y"; $arParams["FIRST_MESSAGE_ID"] = $arResult["MESSAGE_FIRST"]["ID"]; $arParams["ATTACH_MODE"] = array("NAME", "THUMB"); $arParams["ATTACH_SIZE"] = $arParams["IMAGE_SIZE"]; /******************************************************************** /Input params ********************************************************************/ include str_replace(array("\\", "//"), "/", dirname(__FILE__) . "/template_message.php"); CUtil::InitJSCore(array("ajax", "fx"));
?> " size="40"> </font></td> </tr> <tr> <td class="forumbody" align="right"><font class="forumheadtext">Искать в форуме:</font></td> <td class="forumbody"><font class="forumbodytext"> <select name="FORUM_ID"> <option value="0">Все форумы</option> <?php $arFilter = array("SITE_ID" => SITE_ID); if (!$USER->IsAdmin()) { $arFilter["PERMS"] = array($USER->GetGroups(), 'A'); $arFilter["ACTIVE"] = "Y"; } $db_Forum = CForumNew::GetList(array("SORT" => "ASC", "NAME" => "ASC"), $arFilter); while ($ar_Forum = $db_Forum->Fetch()) { ?> <option value="<?php echo $ar_Forum["ID"]; ?> "<?php if (IntVal($ar_Forum["ID"]) == IntVal($FORUM_ID)) { echo " selected"; } ?> ><?php echo $ar_Forum["NAME"]; ?> </option><?php }
$arParams["ATTACH_SIZE"] = $arParams["IMAGE_SIZE"]; } else { $arParams["ATTACH_MODE"] = array("NAME"); $arParams["ATTACH_SIZE"] = 0; } } $arParams["ATTACH_MODE"] = is_array($arParams["ATTACH_MODE"]) ? $arParams["ATTACH_MODE"] : array(); $arParams["ATTACH_MODE"] = !in_array("NAME", $arParams["ATTACH_MODE"]) && !in_array("THUMB", $arParams["ATTACH_MODE"]) ? array("NAME") : $arParams["ATTACH_MODE"]; $arParams["ATTACH_SIZE"] = intVal(intVal($arParams["ATTACH_SIZE"]) > 0 ? $arParams["ATTACH_SIZE"] : 90); $arParams["SHOW_MAIL"] = $arParams["SEND_MAIL"] <= "A" || $arParams["SEND_MAIL"] <= "E" && !$GLOBALS['USER']->IsAuthorized() ? "N" : "Y"; $arParams["SHOW_ICQ"] = $arParams["SHOW_ICQ"] == "Y" ? "Y" : "N"; $arParams["AJAX_TYPE"] = $arParams["AJAX_TYPE"] == "Y" ? "Y" : "N"; $arParams["SHOW_RSS"] = $arParams["SHOW_RSS"] == "N" ? "N" : "Y"; $arParams["SHOW_FIRST_POST"] = $arParams["SHOW_FIRST_POST"] == "Y" ? "Y" : "N"; if ($arParams["SHOW_RSS"] == "Y") { $arParams["SHOW_RSS"] = !$USER->IsAuthorized() ? "Y" : (CForumNew::GetUserPermission($arParams["FID"], array(2)) > "A" || $GLOBALS['USER']->IsAdmin() ? "Y" : "N"); } $arParams["SHOW_NAME_LINK"] = $arParams["SHOW_NAME_LINK"] == "N" ? "N" : "Y"; $arParams["SHOW_VOTE"] = $arParams["SHOW_VOTE"] == "Y" ? "Y" : "N"; $arParams["VOTE_TEMPLATE"] = strlen(trim($arParams["VOTE_TEMPLATE"])) > 0 ? trim($arParams["VOTE_TEMPLATE"]) : "light"; $arParams["SEO_USER"] = $arParams["SEO_USER"]; /******************************************************************** /Input params ********************************************************************/ if (!$this->__component->__parent || empty($this->__component->__parent->__name)) { $GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/components/bitrix/forum/templates/.default/style.css'); $GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/components/bitrix/forum/templates/.default/themes/blue/style.css'); $GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/components/bitrix/forum/templates/.default/styles/additional.css'); } $GLOBALS['APPLICATION']->AddHeadScript("/bitrix/js/main/utils.js"); $GLOBALS['APPLICATION']->AddHeadScript("/bitrix/components/bitrix/forum.interface/templates/.default/script.js");
$forumCode = "intranet_tasks"; $dbRes = CForumNew::GetListEx(array(), array("SITE_ID" => WIZARD_SITE_ID, "XML_ID" => $forumCode)); if ($arRes = $dbRes->Fetch()) { $tasksForumId = $arRes["ID"]; } else { $arGroupID = array("GENERAL" => 0, "COMMENTS" => 0, "HIDDEN" => 0); $dbExistsGroup = CForumGroup::GetListEx(array(), array("LID" => LANGUAGE_ID)); while ($arExistsGroup = $dbExistsGroup->Fetch()) { foreach ($arGroupID as $xmlID => $ID) { if ($arExistsGroup["NAME"] == GetMessage($xmlID . "_GROUP_NAME")) { $arGroupID[$xmlID] = $arExistsGroup["ID"]; } } } $arFields = array("XML_ID" => $forumCode, "NAME" => "Intranet Tasks", "DESCRIPTION" => false, "SORT" => 1, "ACTIVE" => "Y", "ALLOW_HTML" => "N", "ALLOW_ANCHOR" => "Y", "ALLOW_BIU" => "Y", "ALLOW_IMG" => "Y", "ALLOW_LIST" => "Y", "ALLOW_QUOTE" => "Y", "ALLOW_CODE" => "Y", "ALLOW_FONT" => "Y", "ALLOW_SMILES" => "Y", "ALLOW_UPLOAD" => "A", "ALLOW_NL2BR" => "N", "MODERATION" => "N", "ALLOW_MOVE_TOPIC" => "Y", "ORDER_BY" => "P", "DEDUPLICATION" => "N", "ORDER_DIRECTION" => "DESC", "LID" => LANGUAGE_ID, "PATH2FORUM_MESSAGE" => "", "ALLOW_UPLOAD_EXT" => "", "ASK_GUEST_EMAIL" => "N", "USE_CAPTCHA" => "N", "SITES" => array(WIZARD_SITE_ID => WIZARD_SITE_DIR . "community/forum/messages/forum#FORUM_ID#/topic#TOPIC_ID#/message#MESSAGE_ID#/#message#MESSAGE_ID#"), "EVENT1" => "forum", "EVENT2" => "message", "EVENT3" => "", "GROUP_ID" => array("2" => "E", WIZARD_PORTAL_ADMINISTRATION_GROUP => "Y", WIZARD_EMPLOYEES_GROUP => "M", WIZARD_PERSONNEL_DEPARTMENT_GROUP => "M"), "FORUM_GROUP_ID" => $arGroupID["HIDDEN"]); $tasksForumId = CForumNew::Add($arFields); } } CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/_index.php", array("TASKS_IBLOCK_ID" => $tasksIblockId)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/desktop.php", array("TASKS_IBLOCK_ID" => $tasksIblockId)); $arReplace = array("BLOG_GROUP_ID" => $blogGroupID, "FORUM_ID" => $forumID, "FILES_USER_IBLOCK_ID" => $filesUserIBlockID, "CALENDAR_USER_IBLOCK_ID" => $calendarUserIBlockID, "PHOTO_USER_IBLOCK_ID" => $photoUserIBlockID, "PHOTO_FORUM_ID" => $photoForumID, "TASKS_IBLOCK_ID" => $tasksIblockId, "TASKS_FORUM_ID" => $tasksForumId); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/company/personal.php", $arReplace); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index_b24.php", $arReplace); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index.php", $arReplace); $arReplace = array("BLOG_GROUP_ID" => $blogGroupID, "FORUM_ID" => $forumID, "FILES_GROUP_IBLOCK_ID" => $filesGroupIBlockID, "CALENDAR_IBLOCK_ID" => $calendarGroupIBlockID, "PHOTO_GROUP_IBLOCK_ID" => $photoGroupIBlockID, "PHOTO_FORUM_ID" => $photoForumID, "TASKS_IBLOCK_ID" => $tasksIblockId, "TASKS_FORUM_ID" => $tasksForumId); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/workgroups/index.php", $arReplace); $arReplace = array("FILES_GROUP_IBLOCK_ID" => $filesGroupIBlockID, "FILES_USER_IBLOCK_ID" => $filesUserIBlockID); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/docs/index.php", $arReplace); $arReplace = array("FILES_GROUP_IBLOCK_ID" => $filesGroupIBlockID, "FILES_USER_IBLOCK_ID" => $filesUserIBlockID, "TASKS_FORUM_ID" => $tasksForumId); CWizardUtil::ReplaceMacrosRecursive(WIZARD_SITE_PATH . "/m/", $arReplace); }
foreach ($arGroupsId as $ind => $val) { CSocNetFeatures::Add(array("ENTITY_TYPE" => SONET_ENTITY_GROUP, "ENTITY_ID" => $val, "FEATURE" => "forum", "FEATURE_NAME" => GetSocNetMessageLocal("SONET_I_FEATURE_FORUM", $arSite["LANGUAGE_ID"]), "ACTIVE" => "Y", "=DATE_UPDATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction())); CSocNetFeatures::Add(array("ENTITY_TYPE" => SONET_ENTITY_GROUP, "ENTITY_ID" => $val, "FEATURE" => "blog", "FEATURE_NAME" => GetSocNetMessageLocal("SONET_I_FEATURE_BLOG", $arSite["LANGUAGE_ID"]), "ACTIVE" => "Y", "=DATE_UPDATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction())); } } } } // ------------------ FORUM ------------------------------- $forumID = 0; if (CModule::IncludeModule("forum")) { $dbResult = CForumNew::GetListEx(array(), array("SITE_ID" => $arSite["SITE_ID"], "XML_ID" => "car_forum_demo")); if ($arResult = $dbResult->Fetch()) { $forumID = $arResult["ID"]; } else { $arFields = array("NAME" => GetSocNetMessageLocal("SONET_I_FORUM_NAME", $arSite["LANGUAGE_ID"]), "ACTIVE" => "Y", "XML_ID" => "car_forum_demo", "MODERATION" => "N", "SITES" => array($arSite["SITE_ID"] => StrLen($arSite["DIR"]) > 0 ? $arSite["DIR"] : "/")); $forumID = CForumNew::Add($arFields); } } // ------------------ BLOG ------------------------------- $blogGroupID = 0; if (CModule::IncludeModule("blog")) { $dbResult = CBlogGroup::GetList(array("ID" => "ASC"), array("SITE_ID" => $arSite["SITE_ID"])); if ($arResult = $dbResult->Fetch()) { $blogGroupID = $arResult["ID"]; } else { $blogGroupID = CBlogGroup::Add(array("SITE_ID" => $arSite["SITE_ID"], "NAME" => GetSocNetMessageLocal("SONET_I_BLOG_NAME", $arSite["LANGUAGE_ID"]))); } } // ------------------ PHOTO ------------------------------- $photoIBlockTypeID = "car_gallery_demo"; $photoUserIBlockID = 0;
if ($GLOBALS["APPLICATION"]->GetGroupRight("forum") < "W") { $arFilter["PERMS"] = array($GLOBALS["USER"]->GetGroups(), 'A'); $arFilter["ACTIVE"] = "Y"; } $cache_id = "forum_forums_" . serialize($arFilter); if (($tzOffset = CTimeZone::GetOffset()) != 0) { $cache_id .= "_" . $tzOffset; } $cache_path = $cache_path_main . "forums"; if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) { $res = $cache->GetVars(); $arForums = CForumCacheManager::Expand($res["arForums"]); } $arForums = is_array($arForums) ? $arForums : array(); if (empty($arForums)) { $db_res = CForumNew::GetListEx(array("FORUM_GROUP_SORT" => "ASC", "FORUM_GROUP_ID" => "ASC", "SORT" => "ASC", "NAME" => "ASC"), $arFilter); if ($db_res && ($res = $db_res->GetNext())) { do { $arForums[$res["ID"]] = $res; } while ($res = $db_res->GetNext()); } if ($arParams["CACHE_TIME"] > 0) { $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path); $cache->EndDataCache(array("arForums" => CForumCacheManager::Compress($arForums))); } } $arResult["FORUMS"] = $arForums; $arGroupsForums = array(); $arGroups = array(); foreach ($arResult["FORUMS"] as $key => $res) { $arGroupsForums[$res["FORUM_GROUP_ID"]][$key] = $res;
/Main Params ********************************************************************/ if (empty($arResult["FORUM"])) { ShowError(str_replace("#FORUM_ID#", $arParams["FORUM_ID"], GetMessage("F_ERR_FID_IS_NOT_EXIST"))); return false; } elseif (empty($arResult["ELEMENT"])) { ShowError(str_replace("#ELEMENT_ID#", $arParams["ELEMENT_ID"], GetMessage("F_ERR_EID_IS_NOT_EXIST"))); return false; } elseif ($arResult["USER"]["PERMISSION"] <= "A") { return false; } /******************************************************************** Default values ********************************************************************/ $arResult["FORUM_TOPIC_ID"] = intval($arResult["ELEMENT"]["PROPERTY_FORUM_TOPIC_ID_VALUE"]); $arResult["USER"]["RIGHTS"] = array("ADD_TOPIC" => CForumTopic::CanUserAddTopic($arParams["FORUM_ID"], $arResult["USER"]["GROUPS"], $arResult["USER"]["ID"], $arResult["FORUM"]) ? "Y" : "N", "MODERATE" => CForumNew::CanUserModerateForum($arParams["FORUM_ID"], $arResult["USER"]["GROUPS"], $arResult["USER"]["ID"]) == true ? "Y" : "N", "EDIT" => CForumNew::CanUserEditForum($arParams["FORUM_ID"], $arResult["USER"]["GROUPS"], $arResult["USER"]["ID"]) ? "Y" : "N", "ADD_MESSAGE" => CForumMessage::CanUserAddMessage($arResult["FORUM_TOPIC_ID"], $arResult["USER"]["GROUPS"], $arResult["USER"]["ID"]) ? "Y" : "N"); if ($USER->IsAuthorized()) { $arResult["USER"]["SHOWED_NAME"] = $USER->GetLogin(); if ($_SESSION["FORUM"]["SHOW_NAME"] == "Y") { $arResult["USER"]["SHOWED_NAME"] = CUser::FormatName($arParams["NAME_TEMPLATE"], array("NAME" => $USER->GetFirstName(), "LAST_NAME" => $USER->GetLastName(), "SECOND_NAME" => $USER->GetSecondName(), "LOGIN" => $USER->GetLogin()), true, false); } } $arResult["PANELS"] = array("MODERATE" => $arResult["USER"]["RIGHTS"]["MODERATE"], "DELETE" => $arResult["USER"]["RIGHTS"]["EDIT"]); $arResult["SHOW_PANEL"] = in_array("Y", $arResult["PANELS"]) ? "Y" : "N"; // PARSER $parser = new forumTextParser(LANGUAGE_ID); $parser->image_params["width"] = $arParams["IMAGE_SIZE"]; $parser->image_params["height"] = $arParams["IMAGE_SIZE"]; $arResult["PARSER"] = $parser; // FORUM $arAllow = forumTextParser::GetFeatures($arResult["FORUM"]);
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("forum")) { return; } $arForum = array(); $db_res = CForumNew::GetList(array(), array()); if ($db_res && ($res = $db_res->GetNext())) { do { $arForum[intVal($res["ID"])] = $res["NAME"]; } while ($res = $db_res->GetNext()); } $arComponentParameters = array("GROUPS" => array("URL_TEMPLATES" => array("NAME" => GetMessage("F_URL_TEMPLATES"))), "PARAMETERS" => array("FID" => array("PARENT" => "BASE", "NAME" => GetMessage("F_DEFAULT_FID"), "TYPE" => "LIST", "VALUES" => $arForum, "DEFAULT" => '0'), "TID" => array("PARENT" => "BASE", "NAME" => GetMessage("F_DEFAULT_TID"), "TYPE" => "STRING", "DEFAULT" => '={$_REQUEST["TID"]}'), "MID" => array("PARENT" => "BASE", "NAME" => GetMessage("F_DEFAULT_MID"), "TYPE" => "STRING", "DEFAULT" => '={$_REQUEST["MID"]}'), "SOCNET_GROUP_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("F_SOCNET_GROUP_ID"), "TYPE" => "STRING", "DEFAULT" => '={$_REQUEST["SOCNET_GROUP_ID"]}'), "USER_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("F_USER_ID"), "TYPE" => "STRING", "DEFAULT" => '={$_REQUEST["USER_ID"]}'), "URL_TEMPLATES_TOPIC_LIST" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("F_LIST_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => "topic_list.php"), "URL_TEMPLATES_TOPIC" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("F_READ_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => "topic.php?TID=#TID#"), "URL_TEMPLATES_TOPIC_EDIT" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("F_TOPIC_NEW_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => "topic_edit.php?TID=#TID#&MID=#MID#"), "URL_TEMPLATES_MESSAGE" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("F_MESSAGE_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => "message.php?TID=#TID#&MID=#MID#"), "URL_TEMPLATES_PROFILE_VIEW" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("F_PROFILE_VIEW_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => "profile_view.php?UID=#UID#"), "PAGEN" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("F_PAGEN"), "TYPE" => "STRING", "DEFAULT" => intVal($GLOBALS["NavNum"] + 1)), "PAGE_NAVIGATION_TEMPLATE" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("F_PAGE_NAVIGATION_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => ""), "PAGE_NAVIGATION_WINDOW" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("F_PAGE_NAVIGATION_WINDOW"), "TYPE" => "STRING", "DEFAULT" => "11"), "PAGE_NAVIGATION_SHOW_ALL" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("F_PAGE_NAVIGATION_SHOW_ALL"), "TYPE" => "CHECKBOX", "DEFAULT" => "N"), "PATH_TO_SMILE" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("F_DEFAULT_PATH_TO_SMILE"), "TYPE" => "STRING", "DEFAULT" => "/bitrix/images/forum/smile/"), "WORD_LENGTH" => CForumParameters::GetWordLength(), "IMAGE_SIZE" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("F_IMAGE_SIZE"), "TYPE" => "STRING", "DEFAULT" => 500), "MESSAGES_PER_PAGE" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("F_MESSAGES_PER_PAGE"), "TYPE" => "STRING", "DEFAULT" => COption::GetOptionString("forum", "MESSAGES_PER_PAGE", "10")), "DATE_FORMAT" => CForumParameters::GetDateFormat(GetMessage("F_DATE_FORMAT"), "ADDITIONAL_SETTINGS"), "DATE_TIME_FORMAT" => CForumParameters::GetDateTimeFormat(GetMessage("F_DATE_TIME_FORMAT"), "ADDITIONAL_SETTINGS"), "AJAX_TYPE" => CForumParameters::GetAjaxType(), "SET_TITLE" => array(), "CACHE_TIME" => array())); $arComponentParameters["PARAMETERS"]["SHOW_RATING"] = array("NAME" => GetMessage("SHOW_RATING"), "TYPE" => "LIST", "VALUES" => array("" => GetMessage("SHOW_RATING_CONFIG"), "Y" => GetMessage("MAIN_YES"), "N" => GetMessage("MAIN_NO")), "MULTIPLE" => "N", "DEFAULT" => "", "PARENT" => "ADDITIONAL_SETTINGS", "REFRESH" => "Y"); if ($arCurrentValues["SHOW_RATING"] != "N") { $arRatingsList = array(); $db_res = CRatings::GetList($aSort = array("ID" => "ASC"), array("ACTIVE" => "Y", "ENTITY_ID" => "USER")); while ($res = $db_res->Fetch()) { $arRatingsList[$res["ID"]] = "[ " . $res["ID"] . " ] " . $res["NAME"]; } $arComponentParameters["PARAMETERS"]["RATING_ID"] = array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("F_RATING_ID"), "TYPE" => "LIST", "VALUES" => $arRatingsList, "DEFAULT" => "", "REFRESH" => "N"); $arComponentParameters["PARAMETERS"]["RATING_TYPE"] = array("NAME" => GetMessage("RATING_TYPE"), "TYPE" => "LIST", "VALUES" => array("" => GetMessage("RATING_TYPE_CONFIG"), "like" => GetMessage("RATING_TYPE_LIKE_TEXT"), "like_graphic" => GetMessage("RATING_TYPE_LIKE_GRAPHIC"), "standart_text" => GetMessage("RATING_TYPE_STANDART_TEXT"), "standart" => GetMessage("RATING_TYPE_STANDART_GRAPHIC")), "MULTIPLE" => "N", "DEFAULT" => "", "PARENT" => "ADDITIONAL_SETTINGS"); }
elseif (empty($arResult["ELEMENT"])): ShowError(str_replace("#ELEMENT_ID#", $arParams["ELEMENT_ID"], GetMessage("F_ERR_EID_IS_NOT_EXIST"))); return false; elseif ($arResult["USER"]["PERMISSION"] <= "A"): return false; endif; /******************************************************************** Default values ********************************************************************/ $arResult["FORUM_TOPIC_ID"] = intval($arResult["ELEMENT"]["PROPERTY_FORUM_TOPIC_ID_VALUE"]); $arResult["USER"]["RIGHTS"] = array( "ADD_TOPIC" => CForumTopic::CanUserAddTopic($arParams["FORUM_ID"], $arResult["USER"]["GROUPS"], $arResult["USER"]["ID"], $arResult["FORUM"] ) ? "Y" : "N", "MODERATE" => CForumNew::CanUserModerateForum($arParams["FORUM_ID"], $arResult["USER"]["GROUPS"], $arResult["USER"]["ID"]) == true ? "Y" : "N", "EDIT" => CForumNew::CanUserEditForum($arParams["FORUM_ID"], $arResult["USER"]["GROUPS"], $arResult["USER"]["ID"]) ? "Y" : "N", "ADD_MESSAGE" => CForumMessage::CanUserAddMessage($arResult["FORUM_TOPIC_ID"], $arResult["USER"]["GROUPS"], $arResult["USER"]["ID"]) ? "Y" : "N"); if ($USER->IsAuthorized()) { $arResult["USER"]["SHOWED_NAME"] = $USER->GetLogin(); if ($_SESSION["FORUM"]["SHOW_NAME"] == "Y") { $arResult["USER"]["SHOWED_NAME"] = CUser::FormatName( $arParams["NAME_TEMPLATE"], array( "NAME" => $USER->GetFirstName(), "LAST_NAME" => $USER->GetLastName(), "SECOND_NAME" => $USER->GetSecondName(), "LOGIN" => $USER->GetLogin()), true,