Разработка:storages/programmitems

Материал из DOF
Версия от 14:35, 9 ноября 2010; Dido86 (обсуждение | вклад) (Дополнительные методы:)
Перейти к: навигация, поиск
Плагин
Название programmitems
Тип storages


Таблица в базе данных

programmitems - элементы учебной программы - учебные дисциплины/предметы.

Подробный формат полей в таблице:

  • programmid - учебная программа в таблице programms
  • agenum - номер учебного периода, от начала обучения по программе на который назначена дисциплина. Для необязательных дисциплин возможен 0, тогда студент может "взять" дисциплину в любом семестре.
  • courseclsid - id по таблице coursecls (таблица пока не предусмотрена), предназначен для объединения однородных дисциплин. Однородность дисциплин может быть четырех уровней (записываются внутри таблицы coursecls):
    • 1 - одинаковые дисциплины изучаемые в составе различных учебных программ,
    • 2 - разные ступени изучения одной дисциплины,
    • 3 - дисциплины, относящиеся к одной науке,
    • 4 - категории (общественные, естественные, технические). Сама таблица coursecls пока не реализована, а поле зарезервировано на будущее.
  • name - название дисциплины (текстовое поле)
  • code - код дисциплины (текстовое поле, необязательное, при указании проверяется уникальность). Если код не указан - то вместо него подставляется id записи.
  • mdlcourse - id курса в moodle
  • type - тип предмета:
    • required- обязательный
    • recommended - рекомендованный
    • free - по выбору
  • required - обязательный курс (0/1) На основании этого поля ориентируемся, нужно ли обязательно подписывать или нет, а предыдущий больше информационный. Например, даже обязательный курс, который планируется разделить на подгруппы может не требовать автоматической подписки.
  • maxcredit - максимальное количество "кредитов", получаемое за прохождение дисциплины
  • maxduration - максимальная продолжительность курса от начальной подписки (в секундах). Если не установлено - продолжительность неограничена. Учебные потоки всегда завершается автоматически с закрытием учебного периода, к которому они относятся.
  • hours - количество часов, отведенное на дисциплину (отобразиться в индивидуальной ведомости рядом с названием и оценкой)
  • hourstheory - часов теории
  • hourspractice - часов практики
  • eduweeks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, если не указано, учебные процессы наследуют из ages.
  • instrlevelid - id уровня компоненты -
    • 1 - федеральная,
    • 2 - региональная,
    • 3 - учебного заведения,
    • 4 - кафедры
  • gradelevel - уровень оценки
    • notused - оценка не идет в кондуит
    • discipline - дисциплина
    • coursework - курсовая работа
    • practice - практика
    • finalexam - междисциплинарный экзамен
    • diplom - дипломная работа
  • scale - диапазон или перечисленные через запятую возможной итоговой оценки, пустая строка если оценка не предусмотрена. Оценка может быть и дробной. Диапазон задается двумя числами через дефис: худшая_оценка_-_лучшая_оценка_. Например 5-1. 5 - самый плохой балл. 1 - самый лучший. Если задается не диапазон, а интервал, то оценки перечисляются через запятую: 5, 4.5, 4, 3.5, 3, 2.5, 2, 1.5, 1.
  • mingrade - минимальная (для диапазона) или начальная слева-направа начиная с единицы (для перечисления) оценка, при которой курс считается завершенным. Если не указано, курс считается завершенным при выставлении любой оценки.
  • sname - название в источнике/стандарте
  • scode - код в источнике/стандарте
  • status - список статусов указан в одноименном плагине рабочих процессов programmitems
  • departmentid - структурное подразделение в таблице departments , ответственное за реализацию дисциплины
  • about - описание дисциплины
  • notice - заметка о дисциплины для внутреннего пользования
  • controltypeid - тип итогового контроля по данному курсу
  • hoursweek - часов в неделю

Дополнительные методы:

get_pitem_by_code($code)

Ищет дисциплины по коду дисциплины.

Аргументы:

  • $code(string) - код дисциплины.

Возвращаемые значения:

  • (object) объект дисциплины.
  • (bool) false если дисциплина не найдена.

get_pitems_list($programmid, $agenum=false, $status = null)

Ищет список дисциплин, относящихся к учебной программе и учебному периоду.

Аргументы:

  • (int) $programmid - id учебной программы из таблицы programms.
  • (int) $agenum - порядковый номер периода или false, обозначающий получение дисциплин отсортированных в порядке возрастания периодав и по названию внутри них, по умолчанию false
  • () $status -

Возвращаемые значения:

  • (array) список дисциплин.
  • (bool) false если дисциплины не найдены.

Структура работы: По SQL-запросу находим список дисциплин и возвращаем результат.

get_maxagenum()

Получить количество периодов для данной учебной программы

Аргументы:

  • $programmid - id учебной программы из таблицы programms.

Возвращаемые значения:

  • false - если не нашлось не одной записи
  • 0 - если нашлись только записи с agenum=0, то есть необязательные
  • в остальных случаях возвращается целое число - максимальное кол-во дисциплин в данном периоде

По sql-запросу производится поиск максимального значения agenum среди записей с выбранных programmid.

Планы:

События

В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
Этот плагин не перехватывает никаких событий

Генерируемые события

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
storage programmitems insert Массив, содержащий в поле "new" объект с данными для вставки в таблицу.

Пример: array('new' => $dataobject)

Генерируется каждый раз при вставке новой записи в таблицу programmitems.
storage programmitems update Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.

Пример: array('old' => $dataobject_old, 'new' => $dataobject_new)

Генерируется каждый раз при обновлении записи в таблице programmitems.
storage programmitems delete Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы

Пример: array('old' => $dataobject)

Генерируется каждый раз при удалении записи из таблицы programmitems.