1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
testmark.php
См. документацию.
1<?php
2
3// 2012-04-13 Checked/modified for compatibility with new data model
5{
6 // 2012-04-13 Checked/modified for compatibility with new data model
7 function CheckFields(&$arFields, $ID = false)
8 {
9 global $DB;
10 $arMsg = Array();
11
12 if ( (is_set($arFields, "MARK") || $ID === false) && (string)$arFields["MARK"] == '')
13 $arMsg[] = array("id"=>"MARK", "text"=> GetMessage("LEARNING_BAD_MARK"));
14
15
16 if (
17 ($ID === false && !is_set($arFields, "TEST_ID"))
18 ||
19 (is_set($arFields, "TEST_ID") && intval($arFields["TEST_ID"]) < 1)
20 )
21 {
22 $arMsg[] = array("id"=>"TEST_ID", "text"=> GetMessage("LEARNING_BAD_TEST_ID"));
23 }
24 elseif (is_set($arFields, "TEST_ID"))
25 {
26 $res = CTest::GetByID($arFields["TEST_ID"]);
27 if(!$arRes = $res->Fetch())
28 $arMsg[] = array("id"=>"TEST_ID", "text"=> GetMessage("LEARNING_BAD_TEST_ID"));
29 }
30
31 if (!is_set($arFields, "SCORE") || intval($arFields["SCORE"]) > 100 || intval($arFields["SCORE"]) < 1)
32 {
33 $arMsg[] = array("id"=>"SCORE", "text"=> GetMessage("LEARNING_BAD_MARK_SCORE"));
34 }
35
36 if(!empty($arMsg))
37 {
38 $e = new CAdminException($arMsg);
39 $GLOBALS["APPLICATION"]->ThrowException($e);
40 return false;
41 }
42
43 return true;
44 }
45
46
47 // 2012-04-13 Checked/modified for compatibility with new data model
48 function Add($arFields)
49 {
50 global $DB;
51
52 if($this->CheckFields($arFields))
53 {
54 unset($arFields["ID"]);
55
56 $ID = $DB->Add("b_learn_test_mark", $arFields, Array("DESCRIPTION"), "learning");
57
58 return $ID;
59 }
60
61 return false;
62 }
63
64
65 // 2012-04-13 Checked/modified for compatibility with new data model
66 function Update($ID, $arFields)
67 {
68 global $DB;
69
70 $ID = intval($ID);
71 if ($ID < 1) return false;
72
73
74 if ($this->CheckFields($arFields, $ID))
75 {
76 unset($arFields["ID"]);
77
78 $arBinds=Array(
79 "DESCRIPTION"=>$arFields["DESCRIPTION"]
80 );
81
82 $strUpdate = $DB->PrepareUpdate("b_learn_test_mark", $arFields, "learning");
83 $strSql = "UPDATE b_learn_test_mark SET ".$strUpdate." WHERE ID=".$ID;
84 $DB->QueryBind($strSql, $arBinds);
85
86 return true;
87 }
88 return false;
89 }
90
91
92 // 2012-04-13 Checked/modified for compatibility with new data model
93 public static function Delete($ID)
94 {
95 global $DB;
96
97 $ID = intval($ID);
98 if ($ID < 1) return false;
99
100 $strSql = "DELETE FROM b_learn_test_mark WHERE ID = ".$ID;
101
102 if (!$DB->Query($strSql))
103 return false;
104
105 return true;
106 }
107
108
109 // 2012-04-13 Checked/modified for compatibility with new data model
110 public static function GetByID($ID)
111 {
112 return CLTestMark::GetList($arOrder=Array(), $arFilter=Array("ID" => $ID));
113 }
114
115
116 // 2012-04-13 Checked/modified for compatibility with new data model
117 public static function GetByPercent($TEST_ID, $PERCENT)
118 {
119 global $DB;
120
121 $PERCENT = intval($PERCENT);
122 if ($PERCENT < 0 || $PERCENT > 100)
123 return false;
124
125 $TEST_ID = intval($TEST_ID);
126 if ($TEST_ID <= 0)
127 return false;
128
130 ">=SCORE" => $PERCENT,
131 "TEST_ID" => $TEST_ID
132 );
133
134 $arOrder = array(
135 "SCORE" => "ASC"
136 );
137
138 $rsMark = CLTestMark::GetList($arOrder, $arFilter);
139
140 if ($arMark = $rsMark->GetNext())
141 return $arMark["MARK"];
142 else
143 return false;
144 }
145
146
147 // 2012-04-13 Checked/modified for compatibility with new data model
148 public static function GetFilter($arFilter)
149 {
150 if (!is_array($arFilter))
151 $arFilter = Array();
152
153 $arSqlSearch = Array();
154
155 foreach ($arFilter as $key => $val)
156 {
158 $key = $res["FIELD"];
159 $cOperationType = $res["OPERATION"];
160
161 $key = mb_strtoupper($key);
162
163 switch ($key)
164 {
165 case "ID":
166 case "SCORE":
167 case "TEST_ID":
168 $arSqlSearch[] = CLearnHelper::FilterCreate("TM.".$key, $val, "number", $bFullJoin, $cOperationType);
169 break;
170 }
171
172 }
173
174 return $arSqlSearch;
175 }
176
177
178 // 2012-04-13 Checked/modified for compatibility with new data model
179 public static function GetList($arOrder=Array(), $arFilter=Array())
180 {
181 global $DB, $USER;
182
183 $arSqlSearch = CLTestMark::GetFilter($arFilter);
184
185 $strSqlSearch = "";
186 for($i=0; $i<count($arSqlSearch); $i++)
187 if($arSqlSearch[$i] <> '')
188 $strSqlSearch .= " AND ".$arSqlSearch[$i]." ";
189
190 $strSql =
191 "SELECT TM.* ".
192 "FROM b_learn_test_mark TM ".
193 "WHERE 1=1 ".
194 $strSqlSearch;
195
196 if (!is_array($arOrder))
197 $arOrder = Array();
198
199 $arSqlOrder = [];
200 foreach($arOrder as $by=>$order)
201 {
202 $by = mb_strtolower($by);
203 $order = mb_strtolower($order);
204 if ($order!="asc")
205 $order = "desc";
206
207 if ($by == "id") $arSqlOrder[] = " TM.ID ".$order." ";
208 elseif ($by == "mark") $arSqlOrder[] = " TM.MARK ".$order." ";
209 elseif ($by == "score") $arSqlOrder[] = " TM.SCORE ".$order." ";
210 elseif ($by == "rand") $arSqlOrder[] = CTest::GetRandFunction();
211 else
212 {
213 $arSqlOrder[] = " TM.ID ".$order." ";
214 $by = "id";
215 }
216 }
217
218 $strSqlOrder = "";
219 DelDuplicateSort($arSqlOrder);
220 for ($i=0; $i<count($arSqlOrder); $i++)
221 {
222 if($i==0)
223 $strSqlOrder = " ORDER BY ";
224 else
225 $strSqlOrder .= ",";
226
227 $strSqlOrder .= $arSqlOrder[$i];
228 }
229
230 $strSql .= $strSqlOrder;
231
232 //echo $strSql;
233
234 return $DB->Query($strSql);
235 }
236}
static GetByID($ID)
Определения test.php:264
Определения testmark.php:5
static Delete($ID)
Определения testmark.php:93
CheckFields(&$arFields, $ID=false)
Определения testmark.php:7
static GetByID($ID)
Определения testmark.php:110
static GetList($arOrder=Array(), $arFilter=Array())
Определения testmark.php:179
Add($arFields)
Определения testmark.php:48
static GetFilter($arFilter)
Определения testmark.php:148
Update($ID, $arFields)
Определения testmark.php:66
static GetByPercent($TEST_ID, $PERCENT)
Определения testmark.php:117
static FilterCreate($fname, $vals, $type, &$bFullJoin, $cOperationType=false, $bSkipEmpty=true)
Определения clearnhelper.php:214
static MkOperationFilter($key)
Определения clearnhelper.php:143
static GetRandFunction()
Определения test.php:7
$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
$arRes
Определения options.php:104
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106