Your IP : 18.190.153.90


Current Path : /home/bitrix/ext_www/crm.klimatlend.ua/workgroups/extranet/
Upload File :
Current File : /home/bitrix/ext_www/crm.klimatlend.ua/workgroups/extranet/.left.menu_ext.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/intranet/public/workgroups/extranet/.left.menu_ext.php");

global $APPLICATION;

// You can change this url template
$strGroupSubjectLinkTemplate = COption::GetOptionString("socialnetwork", "subject_path_template", "/workgroups/group/search/#subject_id#/");
$strGroupLinkTemplate = COption::GetOptionString("socialnetwork", "group_path_template", "/workgroups/group/#group_id#/");

if (SITE_TEMPLATE_ID == "bitrix24")
{
	if (CModule::IncludeModule("extranet") && CBXFeatures::IsFeatureEnabled('Workgroups') && CBXFeatures::IsFeatureEnabled('Extranet')):
		GLOBAL $USER;
		$USER_ID = $USER->GetID();
		
		$arExSGGroup = array();

		if (CModule::IncludeModule("socialnetwork"))
		{

			if (defined("BX_COMP_MANAGED_CACHE"))
			{
				global $CACHE_MANAGER;
				$CACHE_MANAGER->RegisterTag('sonet_user2group_U'.$USER_ID);
			}

			// get all groups from current site (if not extranet)
			if (SITE_ID != CExtranet::GetExtranetSiteID())
			{
				$arGroupForCheck = array();

				$dbGroups = CSocNetGroup::GetList(
					array(),
					array(
						"SITE_ID" => SITE_ID
					),
					false,
					false,
					array('ID')
				);

				while ($arGroups = $dbGroups->GetNext())
				{
					$arGroupForCheck[] = $arGroups["ID"];
				}
			}

			if (
				!is_array($arGroupForCheck)
				|| count($arGroupForCheck) > 0
			)
			{
				$arGroupFilterMy = array(
					"USER_ID" => $USER_ID,
					"<=ROLE" => SONET_ROLES_USER,
					"GROUP_ACTIVE" => "Y",
					"!GROUP_CLOSED" => "Y",
					"GROUP_SITE_ID" => CExtranet::GetExtranetSiteID()
				);

				if (count($arGroupForCheck) > 0)
				{
					$arGroupFilterMy["GROUP_ID"] = $arGroupForCheck;
				}

				// Socialnetwork
				$dbGroups = CSocNetUserToGroup::GetList(
					array("GROUP_NAME" => "ASC"),
					$arGroupFilterMy,
					false,
					false,
					array('ID', 'GROUP_ID', 'GROUP_NAME')
				);

				while ($arGroups = $dbGroups->GetNext())
				{
					$arExSGGroup[] = array(
						$arGroups["GROUP_NAME"],
						str_replace("#group_id#", $arGroups["GROUP_ID"], $strGroupLinkTemplate),
						array(),
						array(/*"counter_id" => "SG".$arGroups["GROUP_ID"]*/),
						""
					);
					if (defined("BX_COMP_MANAGED_CACHE"))
					{
						$CACHE_MANAGER->RegisterTag('sonet_group_'.$arGroups["ID"]);
					}
				}
			}
		}
		$aMenuLinks = $arExSGGroup;
	endif;
}
else
{
	if (CModule::IncludeModule("socialnetwork"))
	{
		if (!function_exists("__CheckPath4Template"))
		{
			function __CheckPath4Template($pageTemplate, $currentPageUrl, &$arVariables)
			{
				$pageTemplateReg = preg_replace("'#[^#]+?#'", "([^/]+?)", $pageTemplate);
	//			if (substr($pageTemplateReg, -1, 1) == "/")
	//				$pageTemplateReg .= "index\\.php";

				$arValues = array();
				if (preg_match("'^".$pageTemplateReg."'", $currentPageUrl, $arValues))
				{
					$arMatches = array();
					if (preg_match_all("'#([^#]+?)#'", $pageTemplate, $arMatches))
					{
						for ($i = 0, $cnt = count($arMatches[1]); $i < $cnt; $i++)
							$arVariables[$arMatches[1][$i]] = $arValues[$i + 1];
					}
					return True;
				}

				return False;
			}
		}

		$arGroup = false;
		$arVariables = array();
		$componentPage = __CheckPath4Template($strGroupLinkTemplate, $_SERVER["REQUEST_URI"], $arVariables);
		if (
			$componentPage 
			&& IntVal($arVariables["group_id"]) > 0
		)
		{
			$arGroup = CSocNetGroup::GetByID(IntVal($arVariables["group_id"]));
		}

		$dbGroupSubjects = CSocNetGroupSubject::GetList(
			array("SORT" => "ASC", "NAME" => "ASC"),
			array("SITE_ID" => SITE_ID),
			false,
			false,
			array("ID", "NAME")
		);

		$aMenuLinksAdd = array();
		while ($arGroupSubject = $dbGroupSubjects->GetNext())
		{
			$arLinks = array();
			if ($arGroup && $arGroup["SUBJECT_ID"] == $arGroupSubject["ID"])
				$arLinks = array($_SERVER["REQUEST_URI"]);

			$aMenuLinksAdd[] = array(
				$arGroupSubject["NAME"],
				str_replace("#subject_id#", $arGroupSubject["ID"], $strGroupSubjectLinkTemplate),
				$arLinks,
				array(),
				""
			);
		}

		$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksAdd);

		$aMenuLinks[] = array(GetMessage("WORKGROUPS_MENU_ARCHIVE"), str_replace("#subject_id#", -1, $strGroupSubjectLinkTemplate), array(), array(), "");
	}
}
?>