1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
certification.php
См. документацию.
1<?php
2
9
10require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/learning/classes/general/certification.php");
11
13{
14 public static function GetList($arOrder = array(), $arFilter = array(), $arNavParams = array())
15 {
16 global $DB;
17
20
21 $strSqlSearch = "";
22 if ( ! empty($arSqlSearch) )
23 {
24 $arSqlSearch = array_filter($arSqlSearch);
25
26 if ( ! empty($arSqlSearch) )
27 $strSqlSearch .= ' AND ' . implode(' AND ', $arSqlSearch);
28 }
29
30 $strSql =
31 "SELECT CER.*, C.NAME as COURSE_NAME, COURSEOLD.ID as COURSE_ID, "
32 . "COURSEOLD.ACTIVE_FROM as ACTIVE_FROM, COURSEOLD.ACTIVE_TO as ACTIVE_TO, COURSEOLD.RATING as RATING, "
33 . "COURSEOLD.RATING_TYPE as RATING_TYPE, COURSEOLD.SCORM as SCORM, "
34 . $DB->Concat("'('",'U.LOGIN',"') '","CASE WHEN U.NAME IS NULL THEN '' ELSE U.NAME END","' '", "CASE WHEN U.LAST_NAME IS NULL THEN '' ELSE U.LAST_NAME END")." as USER_NAME, U.ID as USER_ID, ".
35 $DB->DateToCharFunction("CER.TIMESTAMP_X")." as TIMESTAMP_X, ".
36 $DB->DateToCharFunction("CER.DATE_CREATE")." as DATE_CREATE ";
37
38 $strSqlFrom = "FROM b_learn_certification CER ".
39 "INNER JOIN b_learn_course COURSEOLD ON CER.COURSE_ID = COURSEOLD.ID ".
40 "INNER JOIN b_learn_lesson C ON C.ID = COURSEOLD.LINKED_LESSON_ID ".
41 "INNER JOIN b_user U ON U.ID = CER.STUDENT_ID ".
42 "WHERE 1=1 ";
43
44 if ($oPermParser->IsNeedCheckPerm())
45 $strSqlFrom .= " AND C.ID IN (" . $oPermParser->SQLForAccessibleLessons() . ") ";
46
47 $strSqlFrom .= $strSqlSearch;
48
49 if (!is_array($arOrder))
50 $arOrder = Array();
51
52 foreach($arOrder as $by=>$order)
53 {
54 $by = mb_strtolower($by);
55 $order = mb_strtolower($order);
56 if ($order!="asc")
57 $order = "desc";
58
59 if ($by == "id")
60 $arSqlOrder[] = " CER.ID ".$order." ";
61 elseif ($by == "student_id")
62 $arSqlOrder[] = " CER.STUDENT_ID ".$order." ";
63 elseif ($by == "course_id")
64 $arSqlOrder[] = " CER.COURSE_ID ".$order." ";
65 elseif ($by == "summary")
66 $arSqlOrder[] = " CER.SUMMARY ".$order." ";
67 elseif ($by == "sort")
68 $arSqlOrder[] = " CER.SORT ".$order." ";
69 elseif ($by == "active")
70 $arSqlOrder[] = " CER.ACTIVE ".$order." ";
71 elseif ($by == "from_online")
72 $arSqlOrder[] = " CER.FROM_ONLINE ".$order." ";
73 elseif ($by == "public")
74 $arSqlOrder[] = " CER.PUBLIC ".$order." ";
75 elseif ($by == "public_profile")
76 $arSqlOrder[] = " CER.PUBLIC ".$order." ";
77 elseif ($by == "date_create")
78 $arSqlOrder[] = " CER.DATE_CREATE ".$order." ";
79 elseif ($by == "summary")
80 $arSqlOrder[] = " CER.SUMMARY ".$order." ";
81 elseif ($by == "max_summary")
82 $arSqlOrder[] = " CER.MAX_SUMMARY ".$order." ";
83 elseif ($by == "timestamp_x")
84 $arSqlOrder[] = " CER.TIMESTAMP_X ".$order." ";
85 else
86 $arSqlOrder[] = " CER.ID ".$order." ";
87 }
88
89 $strSqlOrder = "";
90 DelDuplicateSort($arSqlOrder);
91 if ( ! empty($arSqlOrder) )
92 $strSqlOrder .= " ORDER BY " . implode(', ', $arSqlOrder);
93
94 $strSql .= $strSqlFrom . $strSqlOrder;
95
96 if (is_array($arNavParams) && ( ! empty($arNavParams) ) )
97 {
98 if (isset($arNavParams['nTopCount']) && ((int) $arNavParams['nTopCount'] > 0))
99 {
100 $strSql = $DB->TopSql($strSql, (int) $arNavParams['nTopCount']);
101 $res = $DB->Query($strSql);
102 }
103 else
104 {
105 $res_cnt = $DB->Query("SELECT COUNT(CER.ID) as CNT " . $strSqlFrom);
106 $res_cnt = $res_cnt->fetch();
107 $res = new CDBResult();
108 $rc = $res->NavQuery($strSql, $res_cnt['CNT'], $arNavParams, true);
109 if ($rc === false)
110 throw new LearnException ('EA_SQLERROR', LearnException::EXC_ERR_ALL_GIVEUP);
111 }
112 }
113 else
114 $res = $DB->Query($strSql);
115
116 return ($res);
117 }
118}
static GetFilter($arFilter)
Определения certification.php:189
Определения certification.php:13
static GetList($arOrder=array(), $arFilter=array(), $arNavParams=array())
Определения certification.php:14
Определения learnexception.php:4
const EXC_ERR_ALL_GIVEUP
Определения learnexception.php:6
</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
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
DelDuplicateSort(&$arSort)
Определения tools.php:2055
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$arFilter
Определения user_search.php:106