1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
ratings_components.php
См. документацию.
1<?php
2
3IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/blog/general/ratings_components.php");
4
6{
7 // return configs of component-rating
8 public static function OnGetRatingConfigs()
9 {
10 $arConfigs = array(
11 "MODULE_ID" => "BLOG",
12 "MODULE_NAME" => GetMessage("BLOG_MODULE_NAME"),
13 );
14 $arConfigs["COMPONENT"]["USER"]["VOTE"][] = array(
15 "ID" => 'POST',
16 "REFRESH_TIME" => '3600',
17 "CLASS" => 'CRatingsComponentsBlog',
18 "CALC_METHOD" => 'CalcPost',
19 "NAME" => GetMessage('BLOG_RATING_USER_VOTE_POST_NAME'),
20 "DESC" => GetMessage('BLOG_RATING_USER_VOTE_POST_DESC'),
21 "FIELDS" => array(
22 array(
23 "ID" => 'COEFFICIENT',
24 "DEFAULT" => '0.5',
25 ),
26 array(
27 "ID" => 'LIMIT',
28 "NAME" => GetMessage('BLOG_RATING_USER_VOTE_POST_LIMIT_NAME'),
29 "DEFAULT" => '30',
30 ),
31 )
32 );
33 $arConfigs["COMPONENT"]["USER"]["VOTE"][] = array(
34 "ID" => 'COMMENT',
35 "REFRESH_TIME" => '3600',
36 "CLASS" => 'CRatingsComponentsBlog',
37 "CALC_METHOD" => 'CalcComment',
38 "NAME" => GetMessage('BLOG_RATING_USER_VOTE_COMMENT_NAME'),
39 "DESC" => GetMessage('BLOG_RATING_USER_VOTE_COMMENT_DESC'),
40 "FIELDS" => array(
41 array(
42 "ID" => 'COEFFICIENT',
43 "DEFAULT" => '0.1',
44 ),
45 array(
46 "ID" => 'LIMIT',
47 "NAME" => GetMessage('BLOG_RATING_USER_VOTE_COMMENT_LIMIT_NAME'),
48 "DEFAULT" => '30',
49 ),
50 )
51 );
52 $arConfigs["COMPONENT"]["USER"]["RATING"][] = array(
53 "ID" => 'ACTIVITY',
54 "REFRESH_TIME" => '7200',
55 "CLASS" => 'CRatingsComponentsBlog',
56 "CALC_METHOD" => 'CalcActivity',
57 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_NAME'),
58 "DESC" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_DESC'),
59 "FORMULA" => 'P<sub>1</sub> * K<sub>P1</sub> + P<sub>7</sub> * K<sub>P7</sub> + P<sub>30</sub> * K<sub>P30</sub> + P<sub>all</sub> * K<sub>Pall</sub> + C<sub>1</sub> * K<sub>C1</sub> + C<sub>7</sub> * K<sub>C7</sub> + C<sub>30</sub> * K<sub>C30</sub> + C<sub>all</sub> * K<sub>Call</sub>',
60 "FORMULA_DESC" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FORMULA_DESC'),
61 "FIELDS" => array(
62 array(
63 "ID" => 'TODAY_POST_COEF',
64 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FIELDS_TODAY_POST_COEF'),
65 "DEFAULT" => '0.4',
66 ),
67 array(
68 "ID" => 'WEEK_POST_COEF',
69 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FIELDS_WEEK_POST_COEF'),
70 "DEFAULT" => '0.2',
71 ),
72 array(
73 "ID" => 'MONTH_POST_COEF',
74 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FIELDS_MONTH_POST_COEF'),
75 "DEFAULT" => '0.1',
76 ),
77 array(
78 "ID" => 'ALL_POST_COEF',
79 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FIELDS_ALL_POST_COEF'),
80 "DEFAULT" => '0',
81 ),
82 array(
83 "ID" => 'TODAY_COMMENT_COEF',
84 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FIELDS_TODAY_COMMENT_COEF'),
85 "DEFAULT" => '0.2',
86 ),
87 array(
88 "ID" => 'WEEK_COMMENT_COEF',
89 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FIELDS_WEEK_COMMENT_COEF'),
90 "DEFAULT" => '0.1',
91 ),
92 array(
93 "ID" => 'MONTH_COMMENT_COEF',
94 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FIELDS_MONTH_COMMENT_COEF'),
95 "DEFAULT" => '0.05',
96 ),
97 array(
98 "ID" => 'ALL_COMMENT_COEF',
99 "NAME" => GetMessage('BLOG_RATING_USER_RATING_ACTIVITY_FIELDS_ALL_COMMENT_COEF'),
100 "DEFAULT" => '0',
101 ),
102 )
103 );
104
105 return $arConfigs;
106 }
107
108 // return support object
109 public static function OnGetRatingObject()
110 {
112 foreach ($arRatingConfigs["COMPONENT"] as $SupportType => $value)
113 $arSupportType[] = $SupportType;
114
115 return $arSupportType;
116 }
117
118 // check the value of the component-rating which relate to the module
119 public static function OnAfterAddRating($ID, $arFields)
120 {
121 $arFields['CONFIGS']['BLOG'] = CRatingsComponentsBlog::__CheckFields($arFields['ENTITY_ID'], $arFields['CONFIGS']['BLOG']);
122
123 return $arFields;
124 }
125
126 // check the value of the component-rating which relate to the module
127 public static function OnAfterUpdateRating($ID, $arFields)
128 {
129 $arFields['CONFIGS']['BLOG'] = CRatingsComponentsBlog::__CheckFields($arFields['ENTITY_ID'], $arFields['CONFIGS']['BLOG']);
130
131 return $arFields;
132 }
133
134 // Utilities
135
136 // check input values, if value does not validate, set the default value
137 public static function __CheckFields($entityId, $arConfigs)
138 {
140 if ($entityId == "USER") {
141 if (isset($arConfigs['VOTE']['POST'])) {
142 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['VOTE']['POST']['COEFFICIENT']))
143 $arConfigs['VOTE']['POST']['COEFFICIENT'] = $arDefaultConfig['VOTE']['POST']['COEFFICIENT']['DEFAULT'];
144
145 if (!preg_match('/^\d{1,5}$/', $arConfigs['VOTE']['POST']['LIMIT']))
146 $arConfigs['VOTE']['POST']['LIMIT'] = $arDefaultConfig['VOTE']['POST']['LIMIT']['DEFAULT'];
147 }
148
149 if (isset($arConfigs['VOTE']['COMMENT'])) {
150 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['VOTE']['COMMENT']['COEFFICIENT']))
151 $arConfigs['VOTE']['COMMENT']['COEFFICIENT'] = $arDefaultConfig['VOTE']['COMMENT']['COEFFICIENT']['DEFAULT'];
152
153 if (!preg_match('/^\d{1,5}$/', $arConfigs['VOTE']['COMMENT']['LIMIT']))
154 $arConfigs['VOTE']['COMMENT']['LIMIT'] = $arDefaultConfig['VOTE']['COMMENT']['LIMIT']['DEFAULT'];
155 }
156
157 if (isset($arConfigs['RATING']['ACTIVITY']))
158 {
159 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['RATING']['ACTIVITY']['TODAY_POST_COEF']))
160 $arConfigs['RATING']['ACTIVITY']['TODAY_POST_COEF'] = $arDefaultConfig['RATING']['ACTIVITY']['TODAY_POST_COEF']['DEFAULT'];
161
162 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['RATING']['ACTIVITY']['WEEK_POST_COEF']))
163 $arConfigs['RATING']['ACTIVITY']['WEEK_POST_COEF'] = $arDefaultConfig['RATING']['ACTIVITY']['WEEK_POST_COEF']['DEFAULT'];
164
165 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['RATING']['ACTIVITY']['MONTH_POST_COEF']))
166 $arConfigs['RATING']['ACTIVITY']['MONTH_POST_COEF'] = $arDefaultConfig['RATING']['ACTIVITY']['MONTH_POST_COEF']['DEFAULT'];
167
168 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['RATING']['ACTIVITY']['ALL_POST_COEF']))
169 $arConfigs['RATING']['ACTIVITY']['ALL_POST_COEF'] = $arDefaultConfig['RATING']['ACTIVITY']['ALL_POST_COEF']['DEFAULT'];
170
171 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['RATING']['ACTIVITY']['TODAY_COMMENT_COEF']))
172 $arConfigs['RATING']['ACTIVITY']['TODAY_COMMENT_COEF'] = $arDefaultConfig['RATING']['ACTIVITY']['TODAY_POST_COEF']['DEFAULT'];
173
174 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['RATING']['ACTIVITY']['WEEK_COMMENT_COEF']))
175 $arConfigs['RATING']['ACTIVITY']['WEEK_COMMENT_COEF'] = $arDefaultConfig['RATING']['ACTIVITY']['WEEK_COMMENT_COEF']['DEFAULT'];
176
177 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['RATING']['ACTIVITY']['MONTH_COMMENT_COEF']))
178 $arConfigs['RATING']['ACTIVITY']['MONTH_COMMENT_COEF'] = $arDefaultConfig['RATING']['ACTIVITY']['MONTH_COMMENT_COEF']['DEFAULT'];
179
180 if (!preg_match('/^\d{1,7}\.?\d{0,4}$/', $arConfigs['RATING']['ACTIVITY']['ALL_COMMENT_COEF']))
181 $arConfigs['RATING']['ACTIVITY']['ALL_COMMENT_COEF'] = $arDefaultConfig['RATING']['ACTIVITY']['ALL_COMMENT_COEF']['DEFAULT'];
182 }
183 }
184
185 return $arConfigs;
186 }
187
188 // collect the default and regular expressions for the fields component-rating
189 public static function __AssembleConfigDefault($objectType = null)
190 {
191 $arConfigs = array();
193 if (is_null($objectType))
194 {
195 foreach ($arRatingConfigs["COMPONENT"] as $OBJ_TYPE => $TYPE_VALUE)
196 foreach ($TYPE_VALUE as $RAT_TYPE => $RAT_VALUE)
197 foreach ($RAT_VALUE as $VALUE_CONFIG)
198 foreach ($VALUE_CONFIG['FIELDS'] as $VALUE_FIELDS)
199 $arConfigs[$OBJ_TYPE][$RAT_TYPE][$VALUE_CONFIG['ID']][$VALUE_FIELDS['ID']]['DEFAULT'] = $VALUE_FIELDS['DEFAULT'];
200 }
201 else
202 {
203 foreach ($arRatingConfigs["COMPONENT"][$objectType] as $RAT_TYPE => $RAT_VALUE)
204 foreach ($RAT_VALUE as $VALUE_CONFIG)
205 foreach ($VALUE_CONFIG['FIELDS'] as $VALUE_FIELDS)
206 $arConfigs[$RAT_TYPE][$VALUE_CONFIG['ID']][$VALUE_FIELDS['ID']]['DEFAULT'] = $VALUE_FIELDS['DEFAULT'];
207
208 }
209
210 return $arConfigs;
211 }
212
213 public static function OnGetRatingContentOwner($arParams)
214 {
215 if ($arParams['ENTITY_TYPE_ID'] == 'BLOG_POST')
216 {
217 $arPost = CBlogPost::GetByID(intval($arParams['ENTITY_ID']));
218 return $arPost['AUTHOR_ID'];
219 }
220 elseif ($arParams['ENTITY_TYPE_ID'] == 'BLOG_COMMENT')
221 {
222 $arComment = CBlogComment::GetByID(intval($arParams['ENTITY_ID']));
223 return $arComment['AUTHOR_ID'];
224 }
225 return false;
226 }
227}
$arParams
Определения access_dialog.php:21
const BX_ROOT
Определения bx_root.php:3
static GetByID($ID)
Определения blog_comment.php:170
static OnAfterAddRating($ID, $arFields)
Определения ratings_components.php:119
static __CheckFields($entityId, $arConfigs)
Определения ratings_components.php:137
static OnGetRatingContentOwner($arParams)
Определения ratings_components.php:213
static __AssembleConfigDefault($objectType=null)
Определения ratings_components.php:189
static OnAfterUpdateRating($ID, $arFields)
Определения ratings_components.php:127
static OnGetRatingConfigs()
Определения ratings_components.php:8
static OnGetRatingObject()
Определения ratings_components.php:109
static GetByID($ID)
Определения blog_post.php:511
$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
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$entityId
Определения payment.php:4
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393