%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/socialnetwork/classes/general/ |
Current File : //home/bitrix/www/bitrix/modules/socialnetwork/classes/general/group_subject.php |
<? IncludeModuleLangFile(__FILE__); class CAllSocNetGroupSubject { /***************************************/ /******** DATA MODIFICATION **********/ /***************************************/ public static function CheckFields($ACTION, &$arFields, $ID = 0) { global $APPLICATION; if ($ACTION != "ADD" && IntVal($ID) <= 0) { $APPLICATION->ThrowException("System error 870164", "ERROR"); return false; } if ((is_set($arFields, "SITE_ID") || $ACTION=="ADD") && ( (is_array($arFields["SITE_ID"]) && count($arFields["SITE_ID"]) <= 0) || (!is_array($arFields["SITE_ID"]) && strlen($arFields["SITE_ID"]) <= 0) ) ) { $APPLICATION->ThrowException(GetMessage("SONET_GS_EMPTY_SITE_ID"), "EMPTY_SITE_ID"); return false; } elseif (is_set($arFields, "SITE_ID")) { if(!is_array($arFields["SITE_ID"])) $arFields["SITE_ID"] = array($arFields["SITE_ID"]); foreach($arFields["SITE_ID"] as $v) { $dbResult = CSite::GetByID($v); if (!$dbResult->Fetch()) { $APPLICATION->ThrowException(str_replace("#ID#", $v, GetMessage("SONET_GS_ERROR_NO_SITE")), "ERROR_NO_SITE"); return false; } } } if ((is_set($arFields, "NAME") || $ACTION=="ADD") && strlen($arFields["NAME"]) <= 0) { $APPLICATION->ThrowException(GetMessage("SONET_GS_EMPTY_NAME"), "EMPTY_NAME"); return false; } if (is_set($arFields, "SORT") || $ACTION=="ADD") $arFields["SORT"] = (intVal($arFields["SORT"]) > 0 ? intVal($arFields["SORT"]) : 100); return True; } function Delete($ID) { global $DB, $CACHE_MANAGER, $APPLICATION; if (!CSocNetGroup::__ValidateID($ID)) return false; $ID = IntVal($ID); $bCanDelete = true; $dbResult = CSocNetGroup::GetList( array(), array("SUBJECT_ID" => $ID) ); if ($arResult = $dbResult->Fetch()) $bCanDelete = false; if (!$bCanDelete) { $APPLICATION->ThrowException(GetMessage("SONET_GS_NOT_EMPTY_SUBJECT"), "NOT_EMPTY_SUBJECT"); return false; } $bSuccess = $DB->Query("DELETE FROM b_sonet_group_subject_site WHERE SUBJECT_ID = ".$ID."", true); if ($bSuccess) $bSuccess = $DB->Query("DELETE FROM b_sonet_group_subject WHERE ID = ".$ID."", true); if (CACHED_b_sonet_group_subjects != false) $CACHE_MANAGER->CleanDir("b_sonet_group_subjects"); return $bSuccess; } public static function Update($ID, $arFields) { global $DB, $CACHE_MANAGER; if (!CSocNetGroup::__ValidateID($ID)) return false; $ID = IntVal($ID); $arFields1 = \Bitrix\Socialnetwork\Util::getEqualityFields($arFields); if (!CSocNetGroupSubject::CheckFields("UPDATE", $arFields, $ID)) return false; else { $arSiteID = Array(); if(is_set($arFields, "SITE_ID")) { if(is_array($arFields["SITE_ID"])) $arSiteID = $arFields["SITE_ID"]; else $arSiteID[] = $arFields["SITE_ID"]; $arFields["SITE_ID"] = false; $str_SiteID = "''"; foreach($arSiteID as $v) { $arFields["SITE_ID"] = $v; $str_SiteID .= ", '".$DB->ForSql($v)."'"; } } } $strUpdate = $DB->PrepareUpdate("b_sonet_group_subject", $arFields); \Bitrix\Socialnetwork\Util::processEqualityFieldsToUpdate($arFields1, $strUpdate); if (strlen($strUpdate) > 0) { $strSql = "UPDATE b_sonet_group_subject SET ". " ".$strUpdate." ". "WHERE ID = ".$ID." "; $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__); if(count($arSiteID)>0) { $strSql = "DELETE FROM b_sonet_group_subject_site WHERE SUBJECT_ID=".$ID; $DB->Query($strSql, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__); $strSql = "INSERT INTO b_sonet_group_subject_site(SUBJECT_ID, SITE_ID) ". "SELECT ".$ID.", LID ". "FROM b_lang ". "WHERE LID IN (".$str_SiteID.") "; $DB->Query($strSql, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__); } if (CACHED_b_sonet_group_subjects != false) $CACHE_MANAGER->CleanDir("b_sonet_group_subjects"); } else $ID = False; return $ID; } /***************************************/ /********** DATA SELECTION ***********/ /***************************************/ public static function GetByID($ID) { if (!CSocNetGroup::__ValidateID($ID)) return false; $ID = IntVal($ID); $dbResult = CSocNetGroupSubject::GetList(Array(), Array("ID" => $ID)); if ($arResult = $dbResult->GetNext()) return $arResult; return False; } public static function GetSite($subject_id) { global $DB; $strSql = "SELECT L.*, SGSS.* FROM b_sonet_group_subject_site SGSS, b_lang L WHERE L.LID=SGSS.SITE_ID AND SGSS.SUBJECT_ID=".IntVal($subject_id); return $DB->Query($strSql); } } ?>