public function actionSave()
 {
     $student = new CStudent();
     $student->setAttributes(CRequest::getArray(CStudent::getClassName()));
     if ($student->validate()) {
         $student->save();
         if ($this->continueEdit()) {
             $this->redirect("?action=edit&id=" . $student->getId());
         } else {
             $this->redirect("?action=index");
         }
         return true;
     }
     $this->addJSInclude("_core/jquery-ui-1.8.20.custom.min.js");
     $this->addCSSInclude("_core/jUI/jquery-ui-1.8.2.custom.css");
     $groups = array();
     foreach (CActiveRecordProvider::getAllFromTable(TABLE_STUDENT_GROUPS, "name asc")->getItems() as $item) {
         $group = new CStudentGroup($item);
         $groups[$group->getId()] = $group->getName();
     }
     $forms = array(1 => "Бюджет", 2 => "Контракт");
     $this->setData("forms", $forms);
     $this->setData("groups", $groups);
     $this->setData("student", $student);
     $this->renderView("_students/edit.tpl");
 }
 /**
  * Сама обработка студентов
  *
  * @param array $source
  */
 private function processStudent(array $source)
 {
     /**
      * Попробуем искать студента. Искать будем по ФИО
      */
     $fio = $source[1] . " " . $source[2] . " " . $source[3];
     $student = CStaffManager::getStudent($fio);
     /**
      * Если студент был, то хорошо, если не был, то создаем
      * и добавляем в список добавленных
      */
     if (is_null($student)) {
         $student = new CStudent();
         $student->fio = $fio;
         $added = new CArrayList();
         if ($this->getResults()->hasElement("Добавлен")) {
             $added = $this->getResults()->getItem("Добавлен");
         }
         $added->add($student->getName(), $student->getName());
         $this->getResults()->add("Добавлен", $added);
     }
     $updated = new CArrayList();
     if ($this->getResults()->hasElement("Обновлен")) {
         $updated = $this->getResults()->getItem("Обновлен");
     }
     $fields = new CArrayList();
     if ($updated->hasElement($student->getName())) {
         $fields = $updated->getItem($student->getName());
     }
     /**
      * Теперь у нас есть студент. В любом случае есть))
      * Проверяем, может что-то не совпадает
      */
     $needSave = false;
     /**
      * Год окончания школы
      */
     if ($source[4] !== "") {
         if (mb_strtolower($student->year_school_end) !== mb_strtolower($source[4])) {
             $needSave = true;
             $student->year_school_end = $source[4];
             $fields->add("Год окончания предыдущего образовательно учреждения", $source[4]);
         }
     }
     /**
      * Предыдущее образовательное учреждение
      */
     if ($source[5] !== "") {
         if (is_null($student->primaryEducation)) {
             $needSave = true;
             $term = $this->getTerm("primary_education", $source[5]);
             $student->primary_education_type_id = $term->getId();
             $fields->add("Предыдущее образовательно учреждение", $source[5]);
         } elseif (mb_strtolower($student->primaryEducation->getValue()) !== mb_strtolower($source[5])) {
             $needSave = true;
             $term = $this->getTerm("primary_education", $source[5]);
             $student->primary_education_type_id = $term->getId();
             $fields->add("Предыдущее образовательно учреждение", $source[5]);
         }
     }
     /**
      * Год поступления в вуз
      */
     if ($source[6] !== "") {
         if (mb_strtolower($student->year_university_start) !== $source[6]) {
             $needSave = true;
             $student->year_university_start = $source[6];
             $fields->add("Год поступления в ВУЗ", $source[6]);
         }
     }
     /**
      * Форма обучения, на которую поступал
      */
     if ($source[7] !== "") {
         if (is_null($student->secondaryEducationStartType)) {
             $needSave = true;
             $term = $this->getTerm("education_form", $source[7]);
             $student->education_form_start = $term->getId();
             $fields->add("Форма обучения, на которую поступали", $source[7]);
         } elseif (mb_strtolower($student->secondaryEducationStartType->getValue()) !== mb_strtolower($source[7])) {
             $needSave = true;
             $term = $this->getTerm("education_form", $source[7]);
             $student->education_form_start = $term->getId();
             $fields->add("Форма обучения, на которую поступали", $source[7]);
         }
     }
     /**
      * Форма обучения, которую заканчивает
      */
     if ($source[8] !== "") {
         if (is_null($student->secondaryEducationEndType)) {
             $needSave = true;
             $term = $this->getTerm("education_form", $source[8]);
             $student->education_form_end = $term->getId();
             $fields->add("Форма обучения, которую заканчивает", $source[8]);
         } elseif (mb_strtolower($student->secondaryEducationEndType->getValue()) !== mb_strtolower($source[8])) {
             $needSave = true;
             $term = $this->getTerm("education_form", $source[8]);
             $student->education_form_end = $term->getId();
             $fields->add("Форма обучения, которую заканчивает", $source[8]);
         }
     }
     /**
      * Пол
      */
     if ($source[9] !== "") {
         if (is_null($student->gender)) {
             $needSave = true;
             $term = $this->getTerm("gender", $source[9]);
             $student->gender_id = $term->getId();
             $fields->add("Пол", $source[9]);
         } elseif (mb_strtolower($student->gender->getValue()) !== mb_strtolower($source[9])) {
             $needSave = true;
             $term = $this->getTerm("gender", $source[9]);
             $student->gender_id = $term->getId();
             $fields->add("Пол", $source[9]);
         }
     }
     /**
      * Номер телефона
      */
     if ($source[10] !== "") {
         if (mb_strtoupper($student->telephone) !== mb_strtoupper($source[10])) {
             $needSave = true;
             $student->telephone = $source[10];
             $fields->add("Телефон", $source[10]);
         }
     }
     /**
      * Место текущей работы
      */
     if ($source[11] !== "") {
         if (mb_strtoupper($student->work_current) !== mb_strtoupper($source[11])) {
             $needSave = true;
             $student->work_current = $source[11];
             $fields->add("Место текущей работы", $source[11]);
         }
     }
     /**
      * Примечания
      */
     if ($source[12] !== "") {
         if (mb_strtoupper($student->comment) !== mb_strtoupper($source[12])) {
             $needSave = true;
             $student->comment = $source[12];
             $fields->add("Примечание", $source[12]);
         }
     }
     /**
      * Номер группы
      */
     if ($source[13] !== "") {
         $source[13] = str_replace(" ", "-", $source[13]);
         $group = CStaffManager::getStudentGroup($source[13]);
         if (is_null($student->getGroup())) {
             if (!is_null($group)) {
                 $student->group_id = $group->getId();
                 $needSave = true;
                 $fields->add("Группа", $source[13]);
             }
         } elseif (mb_strtoupper($student->getGroup()->getName()) !== mb_strtoupper($source[13])) {
             if (!is_null($group)) {
                 $student->group_id = $group->getId();
                 $needSave = true;
                 $fields->add("Группа", $source[13]);
             }
         }
     }
     /**
      * Место предполагаемой работы
      */
     if ($source[14] !== "") {
         if (mb_strtoupper($student->work_proposed) !== mb_strtoupper($source[14])) {
             $needSave = true;
             $student->work_proposed = $source[14];
             $fields->add("Место предполагаемой работы", $source[14]);
         }
     }
     if ($needSave) {
         $student->save();
     }
     $updated->add($student->getName(), $fields);
     $this->getResults()->add("Обновлен", $updated);
 }
