14 'MODULE_ID' =>
'MAIN',
15 'MODULE_NAME' =>
GetMessage(
'MAIN_RATING_NAME'),
17 $arConfigs[
"COMPONENT"][
"USER"][
"VOTE"][] =
array(
19 "REFRESH_TIME" =>
'3600',
20 "CLASS" =>
'CRatingsComponentsMain',
21 "CALC_METHOD" =>
'CalcVoteUser',
22 "NAME" =>
GetMessage(
'MAIN_RATING_USER_VOTE_USER_NAME'),
23 "DESC" =>
GetMessage(
'MAIN_RATING_USER_VOTE_USER_DESC'),
26 "ID" =>
'COEFFICIENT',
31 "NAME" =>
GetMessage(
'MAIN_RATING_USER_VOTE_USER_LIMIT_NAME'),
36 $arConfigs[
"COMPONENT"][
"USER"][
"RATING"][] =
array(
38 "REFRESH_TIME" =>
'3600',
39 "CLASS" =>
'CRatingsComponentsMain',
40 "CALC_METHOD" =>
'CalcUserBonus',
41 "NAME" =>
GetMessage(
'FORUM_RATING_USER_RATING_BONUS_NAME'),
42 "DESC" =>
GetMessage(
'FORUM_RATING_USER_RATING_BONUS_DESC'),
43 "FORMULA" =>
"StartValue * K",
44 "FORMULA_DESC" =>
GetMessage(
'FORUM_RATING_USER_RATING_BONUS_FORMULA_DESC'),
47 "ID" =>
'COEFFICIENT',
59 foreach ($arRatingConfigs[
"COMPONENT"] as $SupportType => $value)
60 $arSupportType[] = $SupportType;
62 return $arSupportType;
89 if (isset($arConfigs[
'VOTE'][
'USER']))
91 if (!preg_match(
'/^\d{1,7}\.?\d{0,4}$/', $arConfigs[
'VOTE'][
'USER'][
'COEFFICIENT']))
92 $arConfigs[
'VOTE'][
'USER'][
'COEFFICIENT'] = $arDefaultConfig[
'VOTE'][
'USER'][
'COEFFICIENT'][
'DEFAULT'];
93 if (!preg_match(
'/^\d{1,5}$/', $arConfigs[
'VOTE'][
'USER'][
'LIMIT']))
94 $arConfigs[
'VOTE'][
'USER'][
'LIMIT'] = $arDefaultConfig[
'VOTE'][
'USER'][
'LIMIT'][
'DEFAULT'];
96 if (isset($arConfigs[
'RATING'][
'BONUS']))
98 if (!preg_match(
'/^\d{1,7}\.?\d{0,4}$/', $arConfigs[
'RATING'][
'BONUS'][
'COEFFICIENT']))
99 $arConfigs[
'RATING'][
'BONUS'][
'COEFFICIENT'] = $arDefaultConfig[
'RATING'][
'BONUS'][
'COEFFICIENT'][
'DEFAULT'];
109 $arConfigs =
array();
111 if (is_null($objectType))
113 foreach ($arRatingConfigs[
"COMPONENT"] as $OBJ_TYPE => $TYPE_VALUE)
114 foreach ($TYPE_VALUE as $RAT_TYPE => $RAT_VALUE)
115 foreach ($RAT_VALUE as $VALUE_CONFIG)
116 foreach ($VALUE_CONFIG[
'FIELDS'] as $VALUE_FIELDS)
117 $arConfigs[$OBJ_TYPE][$RAT_TYPE][$VALUE_CONFIG[
'ID']][$VALUE_FIELDS[
'ID']][
'DEFAULT'] = $VALUE_FIELDS[
'DEFAULT'];
121 foreach ($arRatingConfigs[
"COMPONENT"][$objectType] as $RAT_TYPE => $RAT_VALUE)
122 foreach ($RAT_VALUE as $VALUE_CONFIG)
123 foreach ($VALUE_CONFIG[
'FIELDS'] as $VALUE_FIELDS)
124 $arConfigs[$RAT_TYPE][$VALUE_CONFIG[
'ID']][$VALUE_FIELDS[
'ID']][
'DEFAULT'] = $VALUE_FIELDS[
'DEFAULT'];
131 if (
$arParams[
'ENTITY_TYPE_ID'] ==
'USER')
144 $arParams[
'SHOW_RATING'] = COption::GetOptionString(
'main',
'rating_vote_show',
'N');
151 Loc::loadLanguageFile(
$_SERVER[
'DOCUMENT_ROOT'].
'/bitrix/modules/main/install/js/main/rating/config.php');
153 $emotion = mb_strtoupper($emotion);
155 if (empty($emotion) || $emotion ==
'LIKE')
157 $text = Option::get(
"main",
"rating_text_like_y", Loc::getMessage(
'RATING_LIKE_EMOTION_LIKE'));
161 return Loc::getMessage(
'RATING_LIKE_EMOTION_'.$emotion);
172 $strSql =
"DELETE FROM b_rating_component_results WHERE RATING_ID = '".intval($arConfigs[
'RATING_ID']).
"' AND COMPLEX_NAME = '".$helper->forSql($arConfigs[
'COMPLEX_NAME']).
"'";
175 $strSql =
"INSERT INTO b_rating_component_results (RATING_ID, MODULE_ID, RATING_TYPE, NAME, COMPLEX_NAME, ENTITY_ID, ENTITY_TYPE_ID, CURRENT_VALUE)
177 ".intval($arConfigs[
'RATING_ID']).
" as RATING_ID,
178 '".$helper->forSql($arConfigs[
'MODULE_ID']).
"' as MODULE_ID,
179 '".$helper->forSql($arConfigs[
'RATING_TYPE']).
"' as RATING_TYPE,
180 '".$helper->forSql($arConfigs[
'NAME']).
"' as RATING_NAME,
181 '".$helper->forSql($arConfigs[
'COMPLEX_NAME']).
"' as COMPLEX_NAME,
183 '".$helper->forSql($arConfigs[
'ENTITY_ID']).
"' as ENTITY_TYPE_ID,
184 SUM(RVE.VALUE) * ".floatval($arConfigs[
'CONFIG'][
'COEFFICIENT']).
" as CURRENT_VALUE
189 RV.ENTITY_TYPE_ID = 'USER' AND RV.ENTITY_ID > 0
190 AND RVE.RATING_VOTING_ID = RV.ID".(intval($arConfigs[
'CONFIG'][
'LIMIT']) > 0 ?
" AND RVE.CREATED > " . $helper->addDaysToDateTime(-intval($arConfigs[
'CONFIG'][
'LIMIT'])).
"" :
"").
"
191 GROUP BY RV.ENTITY_ID";
203 $communityLastVisit = COption::GetOptionString(
"main",
"rating_community_last_visit",
'90');
207 $strSql =
"DELETE FROM b_rating_component_results WHERE RATING_ID = '".intval($arConfigs[
'RATING_ID']).
"' AND COMPLEX_NAME = '".$helper->forSql($arConfigs[
'COMPLEX_NAME']).
"'";
210 $strSql =
"INSERT INTO b_rating_component_results (RATING_ID, MODULE_ID, RATING_TYPE, NAME, COMPLEX_NAME, ENTITY_ID, ENTITY_TYPE_ID, CURRENT_VALUE)
212 ".intval($arConfigs[
'RATING_ID']).
" as RATING_ID,
213 '".$helper->forSql($arConfigs[
'MODULE_ID']).
"' as MODULE_ID,
214 '".$helper->forSql($arConfigs[
'RATING_TYPE']).
"' as RATING_TYPE,
215 '".$helper->forSql($arConfigs[
'NAME']).
"' as RATING_NAME,
216 '".$helper->forSql($arConfigs[
'COMPLEX_NAME']).
"' as COMPLEX_NAME,
218 '".$helper->forSql($arConfigs[
'ENTITY_ID']).
"' as ENTITY_TYPE_ID,
219 RB.BONUS*".floatval($arConfigs[
'CONFIG'][
'COEFFICIENT']).
" as CURRENT_VALUE
222 LEFT JOIN b_user U ON U.ID = RB.ENTITY_ID AND U.ACTIVE = 'Y' AND U.LAST_LOGIN > " . $helper->addDaysToDateTime(-intval($communityLastVisit)) .
"
224 RB.RATING_ID = ".intval($arConfigs[
'RATING_ID']).
"
static getConnection($name="")
static OnAfterAddRating($ID, $arFields)
static __CheckFields($entityId, $arConfigs)
static OnGetRatingContentOwner($arParams)
static CalcVoteUser($arConfigs)
static __AssembleConfigDefault($objectType=null)
static GetShowRating(&$arParams)
static getRatingLikeMessage($emotion, $safe=true)
static CalcUserBonus($arConfigs)
static OnAfterUpdateRating($ID, $arFields)
static OnGetRatingConfigs()
static OnGetRatingObject()
static AddComponentResults($arComponentConfigs)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)