%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/components/bitrix/socialnetwork.blog.menu/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/components/bitrix/socialnetwork.blog.menu/component.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /** @var CBitrixComponent $this */ /** @var array $arParams */ /** @var array $arResult */ /** @var string $componentPath */ /** @var string $componentName */ /** @var string $componentTemplate */ /** @global CDatabase $DB */ /** @global CUser $USER */ /** @global CMain $APPLICATION */ /** @global CCacheManager $CACHE_MANAGER */ use \Bitrix\Blog\Item\Permissions; if (!CModule::IncludeModule("blog")) { ShowError(GetMessage("BLOG_MODULE_NOT_INSTALL")); return; } if (!CModule::IncludeModule("socialnetwork")) { ShowError(GetMessage("SONET_MODULE_NOT_INSTALL")); return; } if(strLen($arParams["BLOG_VAR"])<=0) $arParams["BLOG_VAR"] = "blog"; if(strLen($arParams["PAGE_VAR"])<=0) $arParams["PAGE_VAR"] = "page"; if(strLen($arParams["POST_VAR"])<=0) $arParams["POST_VAR"] = "id"; if(strLen($arParams["USER_VAR"])<=0) $arParams["USER_VAR"] = "id"; $arParams["PATH_TO_DRAFT"] = trim($arParams["PATH_TO_DRAFT"]); if(strlen($arParams["PATH_TO_DRAFT"])<=0) $arParams["PATH_TO_DRAFT"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=draft&".$arParams["BLOG_VAR"]."=#blog#"); $arParams["PATH_TO_POST_EDIT"] = trim($arParams["PATH_TO_POST_EDIT"]); if(strlen($arParams["PATH_TO_POST_EDIT"]) <= 0) { $arParams["PATH_TO_POST_EDIT"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=post_edit&".$arParams["BLOG_VAR"]."=#blog#&".$arParams["POST_VAR"]."=#post_id#"); } $arParams["PATH_TO_MODERATION"] = trim($arParams["PATH_TO_MODERATION"]); if(strlen($arParams["PATH_TO_MODERATION"]) <= 0) { $arParams["PATH_TO_MODERATION"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=moderation&".$arParams["BLOG_VAR"]."=#blog#"); } $arParams["PATH_TO_TAGS"] = trim($arParams["PATH_TO_TAGS"]); if(strlen($arParams["PATH_TO_TAGS"]) <= 0) { $arParams["PATH_TO_TAGS"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=tags&".$arParams["BLOG_VAR"]."=#blog#"); } $arParams["USER_ID"] = IntVal($arParams["USER_ID"]); $user_id = IntVal($USER->GetID()); $arParams["SOCNET_GROUP_ID"] = IntVal($arParams["SOCNET_GROUP_ID"]); $bGroupMode = false; if(IntVal($arParams["SOCNET_GROUP_ID"]) > 0) { $bGroupMode = true; } if(!is_array($arParams["GROUP_ID"])) { $arParams["GROUP_ID"] = array($arParams["GROUP_ID"]); } foreach($arParams["GROUP_ID"] as $k=>$v) { if(IntVal($v) <= 0) { unset($arParams["GROUP_ID"][$k]); } } $bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin(); $arResult["PostPerm"] = BLOG_PERMS_DENY; if($arParams["SET_TITLE"] != "N") $APPLICATION->SetTitle(GetMessage("BM_BLOG_POST")); if(IntVal($arParams["USER_ID"]) > 0) { $dbUser = CUser::GetByID($arParams["USER_ID"]); $arUser = $dbUser->Fetch(); if ( !empty($arUser) && $arParams["SET_TITLE"] != "N" && CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arParams["USER_ID"], "blog") ) { if (strlen($arParams["NAME_TEMPLATE"]) <= 0) { $arParams["NAME_TEMPLATE"] = CSite::GetNameFormat(); } $arParams["TITLE_NAME_TEMPLATE"] = str_replace( array("#NOBR#", "#/NOBR#"), array("", ""), $arParams["NAME_TEMPLATE"] ); $bUseLogin = $arParams['SHOW_LOGIN'] != "N" ? true : false; $strTitleFormatted = CUser::FormatName($arParams['TITLE_NAME_TEMPLATE'], $arUser, $bUseLogin); if($arParams["USER_ID"] == $user_id) { $APPLICATION->SetTitle(GetMessage("BM_BLOG_POST")); } else { if ($arParams["HIDE_OWNER_IN_TITLE"] == "Y") { $APPLICATION->SetPageProperty("title", $strTitleFormatted.": ".GetMessage("BM_BLOG_POST")); $APPLICATION->SetTitle(GetMessage("BM_BLOG_POST")); } else { $APPLICATION->SetTitle($strTitleFormatted.": ".GetMessage("BM_BLOG_POST")); } } } } if(!( $bGroupMode || ( $user_id > 0 && ( IntVal($arParams["USER_ID"]) == $user_id || CSocNetUser::isCurrentUserModuleAdmin() || $APPLICATION->getGroupRight("blog") >= "W" ) ) )) { return; } if($bGroupMode) { $arGroup = CSocNetGroup::GetByID($arParams["SOCNET_GROUP_ID"]); if( !empty($arGroup) && $bGroupMode && CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog") ) { if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "full_post", $bCurrentUserIsAdmin) || $APPLICATION->GetGroupRight("blog") >= "W") { $arResult["PostPerm"] = BLOG_PERMS_FULL; } elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "moderate_post", $bCurrentUserIsAdmin)) { $arResult["PostPerm"] = BLOG_PERMS_MODERATE; } if ($arParams["SET_TITLE"] != "N") { $APPLICATION->SetTitle(GetMessage("BM_BLOG_POST")); } $arResult["PATH_TO_4ME_ALL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("user_id" => $arParams["USER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"])); } } elseif( IntVal($arParams["USER_ID"]) > 0 && !empty($arUser) && CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arParams["USER_ID"], "blog") ) { $arResult["showAll"] = "Y"; $arResult["PostPerm"] = BLOG_PERMS_FULL; $arResult["PATH_TO_4ME_ALL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("user_id" => $arParams["USER_ID"])); if ($arParams["USER_ID"] == $user_id) { $arResult["PATH_TO_4ME"] = $arResult["PATH_TO_MINE"] = $arResult["PATH_TO_4ME_ALL"]; $arResult["PATH_TO_4ME"] .= (strpos($arResult["PATH_TO_4ME"], "?") === false ? "?" : "&"); $arResult["PATH_TO_MINE"] = $arResult["PATH_TO_4ME"]."mine=Y"; $arResult["PATH_TO_4ME"] .= "forme=Y"; } $arResult["forme"] = $_REQUEST["forme"]; if(strlen($_REQUEST["forme"]) <= 0) { $arResult["forme"] = "ALL"; } if($_REQUEST["mine"] == "Y") { $arResult["forme"] = ""; } $arResult["show4MeAll"] = ($arParams["USER_ID"] == $user_id ? "Y" : "N"); $arResult["show4Me"] = ($arParams["USER_ID"] == $user_id ? "Y" : "N"); } if($arResult["PostPerm"] >= BLOG_PERMS_WRITE) { if(!$bGroupMode) { $arResult["urlToDraft"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_DRAFT"], array("user_id" => $arParams["USER_ID"])); $dbPost = CBlogPost::GetList( array(), Array( "AUTHOR_ID" => $user_id, "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_DRAFT, "BLOG_USE_SOCNET" => "Y", "GROUP_ID" => $arParams["GROUP_ID"], "GROUP_SITE_ID" => SITE_ID, ), Array("COUNT" => "ID"), false, Array("ID") ); if($arPost = $dbPost->Fetch()) { $arResult["CntToDraft"] = $arPost["ID"]; } $arResult["urlToModeration"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_MODERATION"], array("user_id" => $arParams["USER_ID"])); $dbPost = CBlogPost::GetList( array(), array( "AUTHOR_ID" => $arParams["USER_ID"], "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_READY, "BLOG_USE_SOCNET" => "Y", "GROUP_ID" => $arParams["GROUP_ID"], "GROUP_SITE_ID" => SITE_ID, ), Array("COUNT" => "ID"), false, Array("ID") ); if($arPost = $dbPost->Fetch()) { $arResult["CntToModerate"] = $arPost["ID"]; } $arResult["urlToTags"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TAGS"], array("user_id" => $arParams["USER_ID"])); $arBlog = \Bitrix\Blog\Item\Blog::getByUser(array( "GROUP_ID" => $arParams["GROUP_ID"], "SITE_ID" => SITE_ID, "USER_ID" => $arParams["USER_ID"], "USE_SOCNET" => "Y" )); if ($arBlog) { $res = CBlogCategory::getList( array(), array("BLOG_ID" => $arBlog["ID"]), array("COUNT" => "ID"), false, array("ID") ); if ($tags = $res->Fetch()) { $arResult["CntTags"] = $tags["ID"]; } } } else { if($arResult["PostPerm"] >= BLOG_PERMS_MODERATE) { $arResult["urlToModeration"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_MODERATION"], array("group_id" => $arParams["SOCNET_GROUP_ID"])); $dbPost = CBlogPost::GetList( array(), array( "SOCNET_GROUP_ID" => $arParams["SOCNET_GROUP_ID"], "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_READY, "BLOG_USE_SOCNET" => "Y", "GROUP_ID" => $arParams["GROUP_ID"], "GROUP_SITE_ID" => SITE_ID, ), Array("COUNT" => "ID", "SOCNET_GROUP_ID"), false, Array("ID", "SOCNET_GROUP_ID") ); if($arPost = $dbPost->Fetch()) { $arResult["CntToModerate"] = $arPost["CNT"]; $arResult["showAll"] = "Y"; } } } } $arResult["page"] = "all"; if($arParams["CURRENT_PAGE"] == "moderation") $arResult["page"] = "moderation"; elseif($arParams["CURRENT_PAGE"] == "draft") $arResult["page"] = "draft"; elseif($arParams["CURRENT_PAGE"] == "tags") $arResult["page"] = "tags"; elseif($_REQUEST["mine"] == "Y") $arResult["page"] = "mine"; elseif($arResult["forme"] == "Y") $arResult["page"] = "forme"; $this->IncludeComponentTemplate(); ?>