1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
ilearngraphnode.php
См. документацию.
1
<?php
2
12
interface
ILearnGraphNode
13
{
44
public
static
function
Create
(
$arFields
);
45
63
public
static
function
Update
($id,
$arFields
);
64
74
public
static
function
GetByID
($id);
75
82
public
static
function
Remove
($id);
83
}
84
94
abstract
class
CLearnGraphNode
implements
ILearnGraphNode
95
{
96
// Rights allowed for different fields (stored as bitmask). MUST be integers >= zero
97
const
SQL_NONE
= 0;
98
const
SQL_SELECT
= 1;
99
const
SQL_INSERT
= 2;
100
const
SQL_UPDATE
= 4;
101
102
public
static
function
Remove
($id)
103
{
104
global
$DB
;
105
106
if
( ! is_numeric($id) )
107
throw
new
LearnException
(
'EA_PARAMS'
,
LearnException::EXC_ERR_GN_REMOVE
);
108
109
$lessonData =
self::GetByID
($id);
110
if
( ! array_key_exists(
'NAME'
, $lessonData) )
111
throw
new
LearnException
(
'EA_NOT_EXISTS'
,
LearnException::EXC_ERR_GN_REMOVE
);
112
113
// Remove pictures
114
if
( array_key_exists(
'PREVIEW_PICTURE'
, $lessonData) && ($lessonData[
'PREVIEW_PICTURE'
] > 0) )
115
CFile::Delete($lessonData[
'PREVIEW_PICTURE'
]);
116
117
if
( array_key_exists(
'DETAIL_PICTURE'
, $lessonData) && ($lessonData[
'DETAIL_PICTURE'
] > 0) )
118
CFile::Delete($lessonData[
'DETAIL_PICTURE'
]);
119
120
// Remove SCORM data
121
if
( array_key_exists(
'SCORM'
, $lessonData) && ($lessonData[
'SCORM'
] ===
'Y'
) )
122
DeleteDirFilesEx
(
"/"
.(COption::GetOptionString(
"main"
,
"upload_dir"
,
"upload"
)).
"/learning/scorm/"
. $id);
123
124
// Remove graph node
125
$rc =
$DB
->Query (
126
"DELETE FROM b_learn_lesson
127
WHERE ID = '"
. ($id + 0) .
"'"
,
128
true
// ignore errors
129
);
130
131
if
($rc ===
false
)
132
throw
new
LearnException
(
'EA_SQLERROR'
,
LearnException::EXC_ERR_GN_REMOVE
);
133
134
if
($rc->AffectedRowsCount() == 0)
135
throw
new
LearnException
(
'EA_NOT_EXISTS'
,
LearnException::EXC_ERR_GN_REMOVE
);
136
}
137
138
public
static
function
GetByID
($id)
139
{
140
global
$DB
;
141
142
static
$cacheFieldsToSelect =
null
;
143
144
if
( ! (is_numeric ($id) && is_int ($id + 0)) )
145
throw
new
LearnException
(
'EA_PARAMS'
,
LearnException::EXC_ERR_GN_GETBYID
);
146
147
// Prepare list of DB fields to be selected
148
if
($cacheFieldsToSelect ===
null
)
149
{
150
$arReversedFieldsMap =
self::_GetReversedFieldsMap
();
151
152
$arFieldsToSelect =
array
();
153
foreach
($arReversedFieldsMap as $fieldNameInDB => $value)
154
{
155
if
($value[
'access'
] & self::SQL_SELECT)
156
{
157
if
( ($fieldNameInDB ===
'TIMESTAMP_X'
) || ($fieldNameInDB ===
'DATE_CREATE'
) )
158
$arFieldsToSelect[] =
$DB
->DateToCharFunction($fieldNameInDB) .
' AS '
. $fieldNameInDB;
159
else
160
$arFieldsToSelect[] = $fieldNameInDB;
161
}
162
}
163
164
$cacheFieldsToSelect = implode (
','
, $arFieldsToSelect);
165
166
if
( ! ($cacheFieldsToSelect <>
''
) )
167
$cacheFieldsToSelect =
false
;
168
}
169
170
if
($cacheFieldsToSelect ===
false
)
171
throw
new
LearnException
(
'EA_ACCESS_DENIED'
,
LearnException::EXC_ERR_GN_GETBYID
);
172
173
// Get graph node data
174
$rc =
$DB
->Query (
175
"SELECT "
. $cacheFieldsToSelect .
"
176
FROM b_learn_lesson
177
WHERE ID='"
. (
int
) ($id + 0) .
"'"
,
178
true
// ignore errors
179
);
180
181
if
($rc ===
false
)
182
throw
new
LearnException
(
'EA_SQLERROR'
,
LearnException::EXC_ERR_GN_GETBYID
);
183
184
if
( ! (($arData = $rc->Fetch()) && is_array($arData)) )
185
throw
new
LearnException
(
'EA_NOT_EXISTS'
,
LearnException::EXC_ERR_GN_GETBYID
);
186
187
return
($arData);
188
}
189
190
public
static
function
Create
($arInFields)
191
{
192
return
self::_InsertOrUpdate
($arInFields,
'insert'
);
193
}
194
195
public
static
function
Update
($id, $arInFields)
196
{
197
self::_InsertOrUpdate
($arInFields,
'update'
, $id);
198
}
199
200
protected
static
function
_InsertOrUpdate
($arInFields, $mode, $id =
false
)
201
{
202
global
$DB
,
$USER
;
203
204
$createdBy = 1;
205
if
(is_object(
$USER
) && method_exists(
$USER
,
'getId'
))
206
$createdBy = (int)
$USER
->getId();
207
208
switch
($mode)
209
{
210
case
'update'
:
211
$accessLevel = self::SQL_UPDATE;
212
$throwErrCode =
LearnException::EXC_ERR_GN_UPDATE
;
213
$isInsert =
false
;
214
$isForUpdate =
true
;
215
216
if
( ! is_numeric ($id) )
217
throw
new
LearnException
(
'EA_PARAMS: $id'
, $throwErrCode);
218
break
;
219
220
case
'insert'
:
221
$accessLevel = self::SQL_INSERT;
222
$throwErrCode =
LearnException::EXC_ERR_GN_CREATE
;
223
$isInsert =
true
;
224
$isForUpdate =
false
;
225
break
;
226
227
default
:
228
throw
new
LearnException
(
'EA_LOGIC'
,
229
LearnException::EXC_ERR_ALL_LOGIC
);
230
break
;
231
}
232
233
// Mapping of fields' names in db and in function arguments
234
$arFieldsMap =
self::_GetFieldsMap
();
235
236
// Check params for access_level (throws LearnException on failure). After - canonize it
237
$arFields
=
self::_CheckAndCanonizeFields
($arFieldsMap, $arInFields, $accessLevel, $isForUpdate);
238
239
// Prepares array of fields with values for query to DB. Also, uploads/removes files, if there are.
240
if
($isForUpdate)
241
$arFieldsToDb =
self::_PrepareDataForQuery
($arFieldsMap,
$arFields
, $id);
242
else
243
$arFieldsToDb =
self::_PrepareDataForQuery
($arFieldsMap,
$arFields
,
false
);
244
245
$arFieldsToDb[
'~TIMESTAMP_X'
] =
$DB
->GetNowFunction();
246
$newLessonId =
null
;
247
248
if
($isInsert)
249
{
250
return
$DB
->Add(
'b_learn_lesson'
, $arFieldsToDb);
251
}
252
else
253
{
254
$strUpdate =
$DB
->PrepareUpdate(
'b_learn_lesson'
, $arFieldsToDb);
255
if
($strUpdate)
256
{
257
$DB
->Query(
"UPDATE b_learn_lesson SET $strUpdate WHERE ID = "
. intval($id));
258
}
259
}
260
}
261
268
protected
static
function
_PrepareDataForQuery
($arFieldsMap,
$arFields
, $lessonId)
269
{
270
global
$DB
;
271
272
$arLessonData =
false
;
273
274
// if data prepartation for update - cache data about lesson to be updated
275
if
($lessonId !==
false
)
276
{
277
// if lesson data not cached - get it
278
if
($arLessonData ===
false
)
279
$arLessonData =
self::GetByID
($lessonId);
280
}
281
282
$arFieldsToDb =
array
();
283
284
foreach
(
$arFields
as $field => $value)
285
{
286
$fieldNameInDB = $arFieldsMap[$field][
'field'
];
287
288
if
( ($field ===
'PREVIEW_PICTURE'
)
289
|| ($field ===
'DETAIL_PICTURE'
)
290
|| ($fieldNameInDB ===
'PREVIEW_PICTURE'
)
291
|| ($fieldNameInDB ===
'DETAIL_PICTURE'
)
292
)
293
{
294
$error
= CFile::CheckImageFile($value);
295
if
(
$error <>
''
)
296
{
297
throw
new
LearnException
(
298
'EA_PARAMS: '
.
$error
,
299
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
300
}
301
302
// if data prepartation for update - gets prev pictures names
303
if
($lessonId !==
false
)
304
{
305
if
( ! array_key_exists($field, $arLessonData) )
306
throw
new
LearnException
(
'EA_LOGIC'
,
LearnException::EXC_ERR_ALL_LOGIC
);
307
308
$arFields
[$field][
'old_file'
] = $arLessonData[$field];
309
$value =
$arFields
[$field];
310
}
311
312
// throws LearnException on error, returns FALSE if id of image not updated
313
$fileId =
self::_UploadFile
($fieldNameInDB, $value);
314
if
($fileId ===
false
)
315
continue
;
// id of image not updated
316
317
// replace value for current field to fileId
318
$value =
$arFields
[$field] = $fileId;
319
}
320
321
if
($value === NULL)
322
$arFieldsToDb[$fieldNameInDB] =
false
;
323
else
324
$arFieldsToDb[$fieldNameInDB] = $value;
325
}
326
327
return
($arFieldsToDb);
328
}
329
333
protected
static
function
_UploadFile
($fieldNameInDB, $arData)
334
{
335
if
( ! is_array($arData) )
336
{
337
throw
new
LearnException
(
'EA_PARAMS: '
. var_export ($arData,
true
),
338
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
339
}
340
341
// Check for fields needed by CFile::SaveForDB
342
$fieldsMustBe =
array
(
'name'
,
'size'
,
'tmp_name'
,
'type'
,
'del'
,
'MODULE_ID'
);
343
if
(
count
(array_diff($fieldsMustBe, array_keys($arData))) !== 0)
344
{
345
throw
new
LearnException
(
'EA_PARAMS: some fields not found'
,
346
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
347
}
348
349
if
($arData[
'del'
] !==
'Y'
)
350
$arData[
'del'
] =
''
;
// we can't use N' due to bug in CFile::SaveToDB();
351
352
$arFileData =
array
($fieldNameInDB => $arData);
353
354
$rc = CFile::SaveForDB($arFileData, $fieldNameInDB,
355
'learning'
);
// learning - is folder in /upload
356
357
// This is workaround caused by bug in CFile::SaveToDB();
358
if
(($rc ===
false
) && ($arData[
'name'
] ==
''
) && ($arData[
'del'
] !==
'Y'
))
359
{
360
// We are not deleting file and not uploading new, so return FALSE, what means no image's ID updates occured
361
return
(
false
);
362
}
363
364
if
( ($rc ===
false
)
365
|| ( ! isset($arFileData[$fieldNameInDB]) )
366
|| ( ($arData[
'del'
] !==
'Y'
) && ($arFileData[$fieldNameInDB] ===
false
) )
367
)
368
{
369
throw
new
LearnException
(
'EA_OTHER: file uploading error: '
. var_export ($rc,
true
)
370
.
'; '
. var_export ($arFileData,
true
) .
'; '
. var_export ($arData,
true
),
371
LearnException::EXC_ERR_GN_FILE_UPLOAD
);
372
}
373
374
// If file removed - return NULL
375
if
($arFileData[$fieldNameInDB] ===
false
)
376
$fileId = NULL;
377
else
378
$fileId = intval($arFileData[$fieldNameInDB]);
379
380
return
($fileId);
381
}
382
386
protected
static
function
_CheckAndCanonizeFields
($arFieldsMap,
$arFields
, $access_level, $forUpdate =
false
)
387
{
388
if
( ! (is_int($access_level) && ($access_level >= 0)) )
389
{
390
throw
new
LearnException
(
'EA_LOGIC: wrong access level'
,
391
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
392
}
393
394
// Check params
395
$arFieldsNames = array_keys(
$arFields
);
396
foreach
($arFieldsNames as $fieldName)
397
{
398
// Skip checking user fields
399
if
(mb_substr($fieldName, 0, 3) ===
'UF_'
)
400
continue
;
401
402
// Is field exists in DB?
403
if
( ! array_key_exists ($fieldName, $arFieldsMap) )
404
{
405
throw
new
LearnException
(
'EA_PARAMS: '
. $fieldName,
406
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
407
}
408
409
// Is access_level allowed by logic?
410
if
(($arFieldsMap[$fieldName][
'access'
] & $access_level) !== $access_level)
411
{
412
throw
new
LearnException
(
'EA_LOGIC: ACCESS TO FIELD "'
. $fieldName .
'" logically prohibited.'
,
413
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
414
}
415
}
416
417
// PREVIEW_TEXT_TYPE
418
if
( ( ! $forUpdate ) && ( ! array_key_exists(
'PREVIEW_TEXT_TYPE'
,
$arFields
) ) )
419
$arFields
[
'PREVIEW_TEXT_TYPE'
] =
'text'
;
// by default, for backward compatibility
420
421
if
( ( ! $forUpdate ) || array_key_exists(
'PREVIEW_TEXT_TYPE'
,
$arFields
) )
422
{
423
if
( ! in_array (
$arFields
[
'PREVIEW_TEXT_TYPE'
],
array
(
'text'
,
'html'
),
true
) )
424
throw
new
LearnException
(
'EA_PARAMS: PREVIEW_TEXT_TYPE'
,
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
425
}
426
427
// DETAIL_TEXT_TYPE
428
if
( ( ! $forUpdate ) && ( ! array_key_exists(
'DETAIL_TEXT_TYPE'
,
$arFields
) ) )
429
$arFields
[
'DETAIL_TEXT_TYPE'
] =
'text'
;
// by default, for backward compatibility
430
431
if
( ( ! $forUpdate ) || array_key_exists(
'DETAIL_TEXT_TYPE'
,
$arFields
) )
432
{
433
if
( ! in_array (
$arFields
[
'DETAIL_TEXT_TYPE'
],
array
(
'text'
,
'html'
,
'file'
),
true
) )
434
throw
new
LearnException
(
'EA_PARAMS: DETAIL_TEXT_TYPE'
,
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
435
}
436
437
// KEYWORDS
438
if
( ! $forUpdate )
439
{
440
if
(
441
( ! array_key_exists(
'KEYWORDS'
,
$arFields
) )
442
|| (
$arFields
[
'KEYWORDS'
] === NULL)
443
)
444
{
445
$arFields
[
'KEYWORDS'
] =
''
;
446
}
447
}
448
else
// for update
449
{
450
if
(
451
array_key_exists(
'KEYWORDS'
,
$arFields
)
452
&& (
$arFields
[
'KEYWORDS'
] === NULL)
453
)
454
{
455
$arFields
[
'KEYWORDS'
] =
''
;
456
}
457
}
458
459
// ACTIVE
460
if
(array_key_exists(
'ACTIVE'
,
$arFields
))
461
{
462
// canonize
463
if
( in_array(
$arFields
[
'ACTIVE'
],
array
(
true
,
false
),
true
) )
464
{
465
if
(
$arFields
[
'ACTIVE'
])
466
$arFields
[
'ACTIVE'
] =
'Y'
;
467
else
468
$arFields
[
'ACTIVE'
] =
'N'
;
469
}
470
}
471
else
472
{
473
if
( ! $forUpdate )
474
$arFields
[
'ACTIVE'
] =
'Y'
;
// by default, for backward compatibility
475
}
476
477
// ACTIVE - check admitted region
478
if
( ( ! $forUpdate ) || array_key_exists(
'ACTIVE'
,
$arFields
) )
479
{
480
if
( ! in_array(
$arFields
[
'ACTIVE'
],
array
(
'Y'
,
'N'
),
true
) )
481
{
482
throw
new
LearnException
(
'EA_PARAMS: ACTIVE is out of range'
,
483
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
484
}
485
}
486
487
// PREVIEW_PICTURE
488
if
(array_key_exists(
'PREVIEW_PICTURE'
,
$arFields
))
489
{
490
// remove this field, if nothing to do
491
if
(!is_array(
$arFields
[
'PREVIEW_PICTURE'
]))
492
{
493
unset(
$arFields
[
'PREVIEW_PICTURE'
]);
494
}
495
else
if
(
496
(!array_key_exists(
'name'
,
$arFields
[
'PREVIEW_PICTURE'
]) ||
$arFields
[
'PREVIEW_PICTURE'
][
'name'
] ==
''
)
497
&&
498
(!array_key_exists(
'del'
,
$arFields
[
'PREVIEW_PICTURE'
]) ||
$arFields
[
'PREVIEW_PICTURE'
][
'del'
] ==
''
)
499
&&
500
(!isset(
$arFields
[
'PREVIEW_PICTURE'
][
'description'
]) ||
$arFields
[
'PREVIEW_PICTURE'
][
'description'
] ==
''
)
501
)
502
{
503
unset(
$arFields
[
'PREVIEW_PICTURE'
]);
504
}
505
else
506
{
507
// check structure
508
$check = array_key_exists(
'name'
,
$arFields
[
'PREVIEW_PICTURE'
])
509
&& array_key_exists(
'size'
,
$arFields
[
'PREVIEW_PICTURE'
])
510
&& array_key_exists(
'tmp_name'
,
$arFields
[
'PREVIEW_PICTURE'
])
511
&& array_key_exists(
'type'
,
$arFields
[
'PREVIEW_PICTURE'
])
512
&& ( ( ! array_key_exists(
'del'
,
$arFields
[
'PREVIEW_PICTURE'
]) )
513
|| in_array(
$arFields
[
'PREVIEW_PICTURE'
][
'del'
],
array
(
'Y'
,
'N'
, NULL),
true
)
514
);
515
516
if
( ! $check )
517
{
518
throw
new
LearnException
(
'EA_PARAMS: <pre>'
. var_export(
$arFields
[
'PREVIEW_PICTURE'
],
true
)
519
.
'</pre>'
,
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
520
}
521
522
$arFields
[
'PREVIEW_PICTURE'
][
'MODULE_ID'
] =
CLearnHelper::MODULE_ID
;
// learning
523
524
if
(
$arFields
[
'PREVIEW_PICTURE'
][
'del'
] === NULL)
525
$arFields
[
'PREVIEW_PICTURE'
][
'del'
] =
'N'
;
526
}
527
}
528
529
// DETAIL_PICTURE
530
if
(array_key_exists(
'DETAIL_PICTURE'
,
$arFields
))
531
{
532
// remove this field, if nothing to do
533
if
(!is_array(
$arFields
[
'DETAIL_PICTURE'
]))
534
{
535
unset(
$arFields
[
'DETAIL_PICTURE'
]);
536
}
537
elseif
(
538
(!array_key_exists(
'name'
,
$arFields
[
'DETAIL_PICTURE'
]) ||
$arFields
[
'DETAIL_PICTURE'
][
'name'
] ==
''
)
539
&&
540
(!array_key_exists(
'del'
,
$arFields
[
'DETAIL_PICTURE'
]) ||
$arFields
[
'DETAIL_PICTURE'
][
'del'
] ==
''
)
541
&&
542
(!isset(
$arFields
[
'DETAIL_PICTURE'
][
'description'
]) ||
$arFields
[
'DETAIL_PICTURE'
][
'description'
] ==
''
)
543
)
544
{
545
unset(
$arFields
[
'DETAIL_PICTURE'
]);
546
}
547
else
548
{
549
// check structure
550
$check = array_key_exists(
'name'
,
$arFields
[
'DETAIL_PICTURE'
])
551
&& array_key_exists(
'size'
,
$arFields
[
'DETAIL_PICTURE'
])
552
&& array_key_exists(
'tmp_name'
,
$arFields
[
'DETAIL_PICTURE'
])
553
&& array_key_exists(
'type'
,
$arFields
[
'DETAIL_PICTURE'
])
554
&& ( ( ! array_key_exists(
'del'
,
$arFields
[
'DETAIL_PICTURE'
]) )
555
|| in_array(
$arFields
[
'DETAIL_PICTURE'
][
'del'
],
array
(
'Y'
,
'N'
, NULL),
true
)
556
);
557
558
if
( ! $check )
559
{
560
throw
new
LearnException
(
'EA_PARAMS: <pre>'
. var_export(
$arFields
[
'DETAIL_PICTURE'
],
true
)
561
.
'</pre>'
,
LearnException::EXC_ERR_GN_CHECK_PARAMS
);
562
}
563
564
$arFields
[
'DETAIL_PICTURE'
][
'MODULE_ID'
] =
CLearnHelper::MODULE_ID
;
// learning
565
566
if
(
$arFields
[
'DETAIL_PICTURE'
][
'del'
] === NULL)
567
$arFields
[
'DETAIL_PICTURE'
][
'del'
] =
'N'
;
568
}
569
}
570
571
return
(
$arFields
);
572
}
573
574
protected
static
function
_GetFieldsMap
()
575
{
576
static
$arFieldsMap =
null
;
577
578
if
($arFieldsMap ===
null
)
579
{
580
$arFieldsMap =
array
(
581
'ID'
=>
array
(
582
'field'
=>
'ID'
,
583
'access'
=> self::SQL_SELECT),
584
'TIMESTAMP_X'
=>
array
(
585
'field'
=>
'TIMESTAMP_X'
,
586
'access'
=> self::SQL_SELECT),
587
'DATE_CREATE'
=>
array
(
588
'field'
=>
'DATE_CREATE'
,
589
'access'
=> self::SQL_SELECT),
590
'CREATED_BY'
=>
array
(
591
'field'
=>
'CREATED_BY'
,
592
'access'
=> self::SQL_SELECT),
593
'ACTIVE'
=>
array
(
594
'field'
=>
'ACTIVE'
,
595
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
596
'NAME'
=>
array
(
597
'field'
=>
'NAME'
,
598
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
599
'CODE'
=>
array
(
600
'field'
=>
'CODE'
,
601
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
602
'KEYWORDS'
=>
array
(
603
'field'
=>
'KEYWORDS'
,
604
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
605
'PREVIEW_PICTURE'
=>
array
(
606
'field'
=>
'PREVIEW_PICTURE'
,
607
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
608
'PREVIEW_TEXT'
=>
array
(
609
'field'
=>
'PREVIEW_TEXT'
,
610
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
611
'PREVIEW_TEXT_TYPE'
=>
array
(
612
'field'
=>
'PREVIEW_TEXT_TYPE'
,
613
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
614
'DETAIL_PICTURE'
=>
array
(
615
'field'
=>
'DETAIL_PICTURE'
,
616
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
617
'DETAIL_TEXT'
=>
array
(
618
'field'
=>
'DETAIL_TEXT'
,
619
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
620
'DETAIL_TEXT_TYPE'
=>
array
(
621
'field'
=>
'DETAIL_TEXT_TYPE'
,
622
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE),
623
'LAUNCH'
=>
array
(
624
'field'
=>
'LAUNCH'
,
625
'access'
=> self::SQL_SELECT + self::SQL_INSERT + self::SQL_UPDATE)
626
);
627
}
628
629
return
($arFieldsMap);
630
}
631
632
protected
static
function
_GetReversedFieldsMap
()
633
{
634
static
$cache =
false
;
635
636
if
($cache ===
false
)
637
{
638
$fieldsMap =
self::_GetFieldsMap
();
639
640
foreach
($fieldsMap as $propertyName => $arData)
641
{
642
$fieldNameInDB = $arData[
'field'
];
643
$cache[$fieldNameInDB] =
array
(
'propertyName'
=> $propertyName,
'access'
=> $arData[
'access'
]);
644
}
645
}
646
647
return
($cache);
648
}
649
}
CLearnGraphNode
Определения
ilearngraphnode.php:95
CLearnGraphNode\SQL_UPDATE
const SQL_UPDATE
Определения
ilearngraphnode.php:100
CLearnGraphNode\Update
static Update($id, $arInFields)
Определения
ilearngraphnode.php:195
CLearnGraphNode\_InsertOrUpdate
static _InsertOrUpdate($arInFields, $mode, $id=false)
Определения
ilearngraphnode.php:200
CLearnGraphNode\Create
static Create($arInFields)
Определения
ilearngraphnode.php:190
CLearnGraphNode\Remove
static Remove($id)
Определения
ilearngraphnode.php:102
CLearnGraphNode\GetByID
static GetByID($id)
Определения
ilearngraphnode.php:138
CLearnGraphNode\SQL_INSERT
const SQL_INSERT
Определения
ilearngraphnode.php:99
CLearnGraphNode\_GetReversedFieldsMap
static _GetReversedFieldsMap()
Определения
ilearngraphnode.php:632
CLearnGraphNode\SQL_NONE
const SQL_NONE
Определения
ilearngraphnode.php:97
CLearnGraphNode\_GetFieldsMap
static _GetFieldsMap()
Определения
ilearngraphnode.php:574
CLearnGraphNode\_UploadFile
static _UploadFile($fieldNameInDB, $arData)
Определения
ilearngraphnode.php:333
CLearnGraphNode\_PrepareDataForQuery
static _PrepareDataForQuery($arFieldsMap, $arFields, $lessonId)
Определения
ilearngraphnode.php:268
CLearnGraphNode\SQL_SELECT
const SQL_SELECT
Определения
ilearngraphnode.php:98
CLearnGraphNode\_CheckAndCanonizeFields
static _CheckAndCanonizeFields($arFieldsMap, $arFields, $access_level, $forUpdate=false)
Определения
ilearngraphnode.php:386
CLearnHelper\MODULE_ID
const MODULE_ID
Определения
clearnhelper.php:21
LearnException
Определения
learnexception.php:4
LearnException\EXC_ERR_GN_FILE_UPLOAD
const EXC_ERR_GN_FILE_UPLOAD
Определения
learnexception.php:25
LearnException\EXC_ERR_GN_GETBYID
const EXC_ERR_GN_GETBYID
Определения
learnexception.php:23
LearnException\EXC_ERR_GN_REMOVE
const EXC_ERR_GN_REMOVE
Определения
learnexception.php:22
LearnException\EXC_ERR_ALL_LOGIC
const EXC_ERR_ALL_LOGIC
Определения
learnexception.php:5
LearnException\EXC_ERR_GN_UPDATE
const EXC_ERR_GN_UPDATE
Определения
learnexception.php:21
LearnException\EXC_ERR_GN_CREATE
const EXC_ERR_GN_CREATE
Определения
learnexception.php:20
LearnException\EXC_ERR_GN_CHECK_PARAMS
const EXC_ERR_GN_CHECK_PARAMS
Определения
learnexception.php:24
$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
ILearnGraphNode
Определения
ilearngraphnode.php:13
ILearnGraphNode\Remove
static Remove($id)
ILearnGraphNode\GetByID
static GetByID($id)
ILearnGraphNode\Create
static Create($arFields)
ILearnGraphNode\Update
static Update($id, $arFields)
$DB
global $DB
Определения
cron_frame.php:29
$USER
global $USER
Определения
csv_new_run.php:40
DeleteDirFilesEx
DeleteDirFilesEx($path, $root=null)
Определения
tools.php:2823
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
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
$error
$error
Определения
subscription_card_product.php:20
bitrix
modules
learning
classes
general
ilearngraphnode.php
Создано системой
1.14.0