public function onPrepareComponentParams($params) { $this->arIBlock = CIBlock::GetArrayByID($params["IBLOCK_ID"]); $this->arResult["IBLOCK"] = htmlspecialcharsex($this->arIBlock); $this->arResult["IBLOCK_ID"] = $this->arIBlock["ID"]; $this->arResult["GRID_ID"] = "lists_list_elements_" . $this->arResult["IBLOCK_ID"]; $this->arResult["ANY_SECTION"] = isset($_GET["list_section_id"]) && strlen($_GET["list_section_id"]) == 0; $this->arResult["SECTIONS"] = array(); $this->arResult["SECTION_ID"] = false; $this->arResult["LIST_SECTIONS"] = array(); if (isset($_GET["list_section_id"])) { $sectionId = intval($_GET["list_section_id"]); } else { $sectionId = intval($params["SECTION_ID"]); } $rsSections = CIBlockSection::GetList(array("left_margin" => "asc"), array("IBLOCK_ID" => $this->arIBlock["ID"], "GLOBAL_ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y")); while ($arSection = $rsSections->GetNext()) { $this->arResult["SECTIONS"][$arSection["ID"]] = array("ID" => $arSection["ID"], "NAME" => $arSection["NAME"]); if ($arSection["ID"] == $sectionId) { $this->arResult["SECTION"] = $arSection; $this->arResult["SECTION_ID"] = $arSection["ID"]; } $this->arResult["LIST_SECTIONS"][$arSection["ID"]] = str_repeat(" . ", $arSection["DEPTH_LEVEL"]) . $arSection["NAME"]; } $this->arResult["IS_SOCNET_GROUP_CLOSED"] = false; if (intval($params["~SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork")) { $arSonetGroup = CSocNetGroup::GetByID(intval($params["~SOCNET_GROUP_ID"])); if (is_array($arSonetGroup) && $arSonetGroup["CLOSED"] == "Y" && !CSocNetUser::IsCurrentUserModuleAdmin() && ($arSonetGroup["OWNER_ID"] != $GLOBALS["USER"]->GetID() || COption::GetOptionString("socialnetwork", "work_with_closed_groups", "N") != "Y")) { $this->arResult["IS_SOCNET_GROUP_CLOSED"] = true; } } return $params; }
function __wd_get_root_section($IBLOCK_ID, $object, $object_id) { $result = CIBlockWebdavSocnet::GetSectionID($IBLOCK_ID, $object, $object_id); if (intval($result) > 0) { return $result; } else { __wd_check_uf_use_bp_property($arParams["IBLOCK_ID"]); $arFields = array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y", "SOCNET_GROUP_ID" => false, "IBLOCK_SECTION_ID" => 0, "UF_USE_BP" => "N"); if ($object == "user") { $dbUser = CUser::GetByID($object_id); $arUser = $dbUser->Fetch(); $arFields["NAME"] = trim($arUser['LAST_NAME'] . " " . $arUser['FIRST_NAME']); $arFields["NAME"] = trim(!empty($arFields["NAME"]) ? $arFields["NAME"] : $arUser['LOGIN']); $arFields['CREATED_BY'] = $arUser['ID']; $arFields['MODIFIED_BY'] = $arUser['ID']; if (CIBlock::GetArrayByID($IBLOCK_ID, "RIGHTS_MODE") === "E") { $arTasks = CWebDavIblock::GetTasks(); $arFields['RIGHTS'] = array('n0' => array('GROUP_CODE' => 'U' . $object_id, 'TASK_ID' => $arTasks['X'])); } } else { /* $res = CSocNetGroup::GetByID($arResult["VARIABLES"]["group_id"]); if (!$res) { $arParams["ERROR_MESSAGE"] = GetMessage("SONET_GROUP_NOT_EXISTS"); return 0; } */ $arFields["SOCNET_GROUP_ID"] = $object_id; $arGroup = CSocNetGroup::GetByID($object_id); $arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX") . $arGroup["NAME"]; if (CIBlock::GetArrayByID($IBLOCK_ID, "RIGHTS_MODE") === "E") { $arTasks = CWebDavIblock::GetTasks(); $arFields['RIGHTS'] = array('n0' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_A', 'TASK_ID' => $arTasks['X']), 'n1' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_E', 'TASK_ID' => $arTasks['W']), 'n2' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_K', 'TASK_ID' => $arTasks['W'])); } } $GLOBALS["UF_USE_BP"] = $arFields["UF_USE_BP"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $IBLOCK_ID . "_SECTION", $arFields); $bs = new CIBlockSection(); $sectionID = $bs->Add($arFields); if (!$sectionID) { $arParams["ERROR_MESSAGE"] = $bs->LAST_ERROR; return 0; } WDClearComponentCache(array("webdav.element.edit", "webdav.element.hist", "webdav.element.upload", "webdav.element.view", "webdav.menu", "webdav.section.edit", "webdav.section.list")); return true; /* if ($ob->workflow == 'bizproc') { __wd_create_default_bp_user_and_groups($arBizProcParameters); } */ } }
/** * Get a social network group by ID */ public function get($id) { $result = array(); $id = intval($id); if (!$id) { $this->errors->add('ILLEGAL_GROUP_ID', 'Illegal group id'); } else { $data = \CSocNetGroup::GetByID($id, $bCheckPermissions = false); if (is_array($data) && !empty($data)) { $result = $data; } } return $result; }
private function getHtml($task, $arPaths, $nameTemplate, $columnsOrder) { global $APPLICATION; $APPLICATION->RestartBuffer(); if ($task["GROUP_ID"]) { $arGroup = \CSocNetGroup::GetByID($task["GROUP_ID"]); if ($arGroup) { $task["GROUP_NAME"] = $arGroup["NAME"]; } } $params = array("PATHS" => $arPaths, "PLAIN" => false, "DEFER" => true, "SITE_ID" => $task["SITE_ID"], "TASK_ADDED" => true, "IFRAME" => "N", "NAME_TEMPLATE" => $nameTemplate, "DATA_COLLECTION" => array(array("CHILDREN_COUNT" => 0, "DEPTH" => 0, "UPDATES_COUNT" => 0, "PROJECT_EXPANDED" => true, "ALLOWED_ACTIONS" => null, "TASK" => $task))); if ($columnsOrder !== null) { $params["COLUMNS_IDS"] = $columnsOrder; } ob_start(); $APPLICATION->IncludeComponent("bitrix:tasks.list.items", ".default", $params, null, array("HIDE_ICONS" => "Y")); $html = ob_get_clean(); return $html; }
function __GCEGetGroup(&$group_id, &$arGroupProperties = array(), &$arGroupTmp = array(), $tab = false) { if (!CModule::IncludeModule("socialnetwork")) { $group_id = 0; return; } $arGroup = CSocNetGroup::GetByID($group_id); if ($arGroup && ($tab == "edit" && ($arGroup["OWNER_ID"] == $GLOBALS["USER"]->GetID() || CSocNetUser::IsCurrentUserModuleAdmin()) || $tab == "invite" && (CSocNetUser::IsCurrentUserModuleAdmin() || CSocNetGroup::CanUserInitiate($GLOBALS["USER"]->GetID(), $group_id)))) { $arGroupTmp["NAME"] = $arGroup["NAME"]; $arGroupTmp["DESCRIPTION"] = $arGroup["DESCRIPTION"]; $arGroupTmp["IMAGE_ID_DEL"] = "N"; $arGroupTmp["SUBJECT_ID"] = $arGroup["SUBJECT_ID"]; $arGroupTmp["VISIBLE"] = $arGroup["VISIBLE"]; $arGroupTmp["OPENED"] = $arGroup["OPENED"]; $arGroupTmp["CLOSED"] = $arGroup["CLOSED"]; $arGroupTmp["KEYWORDS"] = $arGroup["KEYWORDS"]; $arGroupTmp["OWNER_ID"] = $arGroup["OWNER_ID"]; $arGroupTmp["INITIATE_PERMS"] = $arGroup["INITIATE_PERMS"]; $arGroupTmp["SPAM_PERMS"] = $arGroup["SPAM_PERMS"]; $arGroupTmp["IMAGE_ID"] = $arGroup["IMAGE_ID"]; $arGroupTmp["IMAGE_ID_FILE"] = CFile::GetFileArray($arGroup["IMAGE_ID"]); $arGroupTmp["IMAGE_ID_IMG"] = '<img src="' . ($arGroupTmp["IMAGE_ID_FILE"] != false ? $arGroupTmp["IMAGE_ID_FILE"]["SRC"] : "/bitrix/images/1.gif") . '" height="60" class="sonet-group-create-popup-image" id="sonet_group_create_popup_image" border="0">'; foreach ($arGroupProperties as $field => $arUserField) { if (array_key_exists($field, $arGroup)) { $arGroupProperties[$field]["VALUE"] = $arGroup["~" . $field]; $arGroupProperties[$field]["ENTITY_VALUE_ID"] = $arGroup["ID"]; } } $arGroupTmp["IS_EXTRANET_GROUP"] = "N"; if (CModule::IncludeModule("extranet") && CExtranet::IsExtranetSocNetGroup($group_id)) { $arGroupTmp["IS_EXTRANET_GROUP"] = "Y"; } } else { $arGroupTmp["VISIBLE"] = "Y"; $arGroupTmp["IS_EXTRANET_GROUP"] = "N"; $group_id = 0; } }
$arTooltipFieldsDefault = serialize(array("EMAIL", "PERSONAL_MOBILE", "WORK_PHONE", "PERSONAL_ICQ", "PERSONAL_PHOTO", "PERSONAL_CITY", "WORK_COMPANY", "WORK_POSITION")); $arTooltipPropertiesDefault = serialize(array("UF_DEPARTMENT", "UF_PHONE_INNER")); } else { $arTooltipFieldsDefault = serialize(array("PERSONAL_ICQ", "PERSONAL_BIRTHDAY", "PERSONAL_PHOTO", "PERSONAL_CITY", "WORK_COMPANY", "WORK_POSITION")); $arTooltipPropertiesDefault = serialize(array()); } if (!array_key_exists("SHOW_FIELDS_TOOLTIP", $arParams)) { $arParams["SHOW_FIELDS_TOOLTIP"] = unserialize(COption::GetOptionString("socialnetwork", "tooltip_fields", $arTooltipFieldsDefault)); } if (!array_key_exists("USER_PROPERTY_TOOLTIP", $arParams)) { $arParams["USER_PROPERTY_TOOLTIP"] = unserialize(COption::GetOptionString("socialnetwork", "tooltip_properties", $arTooltipPropertiesDefault)); } if (!$USER->IsAuthorized()) { $arResult["NEED_AUTH"] = "Y"; } else { $arGroup = CSocNetGroup::GetByID($arParams["GROUP_ID"]); if (!$arGroup || !is_array($arGroup) || $arGroup["ACTIVE"] != "Y") { $arResult["FatalError"] = GetMessage("SONET_P_USER_NO_GROUP"); } else { $arGroupSites = array(); $rsGroupSite = CSocNetGroup::GetSite($arGroup["ID"]); while ($arGroupSite = $rsGroupSite->Fetch()) { $arGroupSites[] = $arGroupSite["LID"]; } if (!in_array(SITE_ID, $arGroupSites)) { $arResult["FatalError"] = GetMessage("SONET_P_USER_NO_GROUP"); } else { $arResult["Group"] = $arGroup; $arResult["CurrentUserPerms"] = CSocNetUserToGroup::InitUserPerms($USER->GetID(), $arResult["Group"], CSocNetUser::IsCurrentUserModuleAdmin()); if (!$arResult["CurrentUserPerms"] || !$arResult["CurrentUserPerms"]["UserCanViewGroup"]) { $arResult["FatalError"] = GetMessage("SONET_C12_NO_PERMS") . ". ";
function CheckFields($ACTION, &$arFields, $ID = 0) { static $arSiteWorkgroupsPage; global $DB, $arSocNetAllowedEntityTypes, $arSocNetAllowedSubscribeEntityTypes, $arSocNetFeaturesSettings, $arSocNetLogEvents; if (!$arSiteWorkgroupsPage && IsModuleInstalled("extranet") && $arFields["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { $rsSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSite = $rsSite->Fetch()) { $arSiteWorkgroupsPage[$arSite["ID"]] = COption::GetOptionString("socialnetwork", "workgroup_page", $arSite["DIR"] . "workgroups/", $arSite["ID"]); } } if ($ACTION != "ADD" && IntVal($ID) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("System error 870164", "ERROR"); return false; } $newEntityType = ""; if ((is_set($arFields, "ENTITY_TYPE") || $ACTION == "ADD") && StrLen($arFields["ENTITY_TYPE"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_EMPTY_ENTITY_TYPE"), "EMPTY_ENTITY_TYPE"); return false; } elseif (is_set($arFields, "ENTITY_TYPE")) { if (!in_array($arFields["ENTITY_TYPE"], $arSocNetAllowedSubscribeEntityTypes)) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_ERROR_NO_ENTITY_TYPE"), "ERROR_NO_ENTITY_TYPE"); return false; } $newEntityType = $arFields["ENTITY_TYPE"]; } if ((is_set($arFields, "ENTITY_ID") || $ACTION == "ADD") && IntVal($arFields["ENTITY_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_EMPTY_ENTITY_ID"), "EMPTY_ENTITY_ID"); return false; } elseif (is_set($arFields, "ENTITY_ID")) { if (StrLen($newEntityType) <= 0 && $ID > 0) { $arRe = CAllSocNetLog::GetByID($ID); if ($arRe) { $newEntityType = $arRe["ENTITY_TYPE"]; } } if (StrLen($newEntityType) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GL_ERROR_CALC_ENTITY_TYPE"), "ERROR_CALC_ENTITY_TYPE"); return false; } if ($newEntityType == SONET_ENTITY_GROUP) { $arResult = CSocNetGroup::GetByID($arFields["ENTITY_ID"]); if ($arResult == false) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_ERROR_NO_ENTITY_ID"), "ERROR_NO_ENTITY_ID"); return false; } } elseif ($newEntityType == SONET_ENTITY_USER) { $dbResult = CUser::GetByID($arFields["ENTITY_ID"]); if (!$dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_ERROR_NO_ENTITY_ID"), "ERROR_NO_ENTITY_ID"); return false; } } } if ((is_set($arFields, "LOG_ID") || $ACTION == "ADD") && intval($arFields["LOG_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_EMPTY_LOG_ID"), "EMPTY_LOG_ID"); return false; } if ((is_set($arFields, "EVENT_ID") || $ACTION == "ADD") && strlen($arFields["EVENT_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_EMPTY_EVENT_ID"), "EMPTY_EVENT_ID"); return false; } elseif (is_set($arFields, "EVENT_ID")) { $arFields["EVENT_ID"] = strtolower($arFields["EVENT_ID"]); $arEvent = CSocNetLogTools::FindLogCommentEventByID($arFields["EVENT_ID"]); if (!$arEvent) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_ERROR_NO_FEATURE_ID"), "ERROR_NO_FEATURE"); return false; } } if (is_set($arFields, "USER_ID")) { $dbResult = CUser::GetByID($arFields["USER_ID"]); if (!$dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_ERROR_NO_USER_ID"), "ERROR_NO_USER_ID"); return false; } } if (is_set($arFields, "LOG_DATE") && !$DB->IsDate($arFields["LOG_DATE"], false, LANG, "FULL")) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_EMPTY_DATE_CREATE"), "EMPTY_LOG_DATE"); return false; } if (is_set($arFields["URL"]) && is_array($arSiteWorkgroupsPage)) { foreach ($arSiteWorkgroupsPage as $groups_page) { if (strpos($arFields["URL"], $groups_page) === 0) { $arFields["URL"] = "#GROUPS_PATH#" . substr($arFields["URL"], strlen($groups_page), strlen($arFields["URL"]) - strlen($groups_page)); } } } return True; }
/** @var string $parentComponentName */ /** @var string $parentComponentPath */ /** @var string $parentComponentTemplate */ $this->setFrameMode(false); if (!CModule::IncludeModule('lists')) { ShowError(GetMessage("CC_BLL_MODULE_NOT_INSTALLED")); return; } $IBLOCK_ID = intval($arParams["~IBLOCK_ID"]); if (isset($_GET["list_section_id"])) { $section_id = intval($_GET["list_section_id"]); } else { $section_id = intval($arParams["~SECTION_ID"]); } if (intval($arParams["~SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork")) { $arSonetGroup = CSocNetGroup::GetByID(intval($arParams["~SOCNET_GROUP_ID"])); if (is_array($arSonetGroup) && $arSonetGroup["CLOSED"] == "Y" && !CSocNetUser::IsCurrentUserModuleAdmin() && ($arSonetGroup["OWNER_ID"] != $GLOBALS["USER"]->GetID() || COption::GetOptionString("socialnetwork", "work_with_closed_groups", "N") != "Y")) { $arResult["IS_SOCNET_GROUP_CLOSED"] = true; } } $lists_perm = CListPermissions::CheckAccess($USER, $arParams["~IBLOCK_TYPE_ID"], $IBLOCK_ID, $arParams["~SOCNET_GROUP_ID"]); if ($lists_perm < 0) { switch ($lists_perm) { case CListPermissions::WRONG_IBLOCK_TYPE: ShowError(GetMessage("CC_BLL_WRONG_IBLOCK_TYPE")); return; case CListPermissions::WRONG_IBLOCK: ShowError(GetMessage("CC_BLL_WRONG_IBLOCK")); return; case CListPermissions::LISTS_FOR_SONET_GROUP_DISABLED: ShowError(GetMessage("CC_BLL_LISTS_FOR_SONET_GROUP_DISABLED"));
$dbResultList->NavStart(); $lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("BLB_GROUP_NAV"))); while ($arBlog = $dbResultList->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arBlog, "/bitrix/admin/blog_blog_edit.php?ID=" . $f_ID . "&lang=" . LANGUAGE_ID, GetMessage("BLB_UPDATE_ALT")); $row->AddField("ID", '<a href="/bitrix/admin/blog_blog_edit.php?ID=' . $f_ID . '&lang=' . LANGUAGE_ID . '" title="' . GetMessage("BLB_UPDATE_ALT") . '">' . $f_ID . '</a>'); $row->AddField("NAME", "<a href=\"" . CBlog::PreparePath($f_URL, $f_GROUP_SITE_ID, false, $f_OWNER_ID, $f_SOCNET_GROUP_ID) . "\">" . $f_NAME . "</a>"); $row->AddField("DATE_CREATE", $f_DATE_CREATE); $row->AddField("DATE_UPDATE", $f_DATE_UPDATE); $row->AddField("ACTIVE", $f_ACTIVE == "Y" ? GetMessage("BLB_YES") : GetMessage("BLB_NO")); if (IntVal($f_OWNER_ID) > 0) { $row->AddField("OWNER_INFO", "<a href=\"/bitrix/admin/user_edit.php?ID=" . $f_OWNER_ID . "&lang=" . LANG . "\">[" . $f_OWNER_ID . "] " . $f_OWNER_NAME . " " . $f_OWNER_LAST_NAME . " (" . $f_OWNER_LOGIN . ")</a>"); } if (IntVal($f_SOCNET_GROUP_ID) > 0) { $row->AddField("SOCNET_GROUP_ID", $f_SOCNET_GROUP_ID); if (CModule::IncludeModule("socialnetwork")) { $arGroupSo = CSocNetGroup::GetByID($f_SOCNET_GROUP_ID); if (!empty($arGroupSo)) { $row->AddField("SOCNET_GROUP_ID", "[" . $f_SOCNET_GROUP_ID . "] " . $arGroupSo["NAME"]); } } } $row->AddField("URL", $f_URL); $row->AddField("GROUP_ID", "<a href=\"/bitrix/admin/blog_group_edit.php?ID=" . $f_GROUP_ID . "&lang=" . LANG . "\">[" . $f_GROUP_SITE_ID . "] " . $f_GROUP_NAME . "</a>"); $row->AddField("USE_SOCNET", $f_USE_SOCNET == "Y" ? GetMessage("BLB_YES") : GetMessage("BLB_NO")); $USER_FIELD_MANAGER->AddUserFields("BLOG_BLOG", $arBlog, $row); $arActions = array(); $arActions[] = array("ICON" => "edit", "TEXT" => GetMessage("BLB_UPDATE_ALT"), "ACTION" => $lAdmin->ActionRedirect("blog_blog_edit.php?ID=" . $f_ID . "&lang=" . LANG . "&" . GetFilterParams("filter_") . ""), "DEFAULT" => true); if ($blogModulePermissions >= "U") { $arActions[] = array("SEPARATOR" => true); $arActions[] = array("ICON" => "delete", "TEXT" => GetMessage("BLB_DELETE_ALT"), "ACTION" => "if(confirm('" . GetMessage('BLB_DELETE_CONF') . "')) " . $lAdmin->ActionDoGroup($f_ID, "delete")); }
static function GetGroups($iblockID) { $groupTree = array(); $arFilter = array("IBLOCK_ID" => $iblockID, "SECTION_ID" => 0, "CHECK_PERMISSIONS" => "N"); $dbSection = CIBlockSection::GetList(array(), $arFilter, false, array('ID', 'SOCNET_GROUP_ID')); while ($arGroupSection = $dbSection->Fetch()) { $groupID = $arGroupSection['SOCNET_GROUP_ID']; $section = $arGroupSection['ID']; $group = CSocNetGroup::GetByID($groupID); if ($group) { $group['SECTION'] = $section; $groupTree[$groupID] = $group; } } return $groupTree; }
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(), ""); } }
$arParams["PAGE_ID"] = "group_search"; } elseif ($arParams["PAGE_ID"] == "user_content_search") { $arParams["PAGE_ID"] = "user_search"; } $arParams["USE_MAIN_MENU"] = isset($arParams["USE_MAIN_MENU"]) ? $arParams["USE_MAIN_MENU"] : false; if ($arParams["USE_MAIN_MENU"] == "Y" && !array_key_exists("MAIN_MENU_TYPE", $arParams)) { $arParams["MAIN_MENU_TYPE"] = "left"; } $arResult["ID"] = $arParams["ID"]; $errorMessage = false; if (!$arParams["ENTITY_ID"]) { $errorMessage = GetMessage("SONET_SM_ENTITY_ID_EMPTY"); } if (!$errorMessage) { if ($arParams["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { $arGroup = CSocNetGroup::GetByID($arParams["ENTITY_ID"]); if (!$arGroup) { $errorMessage = GetMessage("SONET_SM_ENTITY_ID_INCORRECT"); } } elseif (!array_key_exists("arResult", $arParams) || !array_key_exists("User", $arParams["arResult"]) || !is_array($arParams["arResult"]["User"])) { $rsUser = CUser::GetByID($arParams["ENTITY_ID"]); $arUser = $rsUser->Fetch(); if (!$arUser) { $errorMessage = GetMessage("SONET_SM_ENTITY_ID_INCORRECT"); } } } if (!$errorMessage) { if ($USER->IsAuthorized() && ($GLOBALS["USER"]->IsAdmin() || CModule::IncludeModule('socialnetwork') && CSocNetUser::IsCurrentUserModuleAdmin())) { $arResult["PERMISSION"] = "X"; } elseif ($USER->IsAuthorized()) {
function GetOwnerName($arParams) { if ($arParams['ownerType'] == 'USER') { // Get user name $dbUser = CUser::GetByID($arParams['ownerId']); if (!($arUser = $dbUser->Fetch())) { return; } $ownerName = $arUser["NAME"] . " " . $arUser["LAST_NAME"]; } else { if ($arParams['ownerType'] == 'GROUP') { // Get group name if (!($arGroup = CSocNetGroup::GetByID($arParams['ownerId']))) { return; } $ownerName = $arGroup["NAME"]; } else { // Get iblock name $rsIblock = CIBlock::GetList(array(), array("ID" => $arParams['iblockId'], "CHECK_PERMISSIONS" => 'N')); if (!($arIblock = $rsIblock->Fetch())) { return; } $ownerName = $arIblock['NAME']; } } return $ownerName; }
} } $arFields["EDIT_FORM_LABEL"] = $arFieldName; $obUserField = new CUserTypeEntity(); $obUserField->Add($arFields); $APPLICATION->GetException(); $GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array(); } } $arFields = array("ACTIVE" => "Y", "IBLOCK_ID" => $arParams["IBLOCK_ID"], "NAME" => "", "CODE" => "", "DESCRIPTION" => "", "UF_DEFAULT" => "Y", "SOCNET_GROUP_ID" => false, "IBLOCK_SECTION_ID" => "0"); if ($object == "user") { $arFields["NAME"] = trim($USER->GetLastName() . " " . $USER->GetFirstName()); $arFields["NAME"] = trim(!empty($arFields["NAME"]) ? $arFields["NAME"] : $USER->GetLogin()); $arFields["CODE"] = "user_" . $arResult["VARIABLES"]["user_id"]; } else { $res = CSocNetGroup::GetByID($arResult["VARIABLES"]["group_id"]); if (!$res) { $arParams["ERROR_MESSAGE"] = GetMessage("SONET_GROUP_NOT_EXISTS"); return 0; } $arFields["SOCNET_GROUP_ID"] = $arResult["VARIABLES"]["group_id"]; $arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX") . $res["NAME"]; $arFields["CODE"] = "group_" . $arResult["VARIABLES"]["group_id"]; } if (!empty($arFiles)) { $arFields["PICTURE"] = $arFiles["PICTURE"]; } $bs = new CIBlockSection(); if ($bs->CheckFields($arFields)) { if (!empty($arFiles)) { $arFields["DETAIL_PICTURE"] = $arFiles["DETAIL_PICTURE"];
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (count($arResult["BLOG"]) > 0) { foreach ($arResult["BLOG"] as $i => $arBlog) { $imageFile = false; if (intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork")) { $arGroup = CSocNetGroup::GetByID($arBlog["SOCNET_GROUP_ID"]); if (intval($arGroup["IMAGE_ID"]) > 0) { $imageFile = CFile::GetFileArray($arGroup["IMAGE_ID"]); } } elseif (intval($arBlog["OWNER_ID"]) > 0) { $dbUser = CUser::GetByID($arBlog["OWNER_ID"]); $arUser = $dbUser->Fetch(); if (intval($arUser["PERSONAL_PHOTO"]) > 0) { $imageFile = CFile::GetFileArray($arUser["PERSONAL_PHOTO"]); } } if ($imageFile) { $arFileTmp = CFile::ResizeImageGet($imageFile, array("width" => 75, "height" => 75), BX_RESIZE_IMAGE_PROPORTIONAL, false); $arResult["BLOG"][$i]["AVATAR"] = $arFileTmp; } else { $arResult["BLOG"][$i]["AVATAR"] = false; } } } ?>
$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") { $arTmpEventsNew = array(); $arResult["IS_FILTERED"] = false; if ($arParams["SET_TITLE"] == "Y" || $arParams["SET_NAV_CHAIN"] != "N" || $arParams["GROUP_ID"] > 0) { if ($arParams["ENTITY_TYPE"] == SONET_ENTITY_USER) { $rsUser = CUser::GetByID($arParams["USER_ID"]); if ($arResult["User"] = $rsUser->Fetch()) { $strTitleFormatted = CUser::FormatName($arParams['NAME_TEMPLATE'], $arResult["User"], $bUseLogin); } } elseif ($arParams["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { $arResult["Group"] = CSocNetGroup::GetByID($arParams["GROUP_ID"]); } } if ($arParams["SET_TITLE"] == "Y") { $APPLICATION->SetTitle(GetMessage("SONET_C73_PAGE_TITLE")); } if ($arParams["SET_NAV_CHAIN"] != "N") { $APPLICATION->AddChainItem(GetMessage("SONET_C73_PAGE_TITLE")); } $arResult["Events"] = false; $arFilter = array(); if ($arParams["LOG_ID"] > 0) { $arFilter["ID"] = $arParams["LOG_ID"]; } if (isset($arParams["DISPLAY"])) { $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = $arParams["SHOW_REFRESH"] = "N";
public static function GetOwnerName($type = '', $ownerId = '') { $type = strtolower($type); $key = $type . '_' . $ownerId; if (isset(self::$ownerNames[$key])) { return self::$ownerNames[$key]; } $ownerName = ''; if ($type == 'user') { $ownerName = CCalendar::GetUserName($ownerId); } elseif ($type == 'group') { // Get group name if (!CModule::IncludeModule("socialnetwork")) { return $ownerName; } if ($arGroup = CSocNetGroup::GetByID($ownerId)) { $ownerName = $arGroup["~NAME"]; } } else { // Get type name $arTypes = CCalendarType::GetList(array("arFilter" => array("XML_ID" => $type))); $ownerName = $arTypes[0]['NAME']; } self::$ownerNames[$key] = $ownerName; $ownerName = trim($ownerName); return $ownerName; }
$APPLICATION->AddHeadScript('/bitrix/js/main/utils.js'); $APPLICATION->AddHeadScript('/bitrix/js/main/dd.js'); } if ($arParams['EDIT'] && $arResult['CAN_EDIT'] || isset($arResult["MEETING"]["PLACE_ID"])) { $arResult['MEETING_ROOMS_LIST'] = array(); if ($arParams['RESERVE_MEETING_IBLOCK_ID'] || $arParams['RESERVE_VMEETING_IBLOCK_ID']) { $dbMeetingsList = CIBlockSection::GetList(array('IBLOCK_ID' => 'ASC', 'NAME' => 'ASC', 'ID' => 'DESC'), array('IBLOCK_ID' => array(intval($arParams['RESERVE_MEETING_IBLOCK_ID']), intval($arParams['RESERVE_VMEETING_IBLOCK_ID']))), false, array('ID', 'IBLOCK_ID', 'NAME', 'DESCRIPTION')); while ($arRoom = $dbMeetingsList->Fetch()) { $arRoom["MEETING_ROOM_ID"] = CMeeting::MakePlace($arRoom["IBLOCK_ID"], $arRoom["ID"]); $arResult['MEETING_ROOMS_LIST'][] = $arRoom; if (isset($arResult["MEETING"]["PLACE_ID"]) && $arResult["MEETING"]["PLACE_ID"] == $arRoom["MEETING_ROOM_ID"]) { $arResult["MEETING"]["PLACE"] = htmlspecialcharsbx($arRoom["NAME"]); } } } } if ($arParams['EDIT'] && $arResult['CAN_EDIT']) { require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/tools/clock.php"; $this->IncludeComponentTemplate('tpl_edit'); } else { if (is_array($arResult['MEETING']['FILES']) && count($arResult['MEETING']['FILES']) > 0) { $arResult['MEETING']['FILES'] = CMeeting::GetFilesData($arResult['MEETING']['FILES'], array('MEETING' => $arResult['MEETING']['ID'])); } if ($arResult['MEETING']['GROUP_ID'] > 0 && CModule::IncludeModule('socialnetwork')) { if ($arGroup = CSocNetGroup::GetByID($arResult['MEETING']['GROUP_ID'])) { $arResult['MEETING']['GROUP_NAME'] = $arGroup['NAME']; $arResult['MEETING']['GROUP_URL'] = str_replace("#group_id#", $arGroup['ID'], COption::GetOptionString('socialnetwork', 'group_path_template', '/workgroups/group/#group_id#/', SITE_ID)); } } $this->IncludeComponentTemplate('tpl_view'); }
$arFields["DEADLINE"] = $_POST["deadline"]; } $depth = intval($_POST["depth"]); if (intval($_POST["parent"]) > 0) { $arFields["PARENT_ID"] = intval($_POST["parent"]); } $arFields["STATUS"] = $status; $task = new CTasks(); $ID = $task->Add($arFields); if ($ID) { $rsTask = CTasks::GetByID($ID); if ($task = $rsTask->GetNext()) { $APPLICATION->RestartBuffer(); ob_start(); if ($task["GROUP_ID"]) { $arGroup = CSocNetGroup::GetByID($task["GROUP_ID"]); if ($arGroup) { $task["GROUP_NAME"] = $arGroup["NAME"]; } } $params = array("PATHS" => $arPaths, "PLAIN" => false, "DEFER" => true, "SITE_ID" => $SITE_ID, "TASK_ADDED" => true, 'IFRAME' => 'N', "NAME_TEMPLATE" => $nameTemplate, 'DATA_COLLECTION' => array(array("CHILDREN_COUNT" => 0, "DEPTH" => $depth, "UPDATES_COUNT" => 0, "PROJECT_EXPANDED" => true, 'ALLOWED_ACTIONS' => null, "TASK" => $task))); $columnsOrder = null; if (isset($_POST['columnsOrder'])) { $columnsOrder = array_map('intval', $_POST['columnsOrder']); } if ($columnsOrder !== null) { $params['COLUMNS_IDS'] = $columnsOrder; } $APPLICATION->IncludeComponent('bitrix:tasks.list.items', '.default', $params, null, array("HIDE_ICONS" => "Y")); $html = ob_get_clean(); if (isset($_POST['type']) && ($_POST['type'] === 'json_with_html' || $_POST['type'] === 'json')) {
if ($arEvents["EVENT_ID"] != "all" && !array_key_exists($arEvents["EVENT_ID"], $arSocNetLogEvents) && (!array_key_exists($arEvents["EVENT_ID"], $arSocNetFeaturesSettings) || !array_key_exists("subscribe_events", $arSocNetFeaturesSettings[$arEvents["EVENT_ID"]]) || !is_array($arSocNetFeaturesSettings[$arEvents["EVENT_ID"]]["subscribe_events"]) || count($arSocNetFeaturesSettings[$arEvents["EVENT_ID"]]["subscribe_events"]) <= 0)) { continue; } if ($arResult["Events"] == false) { $arResult["Events"] = array(); } if ($arResult["EventsNew"] == false) { $arResult["EventsNew"] = array(); } $arrayKey = $arEvents["ENTITY_TYPE"] . "_" . $arEvents["ENTITY_ID"]; $arrayKeyNew = $arEvents["ENTITY_ID"]; if (in_array($arEvents["ENTITY_TYPE"], array(SONET_ENTITY_GROUP, SONET_ENTITY_USER))) { if ($arEvents["EVENT_ID"] != "all" && !array_key_exists($arrayKey, $arResult["Events"])) { $arResult["Events"][$arrayKey] = array("ENTITY_TYPE" => $arEvents["ENTITY_TYPE"], "ENTITY_ID" => $arEvents["ENTITY_ID"]); if ($arEvents["ENTITY_TYPE"] == SONET_ENTITY_GROUP && intval($arEvents["ENTITY_ID"]) > 0) { $arGroup = CSocNetGroup::GetByID($arEvents["ENTITY_ID"]); $path2Entity = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arEvents["ENTITY_ID"])); $arResult["Events"][$arrayKey]["Group"] = $arGroup; $arResult["Events"][$arrayKey]["GroupUrl"] = $path2Entity; $arResult["Events"][$arrayKey]["EditUrl"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_SUBSCRIBE"], array("group_id" => $arEvents["ENTITY_ID"])); } elseif (intval($arEvents["ENTITY_ID"]) > 0) { $dbUser = CUser::GetByID($arEvents["ENTITY_ID"]); $arUser = $dbUser->GetNext(); $path2Entity = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arEvents["ENTITY_ID"])); $arResult["Events"][$arrayKey]["User"] = $arUser; $arResult["Events"][$arrayKey]["User"]["NAME_FORMATTED"] = CUser::FormatName($arParams['NAME_TEMPLATE'], $arUser, $bUseLogin); $arResult["Events"][$arrayKey]["UserUrl"] = $path2Entity; $arResult["Events"][$arrayKey]["EditUrl"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SUBSCRIBE"], array("user_id" => $arEvents["ENTITY_ID"])); } $arResult["Events"][$arrayKey]["EditUrl"] .= (strpos($arResult["Events"][$arrayKey]["EditUrl"], "?") !== false ? "&" : "?") . "backurl=" . $APPLICATION->GetCurPage(); }
function SetOwner($userID, $groupID, $arGroup = false) { global $DB, $APPLICATION, $USER; if (!$arGroup) { $arGroup = CSocNetGroup::GetByID($groupID); } if (!$arGroup) { return false; } $DB->StartTransaction(); // setting relations for the old owner $dbRelation = CSocNetUserToGroup::GetList(array(), array("USER_ID" => $arGroup["OWNER_ID"], "GROUP_ID" => $groupID), false, false, array("ID")); if ($arRelation = $dbRelation->Fetch()) { $arFields = array("ROLE" => SONET_ROLES_USER, "=DATE_UPDATE" => $DB->CurrentTimeFunction(), "INITIATED_BY_TYPE" => SONET_INITIATED_BY_USER, "INITIATED_BY_USER_ID" => $USER->GetID()); if (!CSocNetUserToGroup::Update($arRelation["ID"], $arFields)) { $errorMessage = ""; if ($e = $APPLICATION->GetException()) { $errorMessage = $e->GetString(); } if (StrLen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_UG_ERROR_CANNOT_UPDATE_CURRENT_OWNER"); } $APPLICATION->ThrowException($errorMessage, "ERROR_UPDATE_USER2GROUP"); $DB->Rollback(); return false; } } else { $errorMessage = ""; if ($e = $APPLICATION->GetException()) { $errorMessage = $e->GetString(); } if (StrLen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_UG_ERROR_CANNOT_GET_CURRENT_OWNER_RELATION"); } $APPLICATION->ThrowException($errorMessage, "ERROR_GET_USER2GROUP"); $DB->Rollback(); return false; } // delete requests to the old owner if (strlen($errorMessage) <= 0) { CSocNetUserToGroup::__SpeedFileDelete($arGroup["OWNER_ID"]); } if (strlen($errorMessage) <= 0) { // setting relations for the new owner $dbRelation = CSocNetUserToGroup::GetList(array(), array("USER_ID" => $userID, "GROUP_ID" => $groupID), false, false, array("ID")); if ($arRelation = $dbRelation->Fetch()) { $arFields = array("ROLE" => SONET_ROLES_OWNER, "=DATE_UPDATE" => $DB->CurrentTimeFunction(), "INITIATED_BY_TYPE" => SONET_INITIATED_BY_USER, "INITIATED_BY_USER_ID" => $USER->GetID()); if (!CSocNetUserToGroup::Update($arRelation["ID"], $arFields)) { $errorMessage = ""; if ($e = $APPLICATION->GetException()) { $errorMessage = $e->GetString(); } if (StrLen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_UG_ERROR_CANNOT_UPDATE_NEW_OWNER_RELATION"); } $APPLICATION->ThrowException($errorMessage, "ERROR_UPDATE_USER2GROUP"); $DB->Rollback(); return false; } } else { $arFields = array("USER_ID" => $userID, "GROUP_ID" => $groupID, "ROLE" => SONET_ROLES_OWNER, "=DATE_CREATE" => $DB->CurrentTimeFunction(), "=DATE_UPDATE" => $DB->CurrentTimeFunction(), "INITIATED_BY_TYPE" => SONET_INITIATED_BY_USER, "INITIATED_BY_USER_ID" => $USER->GetID(), "MESSAGE" => false); if (!CSocNetUserToGroup::Add($arFields)) { $errorMessage = ""; if ($e = $APPLICATION->GetException()) { $errorMessage = $e->GetString(); } if (StrLen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_UG_ERROR_CANNOT_ADD_NEW_OWNER_RELATION"); } $APPLICATION->ThrowException($errorMessage, "ERROR_ADD_USER2GROUP"); $DB->Rollback(); return false; } } } if (strlen($errorMessage) <= 0) { $GROUP_ID = CSocNetGroup::Update($groupID, array("OWNER_ID" => $userID)); if (!$GROUP_ID || IntVal($GROUP_ID) <= 0) { $errorMessage = ""; if ($e = $APPLICATION->GetException()) { $errorMessage = $e->GetString(); } if (StrLen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_UG_ERROR_CANNOT_UPDATE_GROUP"); } $APPLICATION->ThrowException($errorMessage, "ERROR_UPDATE_GROUP"); $DB->Rollback(); return false; } } if (CModule::IncludeModule("im")) { $bIMIncluded = true; $groupSiteId = CSocNetGroup::GetDefaultSiteId($groupID, $arGroup["SITE_ID"]); $workgroupsPage = COption::GetOptionString("socialnetwork", "workgroups_page", "/workgroups/", $groupSiteId); $groupUrlTemplate = COption::GetOptionString("socialnetwork", "group_path_template", "/workgroups/group/#group_id#/", $groupSiteId); $groupUrlTemplate = "#GROUPS_PATH#" . substr($groupUrlTemplate, strlen($workgroupsPage), strlen($groupUrlTemplate) - strlen($workgroupsPage)); $groupUrl = str_replace(array("#group_id#", "#GROUP_ID#"), $groupID, $groupUrlTemplate); } // send message to the old owner if ($bIMIncluded) { $arTmp = CSocNetLogTools::ProcessPath(array("GROUP_URL" => $groupUrl), $arGroup["OWNER_ID"], $groupSiteId); $groupUrl = $arTmp["URLS"]["GROUP_URL"]; $serverName = strpos($groupUrl, "http://") === 0 || strpos($groupUrl, "https://") === 0 ? "" : $arTmp["SERVER_NAME"]; $arMessageFields = array("TO_USER_ID" => $arGroup["OWNER_ID"], "FROM_USER_ID" => $USER->GetID(), "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "socialnetwork", "NOTIFY_EVENT" => "owner_group", "NOTIFY_TAG" => "SOCNET|OWNER_GROUP|" . $groupID, "NOTIFY_MESSAGE" => str_replace("#NAME#", "<a href=\"" . $groupUrl . "\" class=\"bx-notifier-item-action\">" . $arGroup["NAME"] . "</a>", GetMessage("SONET_UG_OWNER2MEMBER_MESSAGE")), "NOTIFY_MESSAGE_OUT" => str_replace("#NAME#", $arGroup["NAME"], GetMessage("SONET_UG_OWNER2MEMBER_MESSAGE") . " (" . $serverName . $groupUrl . ")")); CIMNotify::Add($arMessageFields); } // send message to the new owner if ($bIMIncluded) { $arTmp = CSocNetLogTools::ProcessPath(array("GROUP_URL" => $groupUrl), $userID, $groupSiteId); $groupUrl = $arTmp["URLS"]["GROUP_URL"]; if (strpos($groupUrl, "http://") === 0 || strpos($groupUrl, "https://") === 0) { $serverName = ""; } else { $serverName = $arTmp["SERVER_NAME"]; } $arMessageFields = array("TO_USER_ID" => $userID, "FROM_USER_ID" => $USER->GetID(), "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "socialnetwork", "NOTIFY_EVENT" => "owner_group", "NOTIFY_TAG" => "SOCNET|OWNER_GROUP|" . $groupID, "NOTIFY_MESSAGE" => str_replace("#NAME#", "<a href=\"" . $groupUrl . "\" class=\"bx-notifier-item-action\">" . $arGroup["NAME"] . "</a>", GetMessage("SONET_UG_MEMBER2OWNER_MESSAGE")), "NOTIFY_MESSAGE_OUT" => str_replace("#NAME#", $arGroup["NAME"], GetMessage("SONET_UG_MEMBER2OWNER_MESSAGE") . " (" . $serverName . $groupUrl . ")")); CIMNotify::Add($arMessageFields); } $arNotifyParams = array("TYPE" => "owner", "RELATION_ID" => $arRelation["ID"], "USER_ID" => $userID, "GROUP_ID" => $groupID, "GROUP_NAME" => htmlspecialcharsbx($arGroup["NAME"]), "EXCLUDE_USERS" => array($userID, $arGroup["OWNER_ID"], $USER->GetID())); CSocNetUserToGroup::NotifyImToModerators($arNotifyParams); CSocNetSubscription::Set($userID, "SG" . $groupID, "Y"); if (strlen($errorMessage) <= 0) { $DB->Commit(); return true; } else { $DB->Rollback(); return false; } }
} elseif ($object == "user" && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arResult["VARIABLES"]["user_id"], "files") || $object == "group" && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arResult["VARIABLES"]["group_id"], "files")) { $arError[] = array("id" => "fiture_is_not_active", "text" => GetMessage("SONET_FILES_IS_NOT_ACTIVE")); /************** Check Iblock ID ************************************/ } elseif ($object == "user" && $arParams["FILES_USER_IBLOCK_ID"] <= 0 || $object == "group" && $arParams["FILES_GROUP_IBLOCK_ID"] <= 0) { $arError[] = array("id" => "iblock_id_empty", "text" => GetMessage("SONET_IBLOCK_ID_EMPTY")); } elseif ($arParams["USE_AUTH"] == "Y" && (CWebDavBase::IsDavHeaders() || $_SERVER['REQUEST_METHOD'] != "GET" && $_SERVER['REQUEST_METHOD'] != "POST") && !$USER->IsAuthorized()) { $APPLICATION->RestartBuffer(); CWebDavBase::SetAuthHeader(); header('Content-length: 0'); die; } /************** Set Page Title or Add Navigation *******************/ if ($arParams["SET_NAV_CHAIN"] == "Y" || $arParams["SET_TITLE"] == "Y") { $strTitle = ""; if ($object == "group") { $arResult["GROUP"] = $arGroup = CSocNetGroup::GetByID($arResult["VARIABLES"]["group_id"]); $db_res = CSocNetFeatures::GetList(array(), array("ENTITY_ID" => $arResult["GROUP"]["ID"], "ENTITY_TYPE" => SONET_ENTITY_GROUP, "FEATURE" => "files")); if ($db_res && ($arResult["GROUP"]["FEATURE"] = $db_res->GetNext())) { $arParams["STR_TITLE"] = $arResult["GROUP"]["FEATURE"]["FEATURE_NAME"] = empty($arResult["GROUP"]["FEATURE"]["FEATURE_NAME"]) ? $arParams["STR_TITLE"] : $arResult["GROUP"]["FEATURE"]["FEATURE_NAME"]; } else { $arResult["GROUP"]["FEATURE"] = array("FEATURE_NAME" => $arParams["STR_TITLE"]); } $strTitle = $arGroup["~NAME"] . ": " . $arParams["STR_TITLE"]; if ($arParams["SET_NAV_CHAIN"] == "Y") { $APPLICATION->AddChainItem($arGroup["NAME"], CComponentEngine::MakePathFromTemplate($arResult["PATH_TO_GROUP"], array("group_id" => $arGroup["ID"]))); $APPLICATION->AddChainItem($arParams["STR_TITLE"], CComponentEngine::MakePathFromTemplate($arResult["PATH_TO_GROUP_FILES"], array("group_id" => $arGroup["ID"], "path" => ""))); } } else { if (strlen($arParams["NAME_TEMPLATE"]) <= 0) { $arParams["NAME_TEMPLATE"] = CSite::GetNameFormat(); }
public function UpdateListItems($listName, $updates) { global $USER; $arStatusValues = array_flip($this->arStatusValues); $arPriorityValues = array_flip($this->arPriorityValues); if (!$listName_original = CIntranetUtils::checkGUID($listName)) return new CSoapFault('Data error', 'Wrong GUID - '.$listName); $obResponse = new CXMLCreator('Results'); $listName = ToUpper(CIntranetUtils::makeGUID($listName_original)); $arSections = CCalendarSect::GetList(array('arFilter' => array('XML_ID' => $listName_original))); if (!$arSections || !is_array($arSections[0])) return new CSoapFault( 'List not found', 'List with '.$listName.' GUID not found' ); $arSection = $arSections[0]; $bGroup = $arSection['CAL_TYPE'] == 'group'; $calType = $arSection['CAL_TYPE']; $ownerId = $arSection['OWNER_ID']; if ($bGroup) { CModule::IncludeModule('socialnetwork'); $arGroupTmp = CSocNetGroup::GetByID($arSection['SOCNET_GROUP_ID']); if ($arGroupTmp["CLOSED"] == "Y") if (COption::GetOptionString("socialnetwork", "work_with_closed_groups", "N") != "Y") return new CSoapFault('Cannot modify archive group calendar', 'Cannot modify archive group calendar'); } $obBatch = $updates->children[0]; $atrONERROR = $obBatch->getAttribute('OnError'); $atrDATEINUTC = $obBatch->getAttribute('DateInUtc'); $atrPROPERTIES = $obBatch->getAttribute('Properties'); $arChanges = $obBatch->children; $arResultIDs = array(); $dateStart = ConvertTimeStamp(strtotime('-1 hour'), 'FULL'); $arResponseRows = array(); $arReplicationIDs = array(); $userId = (is_object($USER) && $USER->GetID()) ? $USER->GetID() : 1; foreach ($arChanges as $obMethod) { $arData = array('_command' => $obMethod->getAttribute('Cmd')); foreach ($obMethod->children as $obField) { $name = $obField->getAttribute('Name'); if ($name == 'MetaInfo') $name .= '_'.$obField->getAttribute('Property'); $arData[$name] = $obField->content; } if ($arData['_command'] == 'Delete') { $obRes = new CXMLCreator('Result'); $obRes->setAttribute('ID', $obMethod->getAttribute('ID').','.$arData['_command']); $obRes->setAttribute('List', $listName); $obRes->addChild($obNode = new CXMLCreator('ErrorCode')); $res = CCalendar::DeleteEvent($arData['ID']); if ($res === true) $obNode->setData('0x00000000'); else $obNode->setData('0x81020014'); /* 0x00000000 - ok 0x81020015 - data conflict 0x81020014 - generic error such as invalid value for Field 0x81020016 - item does not exist */ $obResponse->addChild($obRes); } elseif ($arData['_command'] == 'New' || $arData['_command'] == 'Update') { $q = ToLower($arData['Description']); if (($pos = strrpos($q, '</body>')) !== false) $arData['Description'] = substr($arData['Description'], 0, $pos); if (($pos = strpos($q, '<body>')) !== false) $arData['Description'] = substr($arData['Description'], $pos + 6); $arData['Description'] = str_replace('</DIV>', "\r\n</DIV>", $arData['Description']); $arData['Description'] = str_replace(array(" ", " "), "", $arData['Description']); $arData['Description'] = preg_replace("/<![^>]*>/", '', $arData['Description']); //$arData['Description'] = strip_tags($arData['Description']); $arData['Description'] = trim($arData['Description']); $arData['Location'] = trim($arData['Location']); if (isset($arData['EventDate'])) { $arData['EventDate'] = $this->__makeTS($arData['EventDate']); $arData['EndDate'] = $this->__makeTS($arData['EndDate']) + ($arData['fAllDayEvent'] ? -86340 : 0); $TZBias = intval(date('Z', $arData['EventDate'])); } $arData['EventType'] = intval($arData['EventType']); if ($arData['EventType'] == 2) $arData['EventType'] = 0; if ($arData['EventType'] > 2 /* || ($arData['EventType'] == 1 && !$arData['RecurrenceData'])*/) return new CSoapFault( 'Unsupported event type', 'Event type unsupported' ); $arData['fRecurrence'] = intval($arData['fRecurrence']); $arData['RRULE'] = ''; $id = $arData['_command'] == 'New' ? 0 : intVal($arData['ID']); if ($arData['RecurrenceData']) { //$xmlstr = $arData['XMLTZone']; //$arData['XMLTZone'] = new CDataXML(); //$arData['XMLTZone']->LoadString($xmlstr); $xmlstr = $arData['RecurrenceData']; $obRecurData = new CDataXML(); $obRecurData->LoadString($xmlstr); /* <recurrence> <rule> <firstDayOfWeek>mo</firstDayOfWeek> <repeat> <weekly mo='TRUE' tu='TRUE' th='TRUE' sa='TRUE' weekFrequency='1' /> </repeat> <repeatForever>FALSE</repeatForever> </rule> </recurrence> <deleteExceptions>true</deleteExceptions> */ $obRecurRule = $obRecurData->tree->children[0]->children[0]; $obRecurRepeat = $obRecurRule->children[1]; $obNode = $obRecurRepeat->children[0]; $arData['RRULE'] = array(); switch($obNode->name) { case 'daily': // hack. we have no "work days" daily recurence if ($obNode->getAttribute('weekday') == 'TRUE') { $arData['RRULE']['FREQ'] = 'WEEKLY'; $arData['RRULE']['BYDAY'] = 'MO,TU,WE,TH,FR'; $arData['RRULE']['INTERVAL'] = 1; } else { $arData['RRULE']['FREQ'] = 'DAILY'; $arData['RRULE']['INTERVAL'] = $obNode->getAttribute('dayFrequency'); } $time_end = strtotime( date(date('Y-m-d', $arData['EventDate']).' H:i:s', $arData['EndDate']) ); $arData['DT_LENGTH'] = $time_end - $arData['EventDate']; break; case 'weekly': $arData['RRULE']['FREQ'] = 'WEEKLY'; $arData['RRULE']['BYDAY'] = ''; $arWeekDays = array('mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'); foreach ($arWeekDays as $day => $value) { if ($obNode->getAttribute($value)) $arData['RRULE']['BYDAY'][] = strtoupper($value); } $arData['RRULE']['BYDAY'] = implode(',', $arData['RRULE']['BYDAY']); $arData['RRULE']['INTERVAL'] = $obNode->getAttribute('weekFrequency'); $time_end = strtotime(date(date('Y-m-d', $arData['EventDate']).' H:i:s', $arData['EndDate'])); $arData['DT_LENGTH'] = $time_end - $arData['EventDate']; break; case 'monthly': $arData['RRULE']['FREQ'] = 'MONTHLY'; $arData['RRULE']['INTERVAL'] = $obNode->getAttribute('monthFrequency'); $time_end = strtotime(date(date('Y-m', $arData['EventDate']).'-d H:i:s', $arData['EndDate'])); $arData['DT_LENGTH'] = $time_end - $arData['EventDate']; break; case 'yearly': $arData['RRULE']['FREQ'] = 'YEARLY'; $arData['RRULE']['INTERVAL'] = $obNode->getAttribute('yearFrequency'); $time_end = strtotime(date(date('Y', $arData['EventDate']).'-m-d H:i:s', $arData['EndDate'])); $arData['DT_LENGTH'] = $time_end - $arData['EventDate']; break; } if ($arData['DT_LENGTH'] == 0 && isset($arData['RRULE']['FREQ'])) $arData['DT_LENGTH'] = 86400; $obWhile = $obRecurRule->children[2]; if ($obWhile->name == 'repeatForever') { $arData['EndDate'] = MakeTimeStamp(''); } elseif ($obWhile->name == 'windowEnd') { $arData['EndDate'] = $this->__makeTS($obWhile->textContent()); $arData['RRULE']['UNTIL'] = ConvertTimeStamp($arData['EndDate'], 'FULL'); } } elseif($arData['fRecurrence'] == -1 && $id > 0) { $arData['RRULE'] = -1; } if (isset($arData['EventDate'])) { $skipTime = $arData['fAllDayEvent'] ? 'Y' : 'N'; $TZBias = $arData['fAllDayEvent'] ? 0 : $TZBias; $arData['EventDate'] += $TZBias; $arData['EndDate'] += $TZBias; // $arData["DT_FROM"] = ConvertTimeStamp($arData['EventDate'], 'FULL'); // $arData["DT_TO"] = ConvertTimeStamp($arData['EndDate'], 'FULL'); } else { $arData["DT_FROM"] = -1; $arData["DT_TO"] = -1; } // fields $arFields = array( "ID" => $id, 'CAL_TYPE' => $calType, 'OWNER_ID' => $ownerId, 'CREATED_BY' => $userId, 'DT_FROM_TS' => $arData['EventDate'], 'DT_TO_TS' => $arData['EndDate'], 'DT_SKIP_TIME' => $skipTime, // "DT_FROM" => $arData["DT_FROM"], // "DT_TO" => $arData["DT_TO"], 'NAME' => $arData['Title'], 'DESCRIPTION' => CCalendar::ParseHTMLToBB($arData['Description']), 'SECTIONS' => array($arSection['ID']), 'ACCESSIBILITY' => $arStatusValues[$arData['MetaInfo_BusyStatus']], 'IMPORTANCE' => $arPriorityValues[$arData['MetaInfo_Priority']], 'RRULE' => $arData['RRULE'], 'LOCATION' => CCalendar::UnParseTextLocation($arData['Location']) ); if (isset($arData['DT_LENGTH']) && $arData['DT_LENGTH'] > 0) $arFields['DT_LENGTH'] = $arData['DT_LENGTH']; $EventID = CCalendar::SaveEvent( array( 'arFields' => $arFields, 'fromWebservice' => true ) ); if ($EventID) { // dirty hack $arReplicationIDs[$EventID] = $arData['MetaInfo_ReplicationID']; $arResponseRows[$EventID] = new CXMLCreator('Result'); $arResponseRows[$EventID]->setAttribute('ID', $obMethod->getAttribute('ID').','.$arData['_command']); $arResponseRows[$EventID]->setAttribute('List', $listName); $arResponseRows[$EventID]->addChild($obNode = new CXMLCreator('ErrorCode')); $obNode->setData('0x00000000'); //$arResponseRows[$EventID]->setAttribute('Version', 3); } } } $userId = (is_object($USER) && $USER->GetID()) ? $USER->GetID() : 1; $fetchMeetings = CCalendar::GetMeetingSection($userId) == $arSection['ID']; $arEvents = CCalendarEvent::GetList( array( 'arFilter' => array( 'CAL_TYPE' => $calType, 'OWNER_ID' => $ownerId, 'SECTION' => $arSection['ID'], //'INCLUDE_INVITINGS' => 'N' ), 'getUserfields' => false, 'parseRecursion' => false, 'fetchAttendees' => false, 'fetchMeetings' => $fetchMeetings, 'userId' => $userId ) ); foreach ($arEvents as $key => $event) { if ($arResponseRows[$event['ID']]) { $obRow = $this->__getRow($event, $listName, $last_change = 0); $obRow->setAttribute('xmlns:z', "#RowsetSchema"); if ($arReplicationIDs[$event['ID']]) $obRow->setAttribute('MetaInfo_ReplicationID', $arReplicationIDs[$event['ID']]); $arResponseRows[$event['ID']]->addChild($obRow); } $obResponse->addChild($arResponseRows[$event['ID']]); } return array('UpdateListItemsResult' => $obResponse); }
if ($EXTERNAL == "E" && strlen($site) > 0 && !CExtranet::IsIntranetUser()) { $arUsersInMyGroupsID = CExtranet::GetMyGroupsUsers($site); $arPublicUsersID = CExtranet::GetPublicUsers(); $arUsersToFilter = array_merge($arUsersInMyGroupsID, $arPublicUsersID); } elseif ($EXTERNAL == "EA" && $GLOBALS["APPLICATION"]->GetGroupRight("socialnetwork", false, "Y", "Y", array($site, false)) >= "K") { $arExtranetUsersID = CExtranet::GetExtranetGroupUsers(); $arIntranetUsersID = CExtranet::GetIntranetUsers(); $arUsersToFilter = array_diff($arExtranetUsersID, $arIntranetUsersID); } elseif ($EXTERNAL == "EA") { $arUsersInMyGroupsID = CExtranet::GetMyGroupsUsers($site); $arIntranetUsersID = CExtranet::GetIntranetUsers(); $arUsersToFilter = array_diff($arUsersInMyGroupsID, $arIntranetUsersID); } elseif ($EXTERNAL == 'I' && CModule::IncludeModule('extranet') && CExtranet::IsIntranetUser($site)) { $arUsersToFilter = CExtranet::GetIntranetUsers(); } elseif (intval($group_id) > 0) { $arSonetGroup = CSocNetGroup::GetByID($group_id); if (!$arSonetGroup) { require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/epilog_after.php"; die; } elseif (IsModuleInstalled("extranet")) { // check if current user is a member of extranet workgroup if (CModule::IncludeModule("extranet") && CExtranet::IsExtranetSite($arSonetGroup["SITE_ID"]) && !CSocNetUser::IsCurrentUserModuleAdmin($arSonetGroup["SITE_ID"])) { $dbRequests = CSocNetUserToGroup::GetList(array(), array("GROUP_ID" => $group_id, "USER_ID" => $GLOBALS["USER"]->GetID(), "<=ROLE" => SONET_ROLES_USER), false, false, array("ID")); if ($dbRequests) { if (!($arRequests = $dbRequests->Fetch())) { require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/epilog_after.php"; die; } } } }
$arCatTmp["urlToCategory"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_SEARCH_TAG"], array("tag" => urlencode($arCatTmp["NAME"]))); $arResult["Category"][] = $arCatTmp; } } $bAll = false; $arResult["Post"]["SPERM"] = array(); if ($arPost["HAS_SOCNET_ALL"] != "Y") { $arSPERM = CBlogPost::GetSocnetPermsName($arResult["Post"]["ID"]); foreach ($arSPERM as $type => $v) { foreach ($v as $vv) { $name = ""; $link = ""; $id = ""; $isExtranet = false; if ($type == "SG") { if ($arSocNetGroup = CSocNetGroup::GetByID($vv["ENTITY_ID"])) { $name = $arSocNetGroup["NAME"]; $link = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $vv["ENTITY_ID"])); $groupSiteID = false; $rsGroupSite = CSocNetGroup::GetSite($vv["ENTITY_ID"]); while ($arGroupSite = $rsGroupSite->Fetch()) { if (!$arResult["bExtranetInstalled"] || $arGroupSite["LID"] != CExtranet::GetExtranetSiteID()) { $groupSiteID = $arGroupSite["LID"]; break; } } if ($groupSiteID) { $arTmp = CSocNetLogTools::ProcessPath(array("GROUP_URL" => $link), $user_id, $groupSiteID); // user_id is not important parameter $link = strlen($arTmp["URLS"]["GROUP_URL"]) > 0 ? $arTmp["SERVER_NAME"] . $arTmp["URLS"]["GROUP_URL"] : $link; }
<input type="file" name="task-attachments[]" size="1" multiple="multiple" id="task-upload" /> </div> </div> </div> <?php if (sizeof($arResult["GROUPS"]) > 0) { ?> <?php $name = $APPLICATION->IncludeComponent("bitrix:socialnetwork.group.selector", ".default", array("BIND_ELEMENT" => "task-sonet-group-selector", "ON_SELECT" => "onGroupSelect", "FEATURES_PERMS" => array("tasks", "create_tasks"), "SELECTED" => $arData["GROUP_ID"] ? $arData["GROUP_ID"] : 0), null, array("HIDE_ICONS" => "Y")); ?> <div class="webform-row task-group-row"> <a href="" id="task-sonet-group-selector" class="webform-field-action-link"><?php echo GetMessage("TASKS_TASK_GROUP"); if ($arData["GROUP_ID"]) { $arGroup = CSocNetGroup::GetByID($arData["GROUP_ID"]); echo ": " . $arGroup["NAME"]; } ?> </a> <?php if ($arData["GROUP_ID"]) { ?> <input type="hidden" name="GROUP_ID" value="<?php echo $arGroup["ID"]; ?> " /><span class="task-group-delete" onclick="deleteGroup(<?php echo $arGroup["ID"]; ?> )"></span><?php }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("socialnetwork")) { return false; } if (intval($arGadgetParams["ID"]) <= 0) { return false; } if (!array_key_exists("NAME", $arGadgetParams) || !array_key_exists("DESCRIPTION", $arGadgetParams) || !array_key_exists("CLOSED", $arGadgetParams) || !array_key_exists("OPENED", $arGadgetParams) || !array_key_exists("VISIBLE", $arGadgetParams) || !array_key_exists("SUBJECT_NAME", $arGadgetParams) || !array_key_exists("DATE_CREATE", $arGadgetParams) || !array_key_exists("NUMBER_OF_MEMBERS", $arGadgetParams)) { $arGadgetParams = CSocNetGroup::GetByID($arGadgetParams["ID"]); } $arGadgetParams["NAME"] = isset($arGadgetParams["NAME"]) ? $arGadgetParams["NAME"] : ""; $arGadgetParams["DESCRIPTION"] = isset($arGadgetParams["DESCRIPTION"]) ? $arGadgetParams["DESCRIPTION"] : ""; $arGadgetParams["CLOSED"] = isset($arGadgetParams["CLOSED"]) ? $arGadgetParams["CLOSED"] : "N"; $arGadgetParams["OPENED"] = isset($arGadgetParams["OPENED"]) ? $arGadgetParams["OPENED"] : "Y"; $arGadgetParams["VISIBLE"] = isset($arGadgetParams["VISIBLE"]) ? $arGadgetParams["VISIBLE"] : "Y"; $arGadgetParams["SUBJECT_NAME"] = isset($arGadgetParams["SUBJECT_NAME"]) ? $arGadgetParams["SUBJECT_NAME"] : ""; $arGadgetParams["DATE_CREATE"] = isset($arGadgetParams["DATE_CREATE"]) ? $arGadgetParams["DATE_CREATE"] : ""; $arGadgetParams["NUMBER_OF_MEMBERS"] = isset($arGadgetParams["NUMBER_OF_MEMBERS"]) ? $arGadgetParams["NUMBER_OF_MEMBERS"] : ""; ?> <h4><?php echo $arGadgetParams["NAME"]; ?> </h4> <table width="100%" cellspacing="2" cellpadding="2"> <?php if ($arGadgetParams["CLOSED"] == "Y") { ?>
/** * <p>Метод проверяет доступ пользователя.</p> * * * * * @param string $access Тип проверяемого доступа (view, write, delete) * * * * @return bool * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/wiki/classes/cwikiutils/IsReadable.php">CWikiUtils::isReadable</a> * </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/wiki/classes/cwikiutils/IsWriteable.php">CWikiUtils::isWriteable</a> </li> <li> * <a href="http://dev.1c-bitrix.ru/api_help/wiki/classes/cwikiutils/IsDeleteable.php">CWikiUtils::IsDeleteable</a> </li> * <li> <a href="http://dev.1c-bitrix.ru/api_help/wiki/classes/cwikiutils/IsAllowHTML.php">CWikiUtils::isAllowHTML</a> * </li> </ul><br><br> * * * @static * @link http://dev.1c-bitrix.ru/api_help/wiki/classes/cwikiutils/CheckAccess.php * @author Bitrix */ static function CheckAccess($access = 'view') { global $APPLICATION, $USER, $arParams; if ($USER->IsAdmin()) { return true; } if (CWikiSocnet::IsSocNet()) { $arSonetGroup = CSocNetGroup::GetByID($iSocNetId); if ($arSonetGroup && CSocNetUser::IsCurrentUserModuleAdmin($arSonetGroup['SITE_ID'])) { return true; } if (!CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_GROUP, CWikiSocnet::$iSocNetId, 'wiki', $access)) { return false; } return true; } else { $letter = 'R'; $letterI = 'R'; switch ($access) { case 'write': $letter = 'W'; $letterI = 'W'; break; case 'delete': $letter = 'Y'; $letterI = 'W'; break; case 'perm': $letter = 'Z'; $letterI = 'X'; break; } $wikiModulePermission = $APPLICATION->GetGroupRight('wiki'); $iblockPermission = CIBlock::GetPermission($arParams['IBLOCK_ID']); return $wikiModulePermission >= $letter && $iblockPermission >= $letterI; } }
public static function InitGroupTmp($groupID, $arParams, $bRSS = false) { $title = ""; $message = ""; $arGroup = CSocNetGroup::GetByID($groupID); if ($arGroup) { $pu = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arGroup["ID"])); if (!$bRSS) $title .= "<a href=\"".$pu."\">"; $title .= $arGroup["NAME"]; if (!$bRSS) $title .= "</a>"; if (intval($arGroup["IMAGE_ID"]) <= 0) $arGroup["IMAGE_ID"] = COption::GetOptionInt("socialnetwork", "default_group_picture", false, SITE_ID); $arImage = CSocNetTools::InitImage($arGroup["IMAGE_ID"], 100, "/bitrix/images/socialnetwork/nopic_group_100.gif", 100, $pu, true); $message = $arImage["IMG"]; } return array($title, $message); }
function Delete($ID) { global $DB; if (!CSocNetGroup::__ValidateID($ID)) { return false; } $ID = IntVal($ID); $bSuccess = True; $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetGroupDelete"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { return false; } } $arGroup = CSocNetGroup::GetByID($ID); if (!$arGroup) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_NO_GROUP"), "ERROR_NO_GROUP"); return false; } $DB->StartTransaction(); $events = GetModuleEvents("socialnetwork", "OnSocNetGroupDelete"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID)); } if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sonet_user2group WHERE GROUP_ID = " . $ID . "", true); } if ($bSuccess) { $bSuccessTmp = true; $dbResult = CSocNetFeatures::GetList(array(), array("ENTITY_ID" => $ID, "ENTITY_TYPE" => SONET_ENTITY_GROUP)); while ($arResult = $dbResult->Fetch()) { $bSuccessTmp = $DB->Query("DELETE FROM b_sonet_features2perms WHERE FEATURE_ID = " . $arResult["ID"] . "", true); if (!$bSuccessTmp) { break; } } if (!$bSuccessTmp) { $bSuccess = false; } } if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sonet_features WHERE ENTITY_ID = " . $ID . " AND ENTITY_TYPE = '" . $DB->ForSql(SONET_ENTITY_GROUP, 1) . "'", true); } if ($bSuccess) { $dbResult = CSocNetLog::GetList(array(), array("ENTITY_ID" => $ID, "ENTITY_TYPE" => SONET_ENTITY_GROUP), false, false, array("ID")); while ($arResult = $dbResult->Fetch()) { $bSuccessTmp = $DB->Query("DELETE FROM b_sonet_log_site WHERE LOG_ID = " . $arResult["ID"] . "", true); if (!$bSuccessTmp) { break; } $bSuccessTmp = $DB->Query("DELETE FROM b_sonet_log_right WHERE LOG_ID = " . $arResult["ID"] . "", true); if (!$bSuccessTmp) { break; } } if (!$bSuccessTmp) { $bSuccess = false; } } if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sonet_log WHERE ENTITY_TYPE = '" . SONET_ENTITY_GROUP . "' AND ENTITY_ID = " . $ID . "", true); } if ($bSuccess) { $bSuccess = CSocNetLog::DeleteSystemEventsByGroupID($ID); } if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sonet_log_events WHERE ENTITY_TYPE = 'G' AND ENTITY_ID = " . $ID . "", true); } if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sonet_group_site WHERE GROUP_ID = " . $ID . "", true); } if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sonet_log_right WHERE GROUP_CODE LIKE 'SG" . $ID . "\\_%' OR GROUP_CODE = 'SG" . $ID . "'", true); } if ($bSuccess) { $bSuccess = CSocNetSubscription::DeleteEx(false, "SG" . $ID); } if ($bSuccess) { CFile::Delete($arGroup["IMAGE_ID"]); $bSuccess = $DB->Query("DELETE FROM b_sonet_group WHERE ID = " . $ID . "", true); } if ($bSuccess) { CUserOptions::DeleteOption("socialnetwork", "~menu_" . SONET_ENTITY_GROUP . "_" . $ID, false, 0); unset($GLOBALS["SONET_GROUP_CACHE"][$ID]); } if ($bSuccess) { $DB->Commit(); } else { $DB->Rollback(); } if ($bSuccess) { unset($GLOBALS["SONET_GROUP_CACHE"][$ID]); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_G" . $ID); $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group"); $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_group_" . $ID); $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_group"); } } if ($bSuccess && CModule::IncludeModule("search")) { CSearch::DeleteIndex("socialnetwork", "G" . $ID); } if ($bSuccess) { $DB->Query("DELETE FROM b_sonet_event_user_view WHERE ENTITY_TYPE = '" . SONET_ENTITY_GROUP . "' AND ENTITY_ID = " . $ID, true); } if ($bSuccess) { $GLOBALS["USER_FIELD_MANAGER"]->Delete("SONET_GROUP", $ID); } return $bSuccess; }