1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
student.php
См. документацию.
1<?
2
3// 2012-04-16 Checked/modified for compatibility with new data model
5{
6 // 2012-04-16 Checked/modified for compatibility with new data model
7 public static function CheckFields(&$arFields, $ID = false)
8 {
9 global $DB, $APPLICATION;
10 $arMsg = array();
11
12 if ((is_set($arFields, "USER_ID") || $ID === false) && intval($arFields["USER_ID"]) <= 0)
13 {
14 $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID"), "EMPTY_USER_ID");
15 return false;
16 }
17 elseif (is_set($arFields, "USER_ID"))
18 {
19 $dbResult = CUser::GetByID($arFields["USER_ID"]);
20 if (!$dbResult->Fetch())
21 {
22 $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EX"), "ERROR_NO_USER_ID");
23 return false;
24 }
25
26 $dbResult = CStudent::GetList(Array(), Array("USER_ID" => $arFields["USER_ID"]));
27 if ($dbResult->Fetch())
28 {
29 $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EXISTS"), "ERROR_USER_ID_EXISTS");
30 return false;
31 }
32 }
33
34 if ($ID === false && !is_set($arFields, "TRANSCRIPT"))
35 {
36 $arFields["TRANSCRIPT"] = CStudent::GenerateTranscipt();
37 }
38 elseif(is_set($arFields, "TRANSCRIPT") && !preg_match("~^[0-9]{6,}$~",$arFields["TRANSCRIPT"]))
39 {
40 $arFields["TRANSCRIPT"] = CStudent::GenerateTranscipt();
41 }
42
43 if (is_set($arFields, "PUBLIC_PROFILE") && $arFields["PUBLIC_PROFILE"] != "N")
44 $arFields["ACTIVE"] = "Y";
45
46 return true;
47 }
48
49
50 // 2012-04-16 Checked/modified for compatibility with new data model
51 public static function GenerateTranscipt($TranscriptLength = 8)
52 {
53 $TranscriptLength = intval($TranscriptLength);
54
55 $digits = "312467589";
56 $max = mb_strlen($digits) - 1;
57
58 $str = "";
59
60 for ($i = 0; $i < $TranscriptLength; $i++)
61 $str .= $digits[mt_rand(0,$max)];
62
63 return $str;
64 }
65
66
67 // 2012-04-16 Checked/modified for compatibility with new data model
68 public static function Add($arFields)
69 {
70 global $DB;
71
73 {
74 CLearnHelper::FireEvent('OnBeforeStudentAdd', $arFields);
75
76 $arInsert = $DB->PrepareInsert("b_learn_student", $arFields, "learning");
77
78 if ($arInsert[0] == '')
79 return false;
80
81 $strSql =
82 "INSERT INTO b_learn_student(".$arInsert[0].") ".
83 "VALUES(".$arInsert[1].")";
84
85 if(!$DB->Query($strSql))
86 return false;
87
88 CLearnHelper::FireEvent('OnAfterStudentAdd', $arFields);
89
90 return $arFields["USER_ID"];
91 }
92
93 return false;
94 }
95
96
97 // 2012-04-16 Checked/modified for compatibility with new data model
98 public static function Update($ID, $arFields)
99 {
100 global $DB;
101
102 $ID = intval($ID);
103 if ($ID < 1) return false;
104
105 unset($arFields["USER_ID"]);
106
108 {
109
110 $arBinds=Array(
111 "RESUME"=>$arFields["RESUME"]
112 );
113
114 CLearnHelper::FireEvent('OnBeforeStudentUpdate', $arFields);
115
116 $strUpdate = $DB->PrepareUpdate("b_learn_student", $arFields, "learning");
117 if($strUpdate <> '')
118 {
119 $strSql = "UPDATE b_learn_student SET ".$strUpdate." WHERE USER_ID=".$ID;
120 $DB->QueryBind($strSql, $arBinds);
121 }
122
123 CLearnHelper::FireEvent('OnAfterStudentUpdate', $arFields);
124
125 return true;
126 }
127
128 return false;
129 }
130
131
132 // 2012-04-16 Checked/modified for compatibility with new data model
133 public static function Delete($ID)
134 {
135 global $DB;
136
137 $ID = intval($ID);
138 if ($ID < 1) return false;
139
140 CLearnHelper::FireEvent('OnBeforeStudentDelete', $ID);
141
142 //Certification
143 $records = CCertification::GetList(Array(), Array("STUDENT_ID" => $ID));
144 while($arRecord = $records->Fetch())
145 {
146 \CCertification::Delete($arRecord["ID"]);
147 }
148
149 //GradeBook
150 $gradeBooks = \CGradeBook::GetList([], ["STUDENT_ID" => $ID]);
151 while ($gradeBook = $gradeBooks->Fetch())
152 {
153 \CGradeBook::Delete($gradeBook["ID"]);
154 }
155
156 $strSql = "DELETE FROM b_learn_student WHERE USER_ID = ".$ID;
157
158 if (!$DB->Query($strSql))
159 return false;
160
161 CLearnHelper::FireEvent('OnAfterStudentDelete', $ID);
162
163 return true;
164 }
165
166
167 // 2012-04-16 Checked/modified for compatibility with new data model
168 public static function GetByID($ID)
169 {
170 return CStudent::GetList(Array(),Array("USER_ID"=> $ID));
171 }
172
173
174 // 2012-04-16 Checked/modified for compatibility with new data model
175 public static function GetFilter($arFilter)
176 {
177
178 if (!is_array($arFilter))
179 $arFilter = Array();
180
181 $arSqlSearch = Array();
182
183 foreach ($arFilter as $key => $val)
184 {
186 $key = $res["FIELD"];
187 $cOperationType = $res["OPERATION"];
188
189 $key = mb_strtoupper($key);
190
191 switch ($key)
192 {
193 case "USER_ID":
194 case "TRANSCRIPT":
195 $arSqlSearch[] = CLearnHelper::FilterCreate("S.".$key, $val, "number", $bFullJoin, $cOperationType);
196 break;
197
198 case "PUBLIC_PROFILE":
199 $arSqlSearch[] = CLearnHelper::FilterCreate("S.".$key, $val, "string_equal", $bFullJoin, $cOperationType);
200 break;
201
202 case "RESUME":
203 $arSqlSearch[] = CLearnHelper::FilterCreate("S.".$key, $val, "string", $bFullJoin, $cOperationType);
204 break;
205 }
206
207 }
208
209 return $arSqlSearch;
210 }
211
212
213 // 2012-04-16 Checked/modified for compatibility with new data model
214 public static function GetList($arOrder=Array(), $arFilter=Array())
215 {
216 global $DB, $USER;
217
218 $arSqlSearch = CStudent::GetFilter($arFilter);
219
220 $strSqlSearch = "";
221 for ($i = 0, $length = count($arSqlSearch); $i < $length; $i++)
222 {
223 if ($arSqlSearch[$i] <> '')
224 {
225 $strSqlSearch .= " AND ".$arSqlSearch[$i]." ";
226 }
227 }
228
229 $strSql =
230 "SELECT S.* ".
231 //$DB->Concat("'('",'U.LOGIN',"') '",'U.NAME',"' '", 'U.LAST_NAME')." as USER_NAME ".
232 "FROM b_learn_student S ".
233 "WHERE 1=1 ".
234 $strSqlSearch;
235
236 if (!is_array($arOrder))
237 $arOrder = Array();
238
239 $arSqlOrder = [];
240 foreach($arOrder as $by=>$order)
241 {
242 $by = mb_strtolower($by);
243 $order = mb_strtolower($order);
244 if ($order!="asc")
245 $order = "desc";
246
247 if ($by == "user_id") $arSqlOrder[] = " S.USER_ID ".$order." ";
248 elseif ($by == "public_profile") $arSqlOrder[] = " S.PUBLIC_PROFILE ".$order." ";
249 else
250 {
251 $arSqlOrder[] = " S.USER_ID ".$order." ";
252 $by = "user_id";
253 }
254 }
255
256 $strSqlOrder = "";
257 DelDuplicateSort($arSqlOrder);
258
259 if (!empty($arSqlOrder) && is_array($arSqlOrder))
260 {
261 for ($i = 0, $length = count($arSqlOrder); $i < $length; $i++)
262 {
263 if ($i == 0)
264 {
265 $strSqlOrder = " ORDER BY ";
266 }
267 else
268 {
269 $strSqlOrder .= ",";
270 }
271
272 $strSqlOrder .= $arSqlOrder[$i];
273 }
274 }
275
276 $strSql .= $strSqlOrder;
277
278 //echo $strSql;
279 return $DB->Query($strSql);
280 }
281}
global $APPLICATION
Определения include.php:80
static Delete($ID)
Определения certification.php:155
static Delete($ID)
Определения gradebook.php:111
static GetList($arOrder=array(), $arFilter=array(), $arNavParams=array())
Определения gradebook.php:295
static GetList($arOrder=array(), $arFilter=array(), $arNavParams=array())
Определения certification.php:14
static FilterCreate($fname, $vals, $type, &$bFullJoin, $cOperationType=false, $bSkipEmpty=true)
Определения clearnhelper.php:214
static MkOperationFilter($key)
Определения clearnhelper.php:143
static FireEvent($eventName, $eventParams)
Определения clearnhelper.php:65
Определения student.php:5
static Delete($ID)
Определения student.php:133
static CheckFields(&$arFields, $ID=false)
Определения student.php:7
static Add($arFields)
Определения student.php:68
static GetByID($ID)
Определения student.php:168
static GenerateTranscipt($TranscriptLength=8)
Определения student.php:51
static GetList($arOrder=Array(), $arFilter=Array())
Определения student.php:214
static Update($ID, $arFields)
Определения student.php:98
static GetFilter($arFilter)
Определения student.php:175
$str
Определения commerceml2.php:63
$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
$res
Определения filter_act.php:7
if($ajaxMode) $ID
Определения get_user.php:27
global $DB
Определения cron_frame.php:29
global $USER
Определения csv_new_run.php:40
DelDuplicateSort(&$arSort)
Определения tools.php:2055
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</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
$val
Определения options.php:1793
$max
Определения template_copy.php:262
$dbResult
Определения updtr957.php:3
$arFilter
Определения user_search.php:106