3require(
$_SERVER[
"DOCUMENT_ROOT"].
BX_ROOT.
"/modules/forum/classes/general/ratings_components.php");
17 $strSql =
"DELETE FROM b_rating_component_results WHERE RATING_ID = '".intval($arConfigs[
'RATING_ID']).
"' AND COMPLEX_NAME = '".$helper->forSql($arConfigs[
'COMPLEX_NAME']).
"'";
20 $strSql =
"INSERT INTO b_rating_component_results (RATING_ID, MODULE_ID, RATING_TYPE, NAME, COMPLEX_NAME, ENTITY_ID, ENTITY_TYPE_ID, CURRENT_VALUE)
22 '".intval($arConfigs[
'RATING_ID']).
"' RATING_ID,
23 '".$helper->forSql($arConfigs[
'MODULE_ID']).
"' MODULE_ID,
24 '".$helper->forSql($arConfigs[
'RATING_TYPE']).
"' RATING_TYPE,
25 '".$helper->forSql($arConfigs[
'NAME']).
"' RATING_NAME,
26 '".$helper->forSql($arConfigs[
'COMPLEX_NAME']).
"' COMPLEX_NAME,
27 FM.AUTHOR_ID as ENTITY_ID,
28 '".$helper->forSql($arConfigs[
'ENTITY_ID']).
"' ENTITY_TYPE_ID,
29 SUM(RVE.VALUE)*".floatval($arConfigs[
'CONFIG'][
'COEFFICIENT']).
" CURRENT_VALUE
31 b_rating_voting RV LEFT JOIN b_forum_message FM ON RV.ENTITY_ID = FM.ID,
34 RV.ENTITY_TYPE_ID = 'FORUM_POST' AND FM.AUTHOR_ID > 0
35 AND RVE.RATING_VOTING_ID = RV.ID".(intval($arConfigs[
'CONFIG'][
'LIMIT']) > 0 ?
" AND RVE.CREATED > " . $helper->addDaysToDateTime(-intval($arConfigs[
'CONFIG'][
'LIMIT'])) :
"").
"
50 $strSql =
"DELETE FROM b_rating_component_results WHERE RATING_ID = '".intval($arConfigs[
'RATING_ID']).
"' AND COMPLEX_NAME = '".$helper->forSql($arConfigs[
'COMPLEX_NAME']).
"'";
53 $strSql =
"INSERT INTO b_rating_component_results (RATING_ID, MODULE_ID, RATING_TYPE, NAME, COMPLEX_NAME, ENTITY_ID, ENTITY_TYPE_ID, CURRENT_VALUE)
55 '".intval($arConfigs[
'RATING_ID']).
"' RATING_ID,
56 '".$helper->forSql($arConfigs[
'MODULE_ID']).
"' MODULE_ID,
57 '".$helper->forSql($arConfigs[
'RATING_TYPE']).
"' RATING_TYPE,
58 '".$helper->forSql($arConfigs[
'NAME']).
"' RATING_NAME,
59 '".$helper->forSql($arConfigs[
'COMPLEX_NAME']).
"' COMPLEX_NAME,
60 FT.USER_START_ID ENTITY_ID,
61 '".$helper->forSql($arConfigs[
'ENTITY_ID']).
"' ENTITY_TYPE_ID,
62 SUM(RVE.VALUE)*".floatval($arConfigs[
'CONFIG'][
'COEFFICIENT']).
" CURRENT_VALUE
64 b_rating_voting RV LEFT JOIN b_forum_topic FT ON RV.ENTITY_ID = FT.ID,
67 RV.ENTITY_TYPE_ID = 'FORUM_TOPIC' AND FT.USER_START_ID > 0
68 AND RVE.RATING_VOTING_ID = RV.ID".(intval($arConfigs[
'CONFIG'][
'LIMIT']) > 0 ?
" AND RVE.CREATED > " . $helper->addDaysToDateTime(-intval($arConfigs[
'CONFIG'][
'LIMIT'])) :
"").
"
69 GROUP BY USER_START_ID";
84 $strSql =
"DELETE FROM b_rating_component_results WHERE RATING_ID = '".intval($arConfigs[
'RATING_ID']).
"' AND COMPLEX_NAME = '".
$DB->ForSql($arConfigs[
'COMPLEX_NAME']).
"'";
88 if (isset($arConfigs[
'CONFIG'][
'ALL_TOPIC_COEF']) && $arConfigs[
'CONFIG'][
'ALL_TOPIC_COEF'] != 0) {
91 USER_START_ID as ENTITY_ID,
92 COUNT(*)*".floatval($arConfigs[
'CONFIG'][
'ALL_TOPIC_COEF']).
" as CURRENT_VALUE
94 WHERE START_DATE < " . $helper->addDaysToDateTime(-30) .
"
95 GROUP BY USER_START_ID
99 if (isset($arConfigs[
'CONFIG'][
'ALL_POST_COEF']) && $arConfigs[
'CONFIG'][
'ALL_POST_COEF'] != 0) {
102 AUTHOR_ID as ENTITY_ID,
103 COUNT(*)*".floatval($arConfigs[
'CONFIG'][
'ALL_POST_COEF']).
" as CURRENT_VALUE
105 WHERE POST_DATE < " . $helper->addDaysToDateTime(-30) .
"
109 $strSql =
"INSERT INTO b_rating_component_results (RATING_ID, MODULE_ID, RATING_TYPE, NAME, COMPLEX_NAME, ENTITY_ID, ENTITY_TYPE_ID, CURRENT_VALUE)
111 '".intval($arConfigs[
'RATING_ID']).
"' as RATING_ID,
112 '".
$DB->ForSql($arConfigs[
'MODULE_ID']).
"' as MODULE_ID,
113 '".
$DB->ForSql($arConfigs[
'RATING_TYPE']).
"' as RATING_TYPE,
114 '".
$DB->ForSql($arConfigs[
'NAME']).
"' as NAME,
115 '".
$DB->ForSql($arConfigs[
'COMPLEX_NAME']).
"' as COMPLEX_NAME,
117 '".
$DB->ForSql($arConfigs[
'ENTITY_ID']).
"' ENTITY_TYPE_ID,
118 SUM(CURRENT_VALUE) CURRENT_VALUE
123 AUTHOR_ID as ENTITY_ID,
124 SUM(case when " . $helper->formatDate(
'YYYY-MM-DD',
'POST_DATE') .
" > " . $helper->formatDate(
'YYYY-MM-DD', $helper->addDaysToDateTime(-1)) .
" then 1 else 0 end)*".floatval($arConfigs[
'CONFIG'][
'TODAY_POST_COEF']).
" +
125 SUM(case when " . $helper->formatDate(
'YYYY-MM-DD',
'POST_DATE') .
" > " . $helper->formatDate(
'YYYY-MM-DD', $helper->addDaysToDateTime(-7)) .
" then 1 else 0 end)*".floatval($arConfigs[
'CONFIG'][
'WEEK_POST_COEF']).
"+
126 COUNT(*)*".floatval($arConfigs[
'CONFIG'][
'MONTH_POST_COEF']).
" as CURRENT_VALUE
128 WHERE POST_DATE > " . $helper->addDaysToDateTime(-30) .
"
135 USER_START_ID as ENTITY_ID,
136 SUM(case when " . $helper->formatDate(
'YYYY-MM-DD',
'START_DATE') .
" > " . $helper->formatDate(
'YYYY-MM-DD', $helper->addDaysToDateTime(-1)) .
" then 1 else 0 end)*".floatval($arConfigs[
'CONFIG'][
'TODAY_TOPIC_COEF']).
" +
137 SUM(case when " . $helper->formatDate(
'YYYY-MM-DD',
'START_DATE') .
" > " . $helper->formatDate(
'YYYY-MM-DD', $helper->addDaysToDateTime(-7)) .
" then 1 else 0 end)*".floatval($arConfigs[
'CONFIG'][
'WEEK_TOPIC_COEF']).
" +
138 COUNT(*)*".floatval($arConfigs[
'CONFIG'][
'MONTH_TOPIC_COEF']).
" as CURRENT_VALUE
140 WHERE START_DATE > " . $helper->addDaysToDateTime(-30) .
"
141 GROUP BY USER_START_ID
154 $bIndex1 =
$DB->IndexExists(
"b_forum_topic",
array(
"START_DATE",
"USER_START_ID"));
155 $bIndex2 =
$DB->IndexExists(
"b_forum_message",
array(
"POST_DATE",
"AUTHOR_ID"));
157 if(!$bIndex1 || !$bIndex2)
161 $arIndex[] =
'CREATE INDEX IX_FORUM_RATING_1 ON b_forum_topic(START_DATE, USER_START_ID)';
164 $arIndex[] =
'CREATE INDEX IX_FORUM_RATING_2 ON b_forum_message(POST_DATE, AUTHOR_ID)';
166 return GetMessage(
'EXCEPTION_USER_RATING_FORUM_ACTIVITY_TEXT').
'<br>1. <b>'.$arIndex[0].
'</b>'.(isset($arIndex[1]) ?
'<br> 2. <b>'.$arIndex[1].
'</b>' :
'');
static getConnection($name="")
static CalcUserVoteForumPost($arConfigs)
static CalcUserVoteForumTopic($arConfigs)
static ExceptionUserRatingForumActivity()
static CalcUserRatingForumActivity($arConfigs)
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)