/** * <p>Возвращает список учётных записей студентов по фильтру <b>arFilter</b>, отсортированный в порядке <b>arOrder</b>.</p> * * * @param array $arrayarOrder = Array("ID"=>"DESC") Массив для сортировки результата. Массив вида <i>array("поле * сортировки"=>"направление сортировки" [, ...])</i>.<br>Поле для * сортировки может принимать значения: <ul> <li> <b>USER_ID</b> - <a * href="http://dev.1c-bitrix.ru/api_help/main/reference/cuser/index.php">Код пользователя</a>; </li> <li> * <b>PUBLIC_PROFILE</b> - профиль доступен публично (Y/N); </li> </ul>Направление * сортировки может принимать значения: <ul> <li> <b>asc</b> - по возрастанию; * </li> <li> <b>desc</b> - по убыванию; </li> </ul>Необязательный. По умолчанию * сортируется по убыванию кода пользователя. * * @param array $arrayarFilter = Array() Массив вида <i>array("фильтруемое поле"=>"значение фильтра" [, ...])</i>. * Фильтруемое поле может принимать значения: <ul> <li> <b>USER_ID</b> - <a * href="http://dev.1c-bitrix.ru/api_help/main/reference/cuser/index.php">Код пользователя</a>; </li> <li> * <b>PUBLIC_PROFILE</b> - профиль доступен публично (Y/N); </li> <li> <b>TRANSCRIPT</b> - * числовой случайный идентификатор; </li> <li> <b>RESUME</b> - резюме студента * (можно искать по шаблону [%_]); </li> </ul>Перед названием фильтруемого * поля можно указать тип фильтрации: <ul> <li>"!" - не равно </li> <li>"<" - * меньше </li> <li>"<=" - меньше либо равно </li> <li>">" - больше </li> <li>">=" - * больше либо равно </li> </ul> <br>"<i>значения фильтра</i>" - одиночное * значение или массив.<br><br>Необязательный. По умолчанию записи не * фильтруются. * * @return CDBResult <p>Возвращается объект <a * href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">CDBResult</a>.</p> </h * * <h4>Example</h4> * <pre> * <? * if (CModule::IncludeModule("learning")) * { * $USER_ID = 1; $TRANSCRIPT = 46785643; * $res = CStudent::GetList(Array(), Array("USER_ID" => $USER_ID, "TRANSCRIPT" => $TRANSCRIPT)); * * while ($arProfile = $res->GetNext()) * { * echo $arProfile["RESUME"]; * } * } * ?> * </pre> * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">CDBResult</a> </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/cstudent/index.php">CStudent</a>::<a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/cstudent/getbyid.php">GetByID</a> </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/learning/fields.php#student">Поля студента</a> </li> </ul> <a * name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/learning/classes/cstudent/getlist.php * @author Bitrix */ public static function GetList($arOrder = array(), $arFilter = array()) { global $DB, $USER; $arSqlSearch = CStudent::GetFilter($arFilter); $strSqlSearch = ""; for ($i = 0; $i < count($arSqlSearch); $i++) { if (strlen($arSqlSearch[$i]) > 0) { $strSqlSearch .= " AND " . $arSqlSearch[$i] . " "; } } $strSql = "SELECT S.* " . "FROM b_learn_student S " . "WHERE 1=1 " . $strSqlSearch; if (!is_array($arOrder)) { $arOrder = array(); } foreach ($arOrder as $by => $order) { $by = strtolower($by); $order = strtolower($order); if ($order != "asc") { $order = "desc"; } if ($by == "user_id") { $arSqlOrder[] = " S.USER_ID " . $order . " "; } elseif ($by == "public_profile") { $arSqlOrder[] = " S.PUBLIC_PROFILE " . $order . " "; } else { $arSqlOrder[] = " S.USER_ID " . $order . " "; $by = "user_id"; } } $strSqlOrder = ""; DelDuplicateSort($arSqlOrder); for ($i = 0; $i < count($arSqlOrder); $i++) { if ($i == 0) { $strSqlOrder = " ORDER BY "; } else { $strSqlOrder .= ","; } $strSqlOrder .= $arSqlOrder[$i]; } $strSql .= $strSqlOrder; //echo $strSql; return $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); }