예제 #3
0
    die;
}
if (!CModule::IncludeModule("learning")) {
    ShowError(GetMessage("LEARNING_MODULE_NOT_FOUND"));
    return;
}
$arParams["TRANSCRIPT_ID"] = isset($arParams["TRANSCRIPT_ID"]) ? $arParams["TRANSCRIPT_ID"] : $_REQUEST["TRANSCRIPT_ID"];
if (!preg_match("~^([0-9]+)\\-([0-9]+)\$~", $arParams["TRANSCRIPT_ID"], $match)) {
    ShowError(GetMessage("LEARNING_TRANSCRIPT_NOT_FOUND"));
    return;
}
$TRANSCRIPT = $match[1];
$USER_ID = $match[2];
$arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE']) ? CSite::GetNameFormat() : $arParams["NAME_TEMPLATE"];
//Student exists?
$res = CStudent::GetList(array(), array("USER_ID" => $USER_ID, "TRANSCRIPT" => $TRANSCRIPT));
if (!($arStudent = $res->GetNext())) {
    ShowError(GetMessage("LEARNING_TRANSCRIPT_NOT_FOUND"));
    return;
}
//Can view transcript?
if ($arStudent["PUBLIC_PROFILE"] == "N" && !($USER->GetID() == $arStudent["USER_ID"] || $USER->IsAdmin())) {
    ShowError(GetMessage("LEARNING_TRANSCRIPT_PERMISSION_DENIED"));
    return;
}
//User exists?
$res = CUser::GetByID($arStudent["USER_ID"]);
if (!($arUser = $res->GetNext())) {
    ShowError(GetMessage("LEARNING_TRANSCRIPT_ERROR"));
    return;
}
예제 #4
0
 /**
  * <p>Возвращает список учётных записей студентов по фильтру <b>arFilter</b>, отсортированный в порядке <b>arOrder</b>.</p>
  *
  *
  * @param array $arrayarOrder = Array("ID"=>"DESC") Массив для сортировки результата. Массив вида <i>array("поле
  * сортировки"=&gt;"направление сортировки" [, ...])</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("фильтруемое поле"=&gt;"значение фильтра" [, ...])</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>"&lt;" -
  * меньше </li> <li>"&lt;=" - меньше либо равно </li> <li>"&gt;" - больше </li> <li>"&gt;=" -
  * больше либо равно </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>
  * &lt;?
  * if (CModule::IncludeModule("learning"))
  * {
  *     $USER_ID = 1; $TRANSCRIPT = 46785643;
  *     $res = CStudent::GetList(Array(), Array("USER_ID" =&gt; $USER_ID, "TRANSCRIPT" =&gt; $TRANSCRIPT));
  * 
  *     while ($arProfile = $res-&gt;GetNext())
  *     {
  *         echo $arProfile["RESUME"];
  *     }
  * }
  * ?&gt;
  * </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__);
 }
예제 #5
0
    }
    if (!isset($arResult["arBlogUser"]["ALLOW_POST"]) || $arResult["arBlogUser"]["ALLOW_POST"] != "Y" && $arResult["arBlogUser"]["ALLOW_POST"] != "N") {
        $arResult["arBlogUser"]["ALLOW_POST"] = "Y";
    }
}
if (CModule::IncludeModule("forum")) {
    $arResult["INCLUDE_FORUM"] = "Y";
    $rsForumUser = CForumUser::GetList(array(), array("USER_ID" => $arResult["ID"]));
    $arResult["arForumUser"] = $rsForumUser->GetNext(false);
    if (!isset($arResult["arForumUser"]["ALLOW_POST"]) || $arResult["arForumUser"]["ALLOW_POST"] != "Y" && $arResult["arForumUser"]["ALLOW_POST"] != "N") {
        $arResult["arForumUser"]["ALLOW_POST"] = "Y";
    }
}
if (CModule::IncludeModule("learning")) {
    $arResult["INCLUDE_LEARNING"] = "Y";
    $dbStudent = CStudent::GetList(array(), array("USER_ID" => $arResult["ID"]));
    $arResult["arStudent"] = $dbStudent->GetNext();
    if (!isset($arResult["arStudent"]["PUBLIC_PROFILE"]) || $arResult["arStudent"]["PUBLIC_PROFILE"] != "Y" && $arResult["arStudent"]["PUBLIC_PROFILE"] != "N") {
        $arResult["arStudent"]["PUBLIC_PROFILE"] = "N";
    }
}
if ($strError != '') {
    static $skip = array("PERSONAL_PHOTO" => 1, "WORK_LOGO" => 1, "forum_AVATAR" => 1, "blog_AVATAR" => 1);
    foreach ($_POST as $k => $val) {
        if (!isset($skip[$k])) {
            if (!is_array($val)) {
                $val = htmlspecialcharsex($val);
            }
            if (strpos($k, "forum_") === 0) {
                $arResult["arForumUser"][substr($k, 6)] = $val;
            } elseif (strpos($k, "blog_") === 0) {
예제 #6
0
파일: course.php 프로젝트: rasuldev/torino
 public static function OnUserDelete($user_id)
 {
     return CStudent::Delete($user_id);
 }
예제 #7
0
        } else {
            if ($e = $APPLICATION->GetException()) {
                $strError = $e->GetString();
            }
        }
    }
}
//Images
$arUser["PERSONAL_PHOTO_ARRAY"] = CFile::GetFileArray($arUser["PERSONAL_PHOTO"]);
$arUser["WORK_LOGO_ARRAY"] = CFile::GetFileArray($arUser["WORK_LOGO"]);
//Countries
$arUser["PERSONAL_COUNTRY_ARRAY"] = GetCountryArray();
//arResult
$arResult = array("USER" => $arUser, "STUDENT" => array(), "TRANSCRIPT_DETAIL_URL" => "", "CURRENT_PAGE" => $APPLICATION->GetCurPage(), "ERROR_MESSAGE" => $strError);
//Student
$rsStudent = CStudent::GetList(array(), array("USER_ID" => $USER_ID));
if ($arStudent = $rsStudent->Fetch()) {
    $arResult["STUDENT"] = $arStudent;
    $arResult["TRANSCRIPT_DETAIL_URL"] = CComponentEngine::MakePathFromTemplate($arParams["TRANSCRIPT_DETAIL_TEMPLATE"], array("TRANSCRIPT_ID" => $arStudent["TRANSCRIPT"] . "-" . $arStudent["USER_ID"]));
}
//If post and error occured
if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($arResult["ERROR_MESSAGE"]) > 0) {
    $arUserFields = $DB->GetTableFieldsList("b_user");
    foreach ($arUserFields as $field) {
        if (array_key_exists($field, $_REQUEST)) {
            $arResult["USER"][$field] = htmlspecialchars($_REQUEST[$field]);
        }
    }
    $arUserFields = $DB->GetTableFieldsList("b_learn_student");
    foreach ($arUserFields as $field) {
        if (array_key_exists($field, $_REQUEST)) {
예제 #8
0
<?php

IncludeModuleLangFile(__FILE__);
$strError = "";
ClearVars("str_student_");
if (CModule::IncludeModule("learning")) {
    $ID = intval($ID);
    $db_res = CStudent::GetList(array(), array("USER_ID" => $ID));
    if (!$db_res->ExtractFields("str_student_", true)) {
        if (!isset($str_student_PUBLIC_PROFILE) || $str_student_PUBLIC_PROFILE != "Y" && $str_student_PUBLIC_PROFILE != "N") {
            $str_student_PUBLIC_PROFILE = "N";
        }
    }
    if (strlen($strError) > 0) {
        $DB->InitTableVarsForEdit("b_learn_student", "student_", "str_student_");
    }
    ?>
	<input type="hidden" name="profile_module_id[]" value="learning">
	<tr valign="top">
			<td align="right" width="40%"><?php 
    echo GetMessage("learning_PUBLIC_PROFILE");
    ?>
:</td>
			<td width="60%"><input type="checkbox" name="student_PUBLIC_PROFILE" value="Y" <?php 
    if ($str_student_PUBLIC_PROFILE == "Y") {
        echo "checked";
    }
    ?>
></td>
	</tr>
<?php

$learningWarningTmp = "";
if (CModule::IncludeModule("learning")) {
    $arStudentFields = array("RESUME" => $student_RESUME, "PUBLIC_PROFILE" => $student_PUBLIC_PROFILE == "Y" ? "Y" : "N");
    $ar_res = CStudent::GetList(array(), array("USER_ID" => $ID));
    if ($arStudent = $ar_res->Fetch()) {
        $learning_res = CStudent::Update($ID, $arStudentFields);
    } else {
        $arStudentFields["USER_ID"] = $ID;
        $STUDENT_USER_ID = CStudent::Add($arStudentFields);
        $learning_res = intval($STUDENT_USER_ID) > 0;
    }
}
예제 #10
0
 public function setStudent(CStudent $student)
 {
     $this->_student = $student;
     $this->getRecord()->setItemValue("student_id", $student->getId());
 }