10 $arConfigs[
"USER"][
"CONDITION_CONFIG"][] = [
12 "NAME" =>
GetMessage(
'PP_USER_CONDITION_RATING_NAME'),
13 "DESC" =>
GetMessage(
'PP_USER_CONDITION_RATING_DESC'),
14 "REFRESH_TIME" =>
'3600',
15 "CLASS" =>
'CRatingRulesMain',
16 "METHOD" =>
'ratingCheck',
19 "TYPE" =>
'SELECT_CLASS',
21 "NAME" =>
GetMessage(
'PP_USER_CONDITION_RATING_RATING_ID'),
23 "CLASS" =>
'CRatings',
24 "METHOD" =>
'GetList',
25 "PARAMS" => [[
"ID" =>
"ASC"], [
"ACTIVE" =>
"Y",
"ENTITY_ID" =>
"USER"]],
27 "FIELD_VALUE" =>
'NAME',
30 "TYPE" =>
'SELECT_ARRAY_WITH_INPUT',
31 "ID" =>
'RATING_CONDITION',
32 "ID_INPUT" =>
'RATING_VALUE',
33 "NAME" =>
GetMessage(
'PP_USER_CONDITION_RATING_RATING_CONDITION'),
35 "DEFAULT_INPUT" =>
'500',
36 "PARAMS" => [
'1' =>
GetMessage(
'PP_USER_CONDITION_RATING_RATING_CONDITION_1'),
37 '2' =>
GetMessage(
'PP_USER_CONDITION_RATING_RATING_CONDITION_2')],
42 $arConfigs[
"USER"][
"CONDITION_CONFIG"][] = [
43 "ID" =>
'RATING_INTERVAL',
44 "NAME" =>
GetMessage(
'PP_USER_CONDITION_RATING_INTERVAL_NAME'),
45 "DESC" =>
GetMessage(
'PP_USER_CONDITION_RATING_INTERVAL_DESC'),
46 "REFRESH_TIME" =>
'3600',
47 "CLASS" =>
'CRatingRulesMain',
48 "METHOD" =>
'ratingCheckInterval',
51 "TYPE" =>
'SELECT_CLASS',
53 "NAME" =>
GetMessage(
'PP_USER_CONDITION_RATING_RATING_ID'),
55 "CLASS" =>
'CRatings',
56 "METHOD" =>
'GetList',
57 "PARAMS" => [[
"ID" =>
"ASC"], [
"ACTIVE" =>
"Y",
"ENTITY_ID" =>
"USER"]],
59 "FIELD_VALUE" =>
'NAME',
62 "TYPE" =>
'INPUT_INTERVAL',
63 "ID" =>
'RATING_VALUE_FROM',
64 "ID_2" =>
'RATING_VALUE_TO',
65 "NAME" =>
GetMessage(
'PP_USER_CONDITION_RATING_INTERVAL'),
72 $arConfigs[
"USER"][
"CONDITION_CONFIG"][] = [
74 "NAME" =>
GetMessage(
'PP_USER_CONDITION_AUTHORITY_NAME'),
75 "DESC" => (COption::GetOptionString(
"main",
"rating_weight_type",
"auto") ==
"auto" ?
GetMessage(
'PP_USER_CONDITION_AUTHORITY_AUTO_DESC') :
GetMessage(
'PP_USER_CONDITION_AUTHORITY_DESC')),
76 "REFRESH_TIME" =>
'3600',
77 "CLASS" =>
'CRatingRulesMain',
78 "METHOD" =>
'ratingCheck',
81 "TYPE" =>
'SELECT_ARRAY_WITH_INPUT',
82 "ID" =>
'RATING_CONDITION',
83 "ID_INPUT" =>
'RATING_VALUE',
84 "NAME" => (COption::GetOptionString(
"main",
"rating_weight_type",
"auto") ==
"auto" ?
GetMessage(
'PP_USER_CONDITION_AUTHORITY_RATING_CONDITION_AUTO') :
GetMessage(
'PP_USER_CONDITION_AUTHORITY_RATING_CONDITION')),
86 "DEFAULT_INPUT" =>
'1',
87 "PARAMS" => [
'1' =>
GetMessage(
'PP_USER_CONDITION_RATING_RATING_CONDITION_1'),
88 '2' =>
GetMessage(
'PP_USER_CONDITION_RATING_RATING_CONDITION_2')],
93 $arConfigs[
"USER"][
"CONDITION_CONFIG"][] = [
94 "ID" =>
'AUTHORITY_INTERVAL',
95 "NAME" =>
GetMessage(
'PP_USER_CONDITION_AUTHORITY_INTERVAL_NAME'),
96 "DESC" => (COption::GetOptionString(
"main",
"rating_weight_type",
"auto") ==
"auto" ?
GetMessage(
'PP_USER_CONDITION_AUTHORITY_INTERVAL_AUTO_DESC') :
GetMessage(
'PP_USER_CONDITION_AUTHORITY_INTERVAL_DESC')),
97 "REFRESH_TIME" =>
'3600',
98 "CLASS" =>
'CRatingRulesMain',
99 "METHOD" =>
'ratingCheckInterval',
102 "TYPE" =>
'INPUT_INTERVAL',
103 "ID" =>
'RATING_VALUE_FROM',
104 "ID_2" =>
'RATING_VALUE_TO',
105 "NAME" => (COption::GetOptionString(
"main",
"rating_weight_type",
"auto") ==
"auto" ?
GetMessage(
'PP_USER_CONDITION_AUTHORITY_INTERVAL_AUTO') :
GetMessage(
'PP_USER_CONDITION_AUTHORITY_INTERVAL')),
112 $arConfigs[
"USER"][
"CONDITION_CONFIG"][] = [
114 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_NAME'),
116 "REFRESH_TIME" =>
'86400',
117 "CLASS" =>
'CRatingRulesMain',
118 "METHOD" =>
'voteCheck',
122 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_TEXT'),
126 "ID" =>
'VOTE_LIMIT',
127 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_LIMIT'),
128 "NAME_DESC" =>
GetMessage(
'PP_USER_CONDITION_VOTE_LIMIT_DESC'),
134 "ID" =>
'VOTE_RESULT',
135 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_RESULT'),
140 "TYPE" =>
'SEPARATOR',
141 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_SEPARATOR'),
145 "ID" =>
'VOTE_FORUM_TOPIC',
146 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_FT'),
152 "ID" =>
'VOTE_FORUM_POST',
153 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_FP'),
159 "ID" =>
'VOTE_BLOG_POST',
160 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_BP'),
166 "ID" =>
'VOTE_BLOG_COMMENT',
167 "NAME" =>
GetMessage(
'PP_USER_CONDITION_VOTE_BC'),
172 'HIDE_ACTION' =>
true,
175 $arConfigs[
"USER"][
"ACTION_CONFIG"][] = [
176 "ID" =>
'ADD_TO_GROUP',
177 "NAME" =>
GetMessage(
'PP_USER_ACTION_ADD_TO_GROUP'),
178 "DESC" =>
GetMessage(
'PP_USER_ACTION_ADD_TO_GROUP_DESC'),
179 "CLASS" =>
'CRatingRulesMain',
180 "METHOD" =>
'addToGroup',
184 "NAME" =>
GetMessage(
'PP_USER_ACTION_CHANGE_GROUP_GROUP_ID'),
186 "TYPE" =>
'SELECT_CLASS',
188 "METHOD" =>
'GetList',
189 "PARAMS" => [
'ID',
'DESC', []],
191 "FIELD_VALUE" =>
'NAME',
197 $arConfigs[
"USER"][
"ACTION_CONFIG"][] = [
198 "ID" =>
'REMOVE_FROM_GROUP',
199 "NAME" =>
GetMessage(
'PP_USER_ACTION_REMOVE_FROM_GROUP'),
200 "DESC" =>
GetMessage(
'PP_USER_ACTION_REMOVE_FROM_GROUP_DESC'),
201 "CLASS" =>
'CRatingRulesMain',
202 "METHOD" =>
'removeFromGroup',
206 "NAME" =>
GetMessage(
'PP_USER_ACTION_CHANGE_GROUP_GROUP_ID'),
208 "TYPE" =>
'SELECT_CLASS',
210 "METHOD" =>
'GetList',
211 "PARAMS" => [
'ID',
'ASC', []],
213 "FIELD_VALUE" =>
'NAME',
218 $arConfigs[
"USER"][
"ACTION_CONFIG"][] = [
220 "NAME" =>
GetMessage(
'PP_USER_ACTION_CHANGE_UF'),
221 "DESC" =>
GetMessage(
'PP_USER_ACTION_CHANGE_UF_DESC'),
222 "CLASS" =>
'CRatingRulesMain',
223 "METHOD" =>
'changeUF',
227 "NAME" =>
GetMessage(
'PP_USER_ACTION_CHANGE_UF_ID'),
229 "TYPE" =>
'SELECT_CLASS_ARRAY',
230 "CLASS" =>
'CRatingRulesMain',
231 "METHOD" =>
'GetUfList',
234 "FIELD_VALUE" =>
'NAME',
238 "NAME" =>
GetMessage(
'PP_USER_ACTION_CHANGE_UF_VALUE'),
250 $ruleId = intval($arConfigs[
'ID']);
251 if (isset($arConfigs[
'CONDITION_CONFIG'][
'RATING']))
253 $ratingValue = intval($arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_VALUE']);
254 $ratingCondition = ($arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_CONDITION'] == 1 ?
'>=' :
'<');
255 $ratingId = intval($arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_ID']);
259 $ratingVoteWeight = COption::GetOptionString(
"main",
"rating_vote_weight", 1);
260 $ratingValue = intval($arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY'][
'RATING_VALUE']) * $ratingVoteWeight;
261 $ratingCondition = ($arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY'][
'RATING_CONDITION'] == 1 ?
'>=' :
'<');
265 $strSql =
"INSERT INTO b_rating_rule_vetting (RULE_ID, ENTITY_TYPE_ID, ENTITY_ID)
267 '$ruleId' as RULE_ID,
268 rr.ENTITY_TYPE_ID as ENTITY_TYPE_ID,
269 rr.ENTITY_ID as ENTITY_ID
270 FROM b_rating_results rr
271 WHERE rr.RATING_ID = $ratingId
272 AND rr.CURRENT_VALUE $ratingCondition $ratingValue";
283 $ruleId = intval($arConfigs[
'ID']);
284 if (isset($arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL']))
286 $ratingValueFrom = intval($arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_VALUE_FROM']);
287 $ratingValueTo = intval($arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_VALUE_TO']);
288 $ratingId = intval($arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_ID']);
292 $ratingVoteWeight = COption::GetOptionString(
"main",
"rating_vote_weight", 1);
293 $ratingValueFrom = intval($arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL'][
'RATING_VALUE_FROM']) * $ratingVoteWeight;
294 $ratingValueTo = intval($arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL'][
'RATING_VALUE_TO']) * $ratingVoteWeight;
298 $strSql =
"INSERT INTO b_rating_rule_vetting (RULE_ID, ENTITY_TYPE_ID, ENTITY_ID)
300 '$ruleId' as RULE_ID,
301 rr.ENTITY_TYPE_ID as ENTITY_TYPE_ID,
302 rr.ENTITY_ID as ENTITY_ID
303 FROM b_rating_results rr
304 WHERE rr.RATING_ID = $ratingId
305 AND rr.CURRENT_VALUE BETWEEN $ratingValueFrom AND $ratingValueTo";
315 $ruleId = intval($arConfigs[
'ID']);
316 $groupId = intval($arConfigs[
'ACTION_CONFIG'][
'ADD_TO_GROUP'][
'GROUP_ID']);
317 $entityTypeId =
$DB->ForSql($arConfigs[
'ENTITY_TYPE_ID']);
322 FROM b_rating_rule_vetting prv
324 prv.RULE_ID = $ruleId
325 AND prv.ENTITY_TYPE_ID = '$entityTypeId'
326 AND prv.ENTITY_ID NOT IN (
327 SELECT ug.USER_ID FROM b_user_group ug WHERE ug.GROUP_ID = $groupId
329 AND prv.APPLIED = 'N'
330 GROUP BY prv.ENTITY_ID
334 while ($user =
$res->Fetch())
336 CUser::AppendUserGroup($user[
'ENTITY_ID'], [$groupId]);
348 $ruleId = intval($arConfigs[
'ID']);
349 $groupId = intval($arConfigs[
'ACTION_CONFIG'][
'REMOVE_FROM_GROUP'][
'GROUP_ID']);
350 $entityTypeId =
$DB->ForSql($arConfigs[
'ENTITY_TYPE_ID']);
355 FROM b_rating_rule_vetting prv
357 prv.RULE_ID = $ruleId
358 and prv.ENTITY_TYPE_ID = '$entityTypeId'
359 and prv.ENTITY_ID IN (
360 SELECT ug.USER_ID FROM b_user_group ug WHERE ug.GROUP_ID = $groupId
362 and prv.APPLIED = 'N'
363 GROUP BY prv.ENTITY_ID
367 while ($user =
$res->Fetch())
369 CUser::RemoveUserGroup($user[
'ENTITY_ID'], [$groupId]);
380 $rsData = CUserTypeEntity::GetList([], [
'ENTITY_ID' =>
'USER',
'LANG' => LANG]);
383 if (
$arRes[
'MULTIPLE'] ==
'N' && in_array(
$arRes[
'USER_TYPE_ID'], [
'integer',
'string_formatted',
'string',
'double']))
395 $ruleId = intval($arConfigs[
'ID']);
396 $entityTypeId =
$DB->ForSql($arConfigs[
'ENTITY_TYPE_ID']);
397 $userFieldId =
$DB->ForSql($arConfigs[
'ACTION_CONFIG'][
'CHANGE_UF'][
'UF_ID']);
398 $userFieldValue =
$DB->ForSql($arConfigs[
'ACTION_CONFIG'][
'CHANGE_UF'][
'UF_VALUE']);
399 if (!empty($userFieldId))
401 $strSql =
"UPDATE b_uts_user uts SET uts.$userFieldId = '$userFieldValue'
402 WHERE uts.VALUE_ID IN (
404 FROM b_rating_rule_vetting prv
406 prv.RULE_ID = $ruleId
407 AND prv.ENTITY_TYPE_ID = '$entityTypeId'
408 AND prv.APPLIED = 'N'
412 $strSql =
"INSERT INTO b_uts_user (VALUE_ID, $userFieldId)
413 SELECT prv.ENTITY_ID, '$userFieldValue' as UF_VALUE
414 FROM b_rating_rule_vetting prv
416 prv.RULE_ID = $ruleId
417 and prv.ENTITY_TYPE_ID = '$entityTypeId'
418 and prv.ENTITY_ID NOT IN (
419 SELECT uf.VALUE_ID FROM b_uts_user uf
421 and prv.APPLIED = 'N'
436 foreach ($arRatingRulesConfigs as $SupportType => $value)
438 $arSupportType[] = $SupportType;
441 return $arSupportType;
467 if (isset($arConfigs[
'CONDITION_CONFIG'][
'RATING']))
469 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_ID']))
471 $arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_ID'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'RATING'][
'RATING_ID'][
'DEFAULT'];
473 if (!in_array($arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_CONDITION'], [1, 2]))
475 $arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_CONDITION'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'RATING'][
'RATING_CONDITION'][
'DEFAULT'];
477 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_VALUE']))
479 $arConfigs[
'CONDITION_CONFIG'][
'RATING'][
'RATING_VALUE'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'RATING'][
'RATING_CONDITION'][
'DEFAULT_INPUT'];
482 if (isset($arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL']))
484 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_ID']))
486 $arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_ID'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_ID'][
'DEFAULT'];
488 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_VALUE_FROM']))
490 $arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_VALUE_FROM'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_VALUE_FROM'][
'DEFAULT'];
492 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_VALUE_TO']))
494 $arConfigs[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_VALUE_TO'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'RATING_INTERVAL'][
'RATING_VALUE_FROM'][
'DEFAULT_2'];
497 if (isset($arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY']))
499 if (!in_array($arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY'][
'RATING_CONDITION'], [1, 2]))
501 $arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY'][
'RATING_CONDITION'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'AUTHORITY'][
'RATING_CONDITION'][
'DEFAULT'];
503 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY'][
'RATING_VALUE']))
505 $arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY'][
'RATING_VALUE'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'AUTHORITY'][
'RATING_CONDITION'][
'DEFAULT_INPUT'];
508 if (isset($arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL']))
510 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL'][
'RATING_VALUE_FROM']))
512 $arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL'][
'RATING_VALUE_FROM'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL'][
'RATING_VALUE_FROM'][
'DEFAULT'];
514 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL'][
'RATING_VALUE_TO']))
516 $arConfigs[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL'][
'RATING_VALUE_TO'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'AUTHORITY_INTERVAL'][
'RATING_VALUE_FROM'][
'DEFAULT_2'];
519 if (isset($arConfigs[
'CONDITION_CONFIG'][
'VOTE']))
521 if (!preg_match(
'/^\d{1,3}$/', $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_LIMIT']))
523 $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_LIMIT'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_LIMIT'][
'DEFAULT'];
525 if (!preg_match(
'/^\d{1,7}\.?\d{0,4}$/', $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_RESULT']) || $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_RESULT'] < 0)
527 $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_RESULT'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_RESULT'][
'DEFAULT'];
529 if (!preg_match(
'/^\d{1,7}\.?\d{0,4}$/', $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_FORUM_TOPIC']))
531 $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_FORUM_TOPIC'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_FORUM_TOPIC'][
'DEFAULT'];
533 if (!preg_match(
'/^\d{1,7}\.?\d{0,4}$/', $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_FORUM_POST']))
535 $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_FORUM_POST'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_FORUM_POST'][
'DEFAULT'];
537 if (!preg_match(
'/^\d{1,7}\.?\d{0,4}$/', $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_BLOG_POST']))
539 $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_BLOG_POST'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_BLOG_POST'][
'DEFAULT'];
541 if (!preg_match(
'/^\d{1,7}\.?\d{0,4}$/', $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_BLOG_COMMENT']))
543 $arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_BLOG_COMMENT'] = $arDefaultConfig[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_BLOG_COMMENT'][
'DEFAULT'];
546 if (isset($arConfigs[
'ACTION_CONFIG'][
'CHANGE_GROUP']))
548 if (!preg_match(
'/^\d{1,11}$/', $arConfigs[
'ACTION_CONFIG'][
'CHANGE_GROUP'][
'GROUP_ID']))
550 $arConfigs[
'ACTION_CONFIG'][
'CHANGE_GROUP'][
'GROUP_ID'] = $arDefaultConfig[
'ACTION_CONFIG'][
'CHANGE_GROUP'][
'GROUP_ID'][
'DEFAULT'];
554 if (isset($arConfigs[
'ACTION_CONFIG'][
'CHANGE_UF']))
556 if (!preg_match(
'/^[0-9A-Z_]+$/', $arConfigs[
'ACTION_CONFIG'][
'CHANGE_UF'][
'UF_ID']))
558 $arConfigs[
'ACTION_CONFIG'][
'CHANGE_UF'][
'UF_ID'] = $arDefaultConfig[
'ACTION_CONFIG'][
'CHANGE_UF'][
'UF_ID'][
'DEFAULT'];
571 if (is_null($objectType))
573 foreach ($arRatingRuleConfigs as $OBJ_TYPE => $TYPE_VALUE)
575 foreach ($TYPE_VALUE as $RULE_TYPE => $RULE_VALUE)
577 foreach ($RULE_VALUE as $VALUE_CONFIG)
579 foreach ($VALUE_CONFIG[
'FIELDS'] as $VALUE_FIELDS)
581 $arConfigs[$OBJ_TYPE][$RULE_TYPE][$VALUE_CONFIG[
'ID']][$VALUE_FIELDS[
'ID']][
'DEFAULT'] = $VALUE_FIELDS[
'DEFAULT'];
582 if (isset($arConfigs[$OBJ_TYPE][$RULE_TYPE][$VALUE_CONFIG[
'ID']][$VALUE_FIELDS[
'ID']][
'DEFAULT_INPUT']))
584 $arConfigs[$OBJ_TYPE][$RULE_TYPE][$VALUE_CONFIG[
'ID']][$VALUE_FIELDS[
'ID']][
'DEFAULT_INPUT'] = $VALUE_FIELDS[
'DEFAULT_INPUT'];
593 foreach ($arRatingRuleConfigs[$objectType] as $RULE_TYPE => $RULE_VALUE)
595 foreach ($RULE_VALUE as $VALUE_CONFIG)
597 foreach ($VALUE_CONFIG[
'FIELDS'] as $VALUE_FIELDS)
599 $arConfigs[$RULE_TYPE][$VALUE_CONFIG[
'ID']][$VALUE_FIELDS[
'ID']][
'DEFAULT'] = $VALUE_FIELDS[
'DEFAULT'];
600 if (isset($arConfigs[$RULE_TYPE][$VALUE_CONFIG[
'ID']][$VALUE_FIELDS[
'ID']][
'DEFAULT_INPUT']))
602 $arConfigs[$RULE_TYPE][$VALUE_CONFIG[
'ID']][$VALUE_FIELDS[
'ID']][
'DEFAULT_INPUT'] = $VALUE_FIELDS[
'DEFAULT_INPUT'];
633 ENTITY_TYPE_ID = 'USER' and CREATED < " . $helper->addDaysToDateTime(-intval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_LIMIT'])) .
"
639 $sRatingWeightType = COption::GetOptionString(
"main",
"rating_weight_type",
"auto");
640 if ($sRatingWeightType ==
'auto')
642 $sRatingAuthrorityWeight = COption::GetOptionString(
"main",
"rating_authority_weight_formula",
'Y');
643 if ($sRatingAuthrorityWeight ==
'Y')
645 $communitySize = COption::GetOptionString(
"main",
"rating_community_size", 1);
646 $communityAuthority = COption::GetOptionString(
"main",
"rating_community_authority", 1);
647 $voteWeight = COption::GetOptionString(
"main",
"rating_vote_weight", 1);
648 $sValue =
"($communitySize*(RR.VOTE_WEIGHT/" . round($voteWeight, 4) .
")/" . round($communityAuthority) .
") as VALUE";
651 $sRatingUser =
"LEFT JOIN b_rating_user RR ON RR.RATING_ID = " . intval($ratingId) .
" AND RR.ENTITY_ID = RV.USER_ID";
655 $sValue =
"1 as VALUE";
661 $sRatingUser =
"LEFT JOIN b_rating_user RR ON RR.RATING_ID = " . intval($ratingId) .
" AND RR.ENTITY_ID = RV.USER_ID";
662 $sValue =
"RR.VOTE_WEIGHT as VALUE";
666 INSERT INTO b_rating_vote (RATING_VOTING_ID, VALUE, ACTIVE, CREATED, USER_ID, USER_IP, ENTITY_TYPE_ID, ENTITY_ID, OWNER_ID)
668 0 as RATING_VOTING_ID,
671 " .
$DB->GetNowFunction() .
" as CREATED,
674 'USER' as ENTITY_TYPE_ID,
675 RV.OWNER_ID as ENTITY_ID,
680 LEFT JOIN b_rating_vote RV2 ON RV2.USER_ID = RV.USER_ID AND RV2.ENTITY_TYPE_ID = 'USER' AND RV2.ENTITY_ID = RV.OWNER_ID
682 RV.CREATED > " . $helper->addDaysToDateTime(-intval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_LIMIT'])) .
"
683 and RV.VALUE > 0 and RV2.VALUE IS NULL and RV.OWNER_ID > 0
684 GROUP BY RV.USER_ID, RV.OWNER_ID
687 when RV.ENTITY_TYPE_ID = 'FORUM_TOPIC' then " . floatval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_FORUM_TOPIC']) .
"
688 when RV.ENTITY_TYPE_ID = 'FORUM_POST' then " . floatval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_FORUM_POST']) .
"
689 when RV.ENTITY_TYPE_ID = 'BLOG_POST' then " . floatval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_BLOG_POST']) .
"
690 when RV.ENTITY_TYPE_ID = 'BLOG_COMMENT' then " . floatval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_BLOG_COMMENT']) .
"
691 else 0 end) >= " . floatval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_RESULT']) .
"
697 INSERT INTO b_rating_voting (ENTITY_TYPE_ID, ENTITY_ID, ACTIVE, CREATED, LAST_CALCULATED, TOTAL_VALUE, TOTAL_VOTES, TOTAL_POSITIVE_VOTES, TOTAL_NEGATIVE_VOTES, OWNER_ID)
702 " .
$DB->GetNowFunction() .
" as CREATED,
703 " .
$DB->GetNowFunction() .
" as LAST_CALCULATED,
704 SUM(VALUE) as TOTAL_VALUE,
705 SUM(1) as TOTAL_VOTES,
706 SUM(case when RV.VALUE > '0' then 1 else 0 end) as TOTAL_POSITIVE_VOTES,
707 SUM(case when RV.VALUE > '0' then 0 else 1 end) as TOTAL_NEGATIVE_VOTES,
708 RV.ENTITY_ID as OWNER_ID
711 LEFT JOIN b_rating_voting RVG ON RVG.ENTITY_TYPE_ID = RV.ENTITY_TYPE_ID AND RVG.ENTITY_ID = RV.ENTITY_ID
714 and RV.CREATED > " . $helper->addDaysToDateTime(-intval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_LIMIT'])) .
"
715 and RVG.ID IS NULL and RV.OWNER_ID > 0
716 GROUP BY RV.ENTITY_TYPE_ID, RV.ENTITY_ID
726 RV.RATING_VOTING_ID = RVG.ID,
729 RV.ENTITY_TYPE_ID = RVG.ENTITY_TYPE_ID
730 and RV.ENTITY_ID = RVG.ENTITY_ID
731 and RV.RATING_VOTING_ID = 0";
735 $DB->Query(
"TRUNCATE b_rating_voting_prepare");
737 INSERT INTO b_rating_voting_prepare (RATING_VOTING_ID, TOTAL_VALUE, TOTAL_VOTES, TOTAL_POSITIVE_VOTES, TOTAL_NEGATIVE_VOTES)
740 SUM(RV.VALUE) as TOTAL_VALUE,
741 SUM(1) as TOTAL_VOTES,
742 SUM(case when RV.VALUE > '0' then 1 else 0 end) as TOTAL_POSITIVE_VOTES,
743 SUM(case when RV.VALUE > '0' then 0 else 1 end) as TOTAL_NEGATIVE_VOTES
747 RV.RATING_VOTING_ID IN (SELECT DISTINCT RV0.RATING_VOTING_ID FROM b_rating_vote RV0 WHERE RV0.ACTIVE='N')
749 GROUP BY RV.RATING_VOTING_ID";
756 b_rating_voting_prepare RVG0
758 RVG.TOTAL_VALUE = RVG0.TOTAL_VALUE,
759 RVG.TOTAL_VOTES = RVG0.TOTAL_VOTES,
760 RVG.TOTAL_POSITIVE_VOTES = RVG0.TOTAL_POSITIVE_VOTES,
761 RVG.TOTAL_NEGATIVE_VOTES = RVG0.TOTAL_NEGATIVE_VOTES
763 RVG.ID = RVG0.RATING_VOTING_ID";
767 $strSql =
"DELETE FROM b_rating_vote WHERE ENTITY_TYPE_ID = 'USER' and CREATED < " . $helper->addDaysToDateTime(-intval($arConfigs[
'CONDITION_CONFIG'][
'VOTE'][
'VOTE_LIMIT'])) .
"";
static getConnection($name="")
static ApplyVetting($arConfigs)
static OnGetRatingRuleConfigs()
static addToGroup($arConfigs)
static __CheckFields($entityId, $arConfigs)
static OnAfterAddRatingRule($ID, $arFields)
static ratingCheckInterval($arConfigs)
static __AssembleConfigDefault($objectType=null)
static voteCheck($arConfigs)
static removeFromGroup($arConfigs)
static OnGetRatingRuleObjects()
static OnAfterUpdateRatingRule($ID, $arFields)
static changeUF($arConfigs)
static ratingCheck($arConfigs)
static GetAuthorityRating()
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
if(file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/updater.log") &&is_file($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/updater.log") &&is_readable($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/updater.log")) $rsData