1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
group_features_perms.php
См. документацию.
1<?
2require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/socialnetwork/classes/general/group_features_perms.php");
3
5{
6 /***************************************/
7 /******** DATA MODIFICATION **********/
8 /***************************************/
9 public static function Add($arFields)
10 {
11 global $DB, $CACHE_MANAGER;
12
14
16 {
17 return false;
18 }
19
20 $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetFeaturesPermsAdd");
21 while ($arEvent = $db_events->Fetch())
22 {
23 if (ExecuteModuleEventEx($arEvent, array($arFields)) === false)
24 {
25 return false;
26 }
27 }
28
29 $arInsert = $DB->PrepareInsert("b_sonet_features2perms", $arFields);
31
32 $ID = false;
33 if ($arInsert[0] <> '')
34 {
35 $strSql =
36 "INSERT INTO b_sonet_features2perms(".$arInsert[0].") ".
37 "VALUES(".$arInsert[1].")";
38 $DB->Query($strSql);
39
40 $ID = intval($DB->LastID());
41
42 $events = GetModuleEvents("socialnetwork", "OnSocNetFeaturesPermsAdd");
43 while ($arEvent = $events->Fetch())
44 {
46 }
47
48 if (
49 intval($arFields["FEATURE_ID"]) > 0
50 && defined("BX_COMP_MANAGED_CACHE")
51 )
52 {
53 $CACHE_MANAGER->ClearByTag('sonet_features2perms');
54 $CACHE_MANAGER->ClearByTag("sonet_feature_".$arFields["FEATURE_ID"]);
55 }
56 }
57
58 return $ID;
59 }
60
61
62 /***************************************/
63 /********** DATA SELECTION ***********/
64 /***************************************/
65 public static function GetList($arOrder = Array("ID" => "DESC"), $arFilter = Array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
66 {
67 global $DB;
68
69 if (count($arSelectFields) <= 0)
70 $arSelectFields = array("ID", "FEATURE_ID", "OPERATION_ID", "ROLE");
71
72 static $arFields = array(
73 "ID" => Array("FIELD" => "GFP.ID", "TYPE" => "int"),
74 "FEATURE_ID" => Array("FIELD" => "GFP.FEATURE_ID", "TYPE" => "int"),
75 "OPERATION_ID" => Array("FIELD" => "GFP.OPERATION_ID", "TYPE" => "string"),
76 "ROLE" => Array("FIELD" => "GFP.ROLE", "TYPE" => "string"),
77 "FEATURE_ENTITY_TYPE" => Array("FIELD" => "GF.ENTITY_TYPE", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_features GF ON (GFP.FEATURE_ID = GF.ID)"),
78 "FEATURE_ENTITY_ID" => Array("FIELD" => "GF.ENTITY_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_sonet_features GF ON (GFP.FEATURE_ID = GF.ID)"),
79 "FEATURE_FEATURE" => Array("FIELD" => "GF.FEATURE", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_features GF ON (GFP.FEATURE_ID = GF.ID)"),
80 "FEATURE_FEATURE_NAME" => Array("FIELD" => "GF.FEATURE_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_features GF ON (GFP.FEATURE_ID = GF.ID)"),
81 "FEATURE_ACTIVE" => Array("FIELD" => "GF.ACTIVE", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_features GF ON (GFP.FEATURE_ID = GF.ID)"),
82 );
83
84 $arSqls = CSocNetGroup::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
85
86 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
87
88 if (is_array($arGroupBy) && count($arGroupBy)==0)
89 {
90 $strSql =
91 "SELECT ".$arSqls["SELECT"]." ".
92 "FROM b_sonet_features2perms GFP ".
93 " ".$arSqls["FROM"]." ";
94 if ($arSqls["WHERE"] <> '')
95 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
96 if ($arSqls["GROUPBY"] <> '')
97 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
98
99 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
100
101 $dbRes = $DB->Query($strSql);
102 if ($arRes = $dbRes->Fetch())
103 return $arRes["CNT"];
104 else
105 return False;
106 }
107
108
109 $strSql =
110 "SELECT ".$arSqls["SELECT"]." ".
111 "FROM b_sonet_features2perms GFP ".
112 " ".$arSqls["FROM"]." ";
113 if ($arSqls["WHERE"] <> '')
114 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
115 if ($arSqls["GROUPBY"] <> '')
116 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
117 if ($arSqls["ORDERBY"] <> '')
118 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
119
120 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) <= 0)
121 {
122 $strSql_tmp =
123 "SELECT COUNT('x') as CNT ".
124 "FROM b_sonet_features2perms GFP ".
125 " ".$arSqls["FROM"]." ";
126 if ($arSqls["WHERE"] <> '')
127 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
128 if ($arSqls["GROUPBY"] <> '')
129 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
130
131 //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
132
133 $dbRes = $DB->Query($strSql_tmp);
134 $cnt = 0;
135 if ($arSqls["GROUPBY"] == '')
136 {
137 if ($arRes = $dbRes->Fetch())
138 $cnt = $arRes["CNT"];
139 }
140 else
141 {
142 // ТОЛЬКО ДЛЯ MYSQL!!! ДЛЯ ORACLE ДРУГОЙ КОД
143 $cnt = $dbRes->SelectedRowsCount();
144 }
145
146 $dbRes = new CDBResult();
147
148 //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
149
150 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
151 }
152 else
153 {
154 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) > 0)
155 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
156
157 //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
158
159 $dbRes = $DB->Query($strSql);
160 }
161
162 return $dbRes;
163 }
164
165 function GetAvaibleEntity($entityType, $feature, $role, $operation, $active, $visible, $siteID)
166 {
167 global $DB;
168
169 if($entityType == '' || $role == '' || $operation == '')
170 return false;
171 if($entityType == '')
172 $entityType = "G";
173 if($active == '')
174 $active = "Y";
175 if($visible == '')
176 $visible = "Y";
177 if($siteID == '')
178 $siteID = SITE_ID;
179
180 $strSql = "select b.ID as ID,
181 b.ENTITY_TYPE as ENTITY_TYPE,
182 b.ENTITY_ID as ENTITY_ID,
183 b.FEATURE as FEATURE,
184 b.ACTIVE as FEATURE_ACTIVE,
185 p.OPERATION_ID as OPERATION_ID,
186 p.ROLE as ROLE ";
187 if($entityType == "G")
188 $strSql .= ", g.SITE_ID as GROUP_SITE_ID,
189 g.NAME as GROUP_NAME,
190 g.VISIBLE as GROUP_VISIBLE,
191 g.OWNER_ID as GROUP_OWNER_ID ";
192 $strSql .= " from b_sonet_features b ".
193 "LEFT JOIN b_sonet_features2perms p ON (b.ID = p.FEATURE_ID AND ".
194 "p.ROLE = '".$DB->ForSQL($role)."' AND p.OPERATION_ID = '".$DB->ForSQL($operation)."') ";
195 if($entityType == "G")
196 $strSql .= "INNER JOIN b_sonet_group g ON (g.ID = b.ENTITY_ID) ";
197 $strSql .= "WHERE ".
198 "b.FEATURE='".$DB->ForSQL($feature)."' AND ".
199 "b.ACTIVE = '".$DB->ForSQL($active)."' AND ".
200 "b.ENTITY_TYPE = '".$DB->ForSQL($entityType)."' ";
201
202 if($entityType == "G")
203 $strSql .= " AND g.ACTIVE = 'Y' AND ".
204 "g.VISIBLE= 'Y' AND ".
205 "g.SITE_ID= '".$DB->ForSQL($siteID)."'";
206
207 $dbRes = $DB->Query($strSql);
208 return $dbRes;
209 }
210}
static getEqualityFields(&$fields)
Определения util.php:207
static processEqualityFieldsToInsert($fields1, &$insert)
Определения util.php:222
static CheckFields($ACTION, &$arFields, $ID=0)
Определения group_features_perms.php:16
static Add($arFields)
Определения group_features_perms.php:9
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения group_features_perms.php:65
GetAvaibleEntity($entityType, $feature, $role, $operation, $active, $visible, $siteID)
Определения group_features_perms.php:165
global $CACHE_MANAGER
Определения clear_component_cache.php:7
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
if($ajaxMode) $ID
Определения get_user.php:27
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
$siteID
Определения cron_frame.php:12
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$arRes
Определения options.php:104
const SITE_ID
Определения sonet_set_content_view.php:12
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168