37 $groupId = (int)
$arFields[
'LEARNING_GROUP_ID'];
39 $strSql =
"INSERT INTO b_learn_groups_member (LEARNING_GROUP_ID, USER_ID)
40 VALUES ($groupId, $userId)";
42 $rc =
$DB->query($strSql, $bIgnoreErrors =
true);
44 foreach(
GetModuleEvents(
'learning',
'OnAfterLearningGroupMemberAdd',
true) as $arEvent)
47 return ($rc !==
false);
66 'LEARNING_GROUP_ID' =>
'LGM.LEARNING_GROUP_ID',
67 'USER_ID' =>
'LGM.USER_ID'
70 if (
count($arSelect) <= 0 || in_array(
"*", $arSelect))
73 if (!is_array($arOrder))
77 foreach ($arOrder as $by =>
$order)
88 $arSqlOrder[] =
' ' . $by .
' ' .
$order .
' ';
94 && ( ! in_array($needle, $arSelect,
true) )
97 $arSelect[] = $needle;
101 $arSqlSelect =
array();
102 foreach ($arSelect as $field)
104 $field = mb_strtoupper($field);
106 $arSqlSelect[$field] =
$arFields[$field] .
' AS ' . $field;
109 if (!
sizeof($arSqlSelect))
110 $arSqlSelect[] =
'LGM.USER_ID AS USER_ID';
112 $arSqlSearch = self::getFilter(
$arFilter);
116 U.NAME AS MEMBER_NAME,
117 U.LAST_NAME AS MEMBER_LAST_NAME,
118 U.SECOND_NAME AS MEMBER_SECOND_NAME,
119 U.LOGIN AS MEMBER_LOGIN,
120 U.EMAIL AS MEMBER_EMAIL,
121 " . implode(
",\n", $arSqlSelect);
125 b_learn_groups_member LGM
126 LEFT JOIN b_user U ON U.ID = LGM.USER_ID
128 . (
sizeof($arSqlSearch) ?
" WHERE " . implode(
" AND ", $arSqlSearch) :
"") .
" ";
134 for (
$i = 0, $arSqlOrderCnt =
count($arSqlOrder);
$i < $arSqlOrderCnt;
$i++)
137 $strSqlOrder =
" ORDER BY ";
141 $strSqlOrder .= $arSqlOrder[
$i];
144 $strSql .= $strSqlOrder;
146 if (
count($arNavParams))
148 if (isset($arNavParams[
'nTopCount']))
150 $strSql =
$DB->TopSql($strSql, (
int) $arNavParams[
'nTopCount']);
155 $res_cnt =
$DB->Query(
"SELECT COUNT(LGM.ID) as C " . $strFrom);
156 $res_cnt = $res_cnt->Fetch();
157 $res =
new CDBResult();
158 $rc =
$res->NavQuery($strSql, $res_cnt[
"C"], $arNavParams, $bIgnoreErrors =
false,
"File: " . __FILE__ .
"<br>Line: " . __LINE__);
182 "DELETE FROM b_learn_groups_member WHERE LEARNING_GROUP_ID = " . (
int) $groupId,
183 $bIgnoreErrors =
true
186 return ($rc !==
false);
202 "DELETE FROM b_learn_groups_member WHERE USER_ID = " . (
int)
$userId,
203 $bIgnoreErrors =
true
206 return ($rc !==
false);
218 public static function delete(
$userId, $groupId)
223 "DELETE FROM b_learn_groups_member
224 WHERE USER_ID = " . (
int)
$userId .
"
225 AND LEARNING_GROUP_ID = " . (
int) $groupId,
226 $bIgnoreErrors =
true
229 return ($rc !==
false);
233 private static function checkFields(
$arFields)
241 if ( ! array_key_exists(
'LEARNING_GROUP_ID',
$arFields) )
242 $arMsg[] =
array(
"id" =>
"LEARNING_GROUP_ID",
"text" =>
GetMessage(
"LEARNING_BAD_LEARNING_GROUP_ID"));
246 if ( ! (
$rs &&
$rs->fetch()) )
247 $arMsg[] =
array(
"text" =>
GetMessage(
"LEARNING_BAD_LEARNING_GROUP_ID_EX"),
"id" =>
"BAD_USER_ID");
250 if ( ! array_key_exists(
'USER_ID',
$arFields) )
251 $arMsg[] =
array(
"id" =>
"USER_ID",
"text" =>
GetMessage(
"LEARNING_BAD_USER_ID"));
255 if ( ! ($r && $r->fetch()) )
256 $arMsg[] =
array(
"text" =>
GetMessage(
"LEARNING_BAD_USER_ID_EX"),
"id" =>
"BAD_USER_ID");
261 $e =
new CAdminException($arMsg);
262 $GLOBALS[
"APPLICATION"]->ThrowException($e);
270 private static function getFilter(
$arFilter)
275 $arSqlSearch =
array();
281 $cOperationType =
$res[
"OPERATION"];
288 case 'LEARNING_GROUP_ID':
294 return array_filter($arSqlSearch);
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static FilterCreate($fname, $vals, $type, &$bFullJoin, $cOperationType=false, $bSkipEmpty=true)
static MkOperationFilter($key)
static getList($arOrder, $arFilter, $arSelect=array(), $arNavParams=array())
static deleteByUser($userId)
static onAfterLearningGroupDelete($groupId)
static getList($arOrder, $arFilter, $arSelect=array(), $arNavParams=array())
static deleteByGroup($groupId)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
ExecuteModuleEventEx($arEvent, $arParams=[])
DelDuplicateSort(&$arSort)
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
if(empty($signedUserToken)) $key
</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."%"
$GLOBALS['_____370096793']