Ejemplo n.º 1
0
 function BeforeIndexForum($arFields, $entity_type, $entity_id, $feature, $operation, $path_template)
 {
     global $USER;
     static $arSiteData;
     $SECTION_ID = "";
     $ELEMENT_ID = intval($_REQUEST["photo_element_id"]);
     if (empty($ELEMENT_ID)) {
         $ELEMENT_ID = intval($_REQUEST["ELEMENT_ID"]);
     }
     if ($ELEMENT_ID > 0 && CModule::IncludeModule('iblock')) {
         $rsSections = CIBlockElement::GetElementGroups($ELEMENT_ID, true);
         $arSection = $rsSections->Fetch();
         if ($arSection) {
             $SECTION_ID = $arSection["ID"];
         }
     }
     if (count($arFields["LID"]) > 1 && ($entity_type == SONET_ENTITY_GROUP && CModule::IncludeModule("extranet") || $entity_type == SONET_ENTITY_USER)) {
         if (!$arSiteData) {
             $arSiteData = CSocNetLogTools::GetSiteData();
         }
         foreach ($arSiteData as $siteId => $arUrl) {
             if ($entity_type == SONET_ENTITY_GROUP && strpos($path_template, $arUrl["GROUPS_PATH"]) === 0) {
                 $path_template = str_replace($arUrl["GROUPS_PATH"], "#GROUP_PATH#", $path_template);
                 break;
             } elseif ($entity_type == SONET_ENTITY_USER && strpos($path_template, $arUrl["USER_PATH"]) === 0) {
                 $path_template = str_replace($arUrl["USER_PATH"], "#USER_PATH#", $path_template);
                 break;
             }
         }
     }
     foreach ($arFields["LID"] as $site_id => $url) {
         $arFields["URL"] = $arFields["LID"][$site_id] = str_replace(array("#user_id#", "#group_id#", "#topic_id#", "#message_id#", "#action#", "#user_alias#", "#section_id#", "#element_id#", "#task_id#", "#GROUP_PATH#", "#USER_PATH#"), array($this->_user_id > 0 ? $this->_user_id : $USER->GetID(), $this->_group_id, $arFields["PARAM2"], $arFields["ITEM_ID"], "view", ($entity_type == "G" ? "group_" : "user_") . $entity_id, $SECTION_ID, $ELEMENT_ID, $ELEMENT_ID, $arSiteData ? $arSiteData[$site_id]["GROUPS_PATH"] : "", $arSiteData ? $arSiteData[$site_id]["USER_PATH"] : ""), $path_template);
     }
     if ($feature == 'tasks' && COption::GetOptionString("intranet", "use_tasks_2_0", "N") == 'Y' && $arFields["PARAM1"] == COption::GetOptionString("tasks", "task_forum_id", 0) && CModule::IncludeModule('tasks')) {
         if (!preg_match('/^EVENT_[0-9]+/', $arFields["TITLE"], $match)) {
             $rsTask = CTasks::GetList(array(), array("FORUM_TOPIC_ID" => $arFields['PARAM2']));
             if ($arTask = $rsTask->Fetch()) {
                 $arFields['PERMISSIONS'] = CTasks::__GetSearchPermissions($arTask);
             }
         }
     } else {
         $arFields["PERMISSIONS"] = $this->GetSearchGroups($entity_type, $entity_id, $feature, $operation);
         $paramsTmp = $this->GetSearchParams($entity_type, $entity_id, $feature, $operation);
         $arFields["PARAMS"] = !empty($arFields["PARAMS"]) ? array_merge($paramsTmp, $arFields["PARAMS"]) : $paramsTmp;
     }
     return $arFields;
 }
Ejemplo n.º 2
0
 private static function GetMessageRatingEntityURL($url, $user_id = false, $arSites = false, $intranet_site_id = false, $extranet_site_id = false)
 {
     static $arSiteData = false;
     if (!$arSiteData && IsModuleInstalled('intranet') && CModule::IncludeModule('socialnetwork')) {
         $arSiteData = CSocNetLogTools::GetSiteData();
     }
     if ($arSiteData && count($arSiteData) > 1) {
         foreach ($arSiteData as $siteId => $arUrl) {
             $url = str_replace($arUrl["USER_PATH"], "#USER_PATH#", $url);
         }
         $arTmp = CSocNetLogTools::ProcessPath(array("URL" => $url), $user_id);
         $url = $arTmp["URLS"]["URL"];
         $url = (strpos($url, "http://") === 0 || strpos($url, "https://") === 0 ? "" : (isset($arTmp["SERVER_NAME"]) && !empty($arTmp["SERVER_NAME"]) ? $arTmp["SERVER_NAME"] : "")) . $arTmp["URLS"]["URL"];
     } else {
         if (is_array($arSites) && intval($user_id) > 0 && strlen($extranet_site_id) > 0 && strlen($intranet_site_id) > 0) {
             $bExtranetUser = false;
             if ($arSites[$extranet_site_id]) {
                 $bExtranetUser = true;
                 $rsUser = CUser::GetByID(intval($user_id));
                 if ($arUser = $rsUser->Fetch()) {
                     if (intval($arUser["UF_DEPARTMENT"][0]) > 0) {
                         $bExtranetUser = false;
                     }
                 }
             }
             if ($bExtranetUser) {
                 $link = $url;
                 if (substr($link, 0, strlen($arSites[$extranet_site_id]['DIR'])) == $arSites[$extranet_site_id]['DIR']) {
                     $link = substr($link, strlen($arSites[$extranet_site_id]['DIR']));
                 }
                 $SiteServerName = $arSites[$extranet_site_id]['SERVER_NAME'] . $arSites[$extranet_site_id]['DIR'] . ltrim($link, "/");
             } else {
                 $link = $url;
                 if (substr($link, 0, strlen($arSites[$intranet_site_id]['DIR'])) == $arSites[$intranet_site_id]['DIR']) {
                     $link = substr($link, strlen($arSites[$intranet_site_id]['DIR']));
                 }
                 $SiteServerName = $arSites[$intranet_site_id]['SERVER_NAME'] . $arSites[$intranet_site_id]['DIR'] . ltrim($link, "/");
             }
             $url = (CMain::IsHTTPS() ? "https" : "http") . "://" . $SiteServerName;
         } else {
             $SiteServerName = defined('SITE_SERVER_NAME') && strlen(SITE_SERVER_NAME) > 0 ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", $_SERVER['SERVER_NAME']);
             if (strlen($SiteServerName) > 0) {
                 $url = (CMain::IsHTTPS() ? "https" : "http") . "://" . $SiteServerName . $url;
             }
         }
     }
     return $url;
 }