1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
testmark.php
См. документацию.
1
<?php
2
3
// 2012-04-13 Checked/modified for compatibility with new data model
4
class
CLTestMark
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
129
$arFilter
=
array
(
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
{
157
$res
=
CLearnHelper::MkOperationFilter
(
$key
);
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
}
CAdminException
Определения
adminexception.php:4
CAllTest\GetByID
static GetByID($ID)
Определения
test.php:264
CLTestMark
Определения
testmark.php:5
CLTestMark\Delete
static Delete($ID)
Определения
testmark.php:93
CLTestMark\CheckFields
CheckFields(&$arFields, $ID=false)
Определения
testmark.php:7
CLTestMark\GetByID
static GetByID($ID)
Определения
testmark.php:110
CLTestMark\GetList
static GetList($arOrder=Array(), $arFilter=Array())
Определения
testmark.php:179
CLTestMark\Add
Add($arFields)
Определения
testmark.php:48
CLTestMark\GetFilter
static GetFilter($arFilter)
Определения
testmark.php:148
CLTestMark\Update
Update($ID, $arFields)
Определения
testmark.php:66
CLTestMark\GetByPercent
static GetByPercent($TEST_ID, $PERCENT)
Определения
testmark.php:117
CLearnHelper\FilterCreate
static FilterCreate($fname, $vals, $type, &$bFullJoin, $cOperationType=false, $bSkipEmpty=true)
Определения
clearnhelper.php:214
CLearnHelper\MkOperationFilter
static MkOperationFilter($key)
Определения
clearnhelper.php:143
CTest\GetRandFunction
static GetRandFunction()
Определения
test.php:7
$arFields
$arFields
Определения
dblapprove.php:5
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$res
$res
Определения
filter_act.php:7
$ID
if($ajaxMode) $ID
Определения
get_user.php:27
$DB
global $DB
Определения
cron_frame.php:29
$USER
global $USER
Определения
csv_new_run.php:40
DelDuplicateSort
DelDuplicateSort(&$arSort)
Определения
tools.php:2055
is_set
is_set($a, $k=false)
Определения
tools.php:2133
GetMessage
GetMessage($name, $aReplace=null)
Определения
tools.php:3397
$order
$order
Определения
payment.php:8
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$key
if(empty($signedUserToken)) $key
Определения
quickway.php:257
$i
$i
Определения
factura.php:643
count
</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
$val
Определения
options.php:1793
$arRes
$arRes
Определения
options.php:104
$GLOBALS
$GLOBALS['_____370096793']
Определения
update_client.php:1
$arFilter
$arFilter
Определения
user_search.php:106
bitrix
modules
learning
classes
general
testmark.php
Создано системой
1.14.0