%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/forum/templates/.default/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/forum/templates/.default/result_modifier.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
CJSCore::Init(array("core"));
// Template params
/********************************************************************
Input params
********************************************************************/
/***************** URL *********************************************/
$res = $arResult;
$URL_NAME_DEFAULT = array(
"active" => "PAGE_NAME=active",
"forums" => "PAGE_NAME=forums&GID=#GID#",
"help" => "PAGE_NAME=help",
"index" => "",
"list" => "PAGE_NAME=list&FID=#FID#",
"profile_view" => "PAGE_NAME=profile_view&UID=#UID#",
"rules" =>"PAGE_NAME=rules",
"search" => "PAGE_NAME=search",
"subscr_list" => "PAGE_NAME=subscr_list",
"pm_folder" => "PAGE_NAME=pm_folder",
"user_list" => "PAGE_NAME=user_list");
foreach ($URL_NAME_DEFAULT as $URL => $URL_VALUE)
{
if (strLen(trim($res["URL_TEMPLATES_".strToUpper($URL)])) <= 0)
$res["URL_TEMPLATES_".strToUpper($URL)] = $GLOBALS["APPLICATION"]->GetCurPage()."?".$URL_VALUE;
$res["~URL_TEMPLATES_".strToUpper($URL)] = $res["URL_TEMPLATES_".strToUpper($URL)];
$res["URL_TEMPLATES_".strToUpper($URL)] = htmlspecialcharsbx($res["~URL_TEMPLATES_".strToUpper($URL)]);
}
$res["URL"] = array(
"ACTIVE" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_ACTIVE"], array()),
"FORUMS" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_FORUMS"], array("GID" => "#GID#")),
"FORUM" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_LIST"], array("FID" => "#FID#")),
"INDEX" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_INDEX"], array()),
"~INDEX" => CComponentEngine::MakePathFromTemplate($res["~URL_TEMPLATES_INDEX"], array()),
"MESSAGES" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_PM_FOLDER"], array()),
"PROFILE" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $GLOBALS["USER"]->GetID())),
"RULES" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_RULES"], array()),
"SEARCH" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_SEARCH"], array()),
"SUBSCRIBES" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_SUBSCR_LIST"], array()),
"TOPICS" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_LIST"], array("FID" => 0)),
"USERS" => CComponentEngine::MakePathFromTemplate($res["URL_TEMPLATES_USER_LIST"], array()));
$arResult["URL_TEMPLATES"] = $res["URL"];
/***************** ADDITIONAL **************************************/
/********************************************************************
/Input params
********************************************************************/
// Rapid Access $arParams["SHOW_FORUMS"] == "Y"
if ($_GET["rapid_access"] == "Y"):
$url = "";
if (strpos($_GET["FID"], "GID_") !== false):
$iGid = intVal(substr($_GET["FID"], 4));
if ($iGid > 0):
$url = str_replace("#GID#", $iGid, $arResult["URL_TEMPLATES"]["FORUMS"]);
endif;
elseif (intVal($_GET["FID"]) > 0):
$url = str_replace("#FID#", intVal($_GET["FID"]), $arResult["URL_TEMPLATES"]["FORUM"]);
endif;
$url = str_replace(array("rapid_access=Y", "&&"), "", (empty($url) ? $arResult["URL_TEMPLATES"]["INDEX"] : $url));
LocalRedirect($url);
endif;
// Show Page
if ($this->__page !== "menu"):
$sTempatePage = $this->__page;
$sTempateFile = $this->__file;
$this->__component->IncludeComponentTemplate("menu");
$this->__page = $sTempatePage;
$this->__file = $sTempateFile;
if ($arParams["SEO_USER"] == "TEXT" && strToLower($this->__page) == "profile_view" &&
$GLOBALS["USER"]->GetId() != $arResult["UID"] && $GLOBALS["APPLICATION"]->GetGroupRight("forum") < "W")
{
$APPLICATION->AuthForm("");
}
if ($arParams["SHOW_FORUM_USERS"] != "N" && in_array(strToLower($this->__page), array("profile", "profile_view", "subscr_list", "user_post"))):
$GLOBALS["APPLICATION"]->AddChainItem(GetMessage("F_USERS"), CComponentEngine::MakePathFromTemplate($res["~URL_TEMPLATES_USER_LIST"], array()));
endif;
else:
return true;
endif;
/********************************************************************
Input params
********************************************************************/
$arThemes = array();
$sTemplateDirFull = preg_replace("'[\\\\/]+'", "/", dirname(realpath(__FILE__))."/");
$dir = $sTemplateDirFull."themes/";
if (is_dir($dir) && $directory = opendir($dir)):
while (($file = readdir($directory)) !== false)
{
if ($file != "." && $file != ".." && is_dir($dir.$file))
$arThemes[] = $file;
}
closedir($directory);
endif;
$sTemplateDir = $this->__component->__template->__folder;
$sTemplateDir = preg_replace("'[\\\\/]+'", "/", $sTemplateDir."/");
$arParams["SEO_USER"] = (in_array($arParams["SEO_USER"], array("Y", "N", "TEXT")) ? $arParams["SEO_USER"] : "Y");
$arParams["SHOW_FORUM_USERS"] = ($arParams["SHOW_FORUM_USERS"] == "N" ? "N" : "Y");
$arParams["SHOW_AUTH_FORM"] = ($arParams["SHOW_AUTH_FORM"] == "N" ? "N" : "Y");
$arParams["SHOW_NAVIGATION"] = ($arParams["SHOW_NAVIGATION"] == "N" ? "N" : "Y");
$arParams["SHOW_SUBSCRIBE_LINK"] = ($arParams["SHOW_SUBSCRIBE_LINK"] == "Y" ? "Y" : "N");
$arParams["SHOW_LEGEND"] = ($arParams["SHOW_LEGEND"] == "N" ? "N" : "Y");
$arParams["SHOW_STATISTIC"] = ($arParams["SHOW_STATISTIC"] == "N" ? "N" : "Y");
if (!is_set($arParams, "SHOW_STATISTIC_BLOCK"))
$arParams["SHOW_STATISTIC_BLOCK"] = ($arParams["SHOW_STATISTIC"] == "Y" ? array("STATISTIC", "BIRTHDAY", "USERS_ONLINE") : array());
$arParams["SHOW_STATISTIC_BLOCK"] = (is_array($arParams["SHOW_STATISTIC_BLOCK"]) ? $arParams["SHOW_STATISTIC_BLOCK"] : array($arParams["SHOW_STATISTIC_BLOCK"]));
$arParams["SHOW_NAME_LINK"] = "Y";
$arParams["SHOW_FORUMS"] = ($arParams["SHOW_FORUMS"] == "N" ? "N" : "Y");
$arParams["SHOW_FIRST_POST"] = ($arParams["SHOW_FIRST_POST"] == "Y" ? "Y" : "N");
$arParams["SHOW_AUTHOR_COLUMN"] = ($arParams["SHOW_AUTHOR_COLUMN"] == "Y" ? "Y" : "N");
$arParams["TMPLT_SHOW_ADDITIONAL_MARKER"] = trim($arParams["TMPLT_SHOW_ADDITIONAL_MARKER"]);
if (!is_set($arParams, "SMILES_COUNT"))
$arParams["SMILES_COUNT"] = 100;
$arParams["SMILES_COUNT"] = intVal($arParams["SMILES_COUNT"]);
$arParams["WORD_LENGTH"] = intVal($arParams["WORD_LENGTH"]);
$arParams["WORD_WRAP_CUT"] = intVal($arParams["WORD_WRAP_CUT"]);
$arParams["PATH_TO_SMILE"] = "";
$arParams["PATH_TO_ICON"] = "";
$arParams["PAGE_NAVIGATION_TEMPLATE"] = trim($arParams["PAGE_NAVIGATION_TEMPLATE"]);
$arParams["PAGE_NAVIGATION_TEMPLATE"] = (empty($arParams["PAGE_NAVIGATION_TEMPLATE"]) ? "forum" : $arParams["PAGE_NAVIGATION_TEMPLATE"]);
$arParams["PAGE_NAVIGATION_WINDOW"] = intVal(intVal($arParams["PAGE_NAVIGATION_WINDOW"]) > 0 ? $arParams["PAGE_NAVIGATION_WINDOW"] : 5);
$arParams["THEME"] = trim($arParams["THEME"]);
if (empty($arParams["THEME"])):
$arParams["THEME"] = (in_array("blue", $arThemes) ? "blue" : $arThemes[0]);
elseif (!in_array($arParams["THEME"], $arThemes)):
$val = str_replace(array("\\", "//"), "/", "/".$arParams["THEME"]."/");
if (!(is_dir($_SERVER['DOCUMENT_ROOT'].$val) && is_file($_SERVER['DOCUMENT_ROOT'].$val."style.css"))):
$arParams["THEME"] = (in_array("blue", $arThemes) ? "blue" : $arThemes[0]);
else:
$arParams["THEME"] = $val;
endif;
endif;
/********************************************************************
/Input params
********************************************************************/
if (in_array($arParams["THEME"], $arThemes)):
$date = @filemtime($dir.$arParams["THEME"]."/style.css");
$GLOBALS['APPLICATION']->SetAdditionalCSS($sTemplateDir.'themes/'.$arParams["THEME"].'/style.css?'.$date);
else:
$date = @filemtime($_SERVER['DOCUMENT_ROOT'].$arParams["THEME"]."/style.css");
$GLOBALS['APPLICATION']->SetAdditionalCSS($arParams["THEME"].'/style.css?'.$date);
endif;
$date = @filemtime($sTemplateDirFull."styles/additional.css");
$GLOBALS['APPLICATION']->SetAdditionalCSS($sTemplateDir.'styles/additional.css?'.$date);
$GLOBALS['APPLICATION']->AddHeadScript("/bitrix/js/main/utils.js");
$GLOBALS['APPLICATION']->AddHeadScript("/bitrix/components/bitrix/forum.interface/templates/.default/script.js");
$file = trim(preg_replace("'[\\\\/]+'", "/", (dirname(__FILE__)."/lang/".LANGUAGE_ID."/result_modifier.php")));
if (!file_exists($file))
$file = trim(preg_replace("'[\\\\/]+'", "/", (dirname(__FILE__)."/lang/en/result_modifier.php")));
if(file_exists($file)):
global $MESS;
include_once($file);
endif;
$arResult["GROUPS"] = array();
if ($arParams["SHOW_FORUMS"] == "Y" && in_array($this->__page, array("forums", "list", "read"))):
CModule::IncludeModule("forum");
$arResult["GROUPS"] = CForumGroup::GetByLang(LANGUAGE_ID);
if (!function_exists("__array_merge"))
{
function __array_merge($arr1, $arr2, $deep = false)
{
$arResult = $arr1;
static $ii = 0;
$ii++;
$deep = ($deep == false ? 0 : $deep);
foreach ($arr2 as $key2 => $val2)
{
if (!array_key_exists($key2, $arResult))
{
$arResult[$key2] = $val2;
continue;
}
elseif ($val2 == $arResult[$key2])
continue;
elseif (!is_array($arResult[$key2]))
$arResult[$key2] = array($arResult[$key2]);
$deep++;
$arResult[$key2] = __array_merge($arResult[$key2], $val2, $deep);
}
return $arResult;
}
}
if (!function_exists("__array_stretch"))
{
function __array_stretch($arGroup, $depth = 0)
{
$arResult = array();
if (intVal($arGroup["ID"]) > 0)
{
$arResult["GROUP_".$arGroup["ID"]] = $arGroup;
unset($arResult["GROUP_".$arGroup["ID"]]["GROUPS"]);
unset($arResult["GROUP_".$arGroup["ID"]]["FORUM"]);
$arResult["GROUP_".$arGroup["ID"]]["DEPTH"] = $depth;
$arResult["GROUP_".$arGroup["ID"]]["TYPE"] = "GROUP";
}
if (array_key_exists("FORUMS", $arGroup))
{
foreach ($arGroup["FORUMS"] as $res)
{
$arResult["FORUM_".$res["ID"]] = $res;
$arResult["FORUM_".$res["ID"]]["DEPTH"] = $depth;
$arResult["FORUM_".$res["ID"]]["TYPE"] = "FORUM";
}
}
if (array_key_exists("GROUPS", $arGroup))
{
$depth++;
foreach ($arGroup["GROUPS"] as $key => $val)
{
$res = __array_stretch($arGroup["GROUPS"][$key], $depth);
$arResult = array_merge($arResult, $res);
}
}
return $arResult;
}
}
$res = array();
$cache = new CPHPCache();
$cache_path_main = str_replace(array(":", "//"), "/", "/".SITE_ID."/".$this->__component->__name."/");
foreach ($arParams["FID"] as $key => $val)
{
if (intVal($val) > 0)
$res[] = $val;
}
$arParams["FID_RANGE"] = $res;
$arFilter = array();
$arForums = array();
if ($arParams["SHOW_FORUM_ANOTHER_SITE"] == "N" || $GLOBALS["APPLICATION"]->GetGroupRight("forum") < "W")
$arFilter["LID"] = SITE_ID;
if (!empty($arParams["FID_RANGE"]))
$arFilter["@ID"] = $arParams["FID_RANGE"];
if ($GLOBALS["APPLICATION"]->GetGroupRight("forum") < "W"):
$arFilter["PERMS"] = array($GLOBALS["USER"]->GetGroups(), 'A');
$arFilter["ACTIVE"] = "Y";
endif;
$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)));
endif;
}
$arResult["FORUMS"] = $arForums;
$arGroupsForums = array();
$arGroups = array();
foreach ($arResult["FORUMS"] as $key => $res)
{
$arGroupsForums[$res["FORUM_GROUP_ID"]][$key] = $res;
}
foreach ($arGroupsForums as $PARENT_ID => $res)
{
$bResult = true;
$res = array("FORUMS" => $res);
while ($PARENT_ID > 0)
{
if (!array_key_exists($PARENT_ID, $arResult["GROUPS"]))
{
$bResult = false;
$PARENT_ID = false;
break;
}
$res = array($PARENT_ID => __array_merge($arResult["GROUPS"][$PARENT_ID], $res));
$PARENT_ID = $arResult["GROUPS"][$PARENT_ID]["PARENT_ID"];
$res = array("GROUPS" => $res);
if ($PARENT_ID > 0)
$res = __array_merge($arResult["GROUPS"][$PARENT_ID], $res);
}
if ($bResult == true)
$arGroups = __array_merge($arGroups, $res);
}
$arResult["GROUPS_FORUMS"] = __array_stretch($arGroups);
endif;
?><script type="text/javascript">
//<![CDATA[
BX.message({
F_LOAD : '<?=GetMessageJS("F_LOAD")?>',
FORUMJS_TITLE : '<?=CUtil::JSEscape(COption::GetOptionString("main", "site_name", $_SERVER["SERVER_NAME"]))?> - '
});
//]]>
</script>