Разработка:im/journal — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(закончено описание раздела API)
м
Строка 205: Строка 205:
 
* массив вида [id_ученика]=>статус_присутствия
 
* массив вида [id_ученика]=>статус_присутствия
 
==== Дополнительные функции ====
 
==== Дополнительные функции ====
 +
===== dof_im_journal_format_date() =====
 +
 +
''Аргументы:''
 +
* $date (int) - метка времення для преобразования.
 +
* $format (string) - формат выводимой даты. По умолчанию 'dmy'.
 +
* $url (string) - Указывается, если необходимо получить дату как ссылку. По умолчанию NULL
 +
''Возвращаемые значения:''
 +
* (string) строка с отформатированной датой
 +
===== dof_im_journal_date_edit() =====
 +
Возвращает отформатироанную дату и значок редактирования как ссылку
 +
''Аргументы:''
 +
* $date (int) - метка времени
 +
* $format (string) - формат выводимой даты. По умолчанию 'dmy'
 +
* $durl (string) - путь ссылки для даты, если не указана - дата выводится как просто строка. По умолчанию null.
 +
* $eurl (string) - путь ссылки для значка, если не указана значок не показывается По умолчанию null.
 +
* $imgsubdate (bool) - вывести значок под датой или рядом по умолчанию true (выводит значок под датой)
 +
''Возвращаемые значения:''
 +
* (string) - строка с отформатированной датой
 
=== Список журналов ===
 
=== Список журналов ===
 
==== Класс dof_im_journal_listjournals ====
 
==== Класс dof_im_journal_listjournals ====
 +
Этот класс содержит функции для работы со страницей списка журналов
 +
===== __construct() =====
 +
''Аргументы:''
 +
* $dof - объект класса [[Разработка:lib/dof.php|dof_control]]
 +
''Возвращаемые значения:'' нет
 +
 +
===== set_data() =====
 +
Заполняет начальной информацией внутренние поля объекта
 +
 +
''Аргументы:''
 +
* $departmentid (int) - id подразделения. По умолчанию 0.
 +
''Возвращаемые значения:''
 +
* (bool) true если все нормально или false в случае ошибки
 +
===== get_data() =====
 +
Возвращает собранные данные
 +
 +
''Аргументы:'' нет
 +
 +
''Возвращаемые значения:''
 +
* (array) - массив структурных подразделений
 +
===== get_journals() =====
 +
Получить все журнлы занесенных подразделений
 +
 +
''Аргументы:'' нет
 +
 +
''Возвращаемые значения:''
 +
* (bool) true если все нормально или false в случае ошибки
 
== Подробное описание работы функций ==
 
== Подробное описание работы функций ==
 
=== Для журнала группы ===
 
=== Для журнала группы ===
Строка 217: Строка 262:
 
=== Для списка журналов ===
 
=== Для списка журналов ===
 
==== Класс dof_im_journal_listjournals ====
 
==== Класс dof_im_journal_listjournals ====
 +
 +
=====  =====
 +
 +
''Аргументы:''
 +
 +
''Возвращаемые значения:''

Версия 18:00, 10 августа 2009

Содержание

Классный журнал

В журнале можно выставлять оценки и вводить отчет о проведенном уроке.

СЕЙЧАС журнал работает так:

Под панелью навигации выводится надпись "Журнал группы". Ниже таблица с информацией о потоке - программа, предмет, группа, преподаватель. Справа от этой таблицы размещена ссылка "Новый урок". Нажатие на нее позволяет создать новый отчет об уроке. Над этой ссылкой будут выводиться сообщения об ошибках сохранения данных из таблицы оценок. Ниже отображаются две таблицы - таблица оценок и, справа от нее, таблица отчетов об уроке. Обе таблицы сделаны максимально похожими на соответствующие таблицы в бумажном "Классном журнале". Таблицы связаны друг с другом. Так, дата в таблице оценок отображаются только в том случае, если был создан отчет об уроке для этой даты. При нажатии на дату в таблице оценок, происходит перемещение к соответствующей строке отчета об уроке.

Таблица оценок.

Если таблица отчетов об уроке пуста, то в таблице оценок нет ни одной колонки с датой. Если журнал заполнен, то в верхней строке отображаются названия месяцев, ниже номера дней месяцев, на которые приходились занятия. Каждое число месяца - ссылка, при нажатии на которую происходит переход на соответствующую этому дню строку таблицы отчета об уроке. Сразу под числом расположен значок редактирования. Он также выполнен в виде ссылки. При нажатии на него страница перезагружается в режиме формы ввода оценок и выставления присутствия учеников на уроке, который проходил в тот день, по значку под числом которого щелкнули. В колонке этого дня, напротив фамилии каждого ученика появляются два поля. Поле выбора из списка - для проставления оценки. И поле переключатель - для отметки присутствия на уроке. Об этом напоминает буква "н", расположенная справа от него. Если ученик был на уроке, то это поле следует оставить пустым. Если не был - поставить там флажок. Для выставления оценки следует выбрать элемент из списка. После того как изменения будут сохранены, в соответствующих клетках появятся буквы "Н" или оценки. Если кому-то была выставлена и оценка и отметка об отсутствии на уроке, на против его фамилии можно будет увидеть букву "Н". Однако перед сохранением будет выведено предупреждение о том, что выставлена оценка отсутствующему ученику. Под уведомлением будут две кнопки - "Продолжить" и "Отменить". При нажатии на "Продолжить" сценарий сохранения будет выполнен. Нажатие на другую кнопку вызовет отмену процедуры сохранения и возврат к форме с несохраненными изменениями. При переключении в режим формы под таблицей появляется надпись "Внимание! До нажатия кнопки "сохранить" оценки не сохраняются." И три кнопки - "Сохранить", "Сохранить и продолжить", "Восстановить". Нажатие на первую кнопку сохраняет изменения, сделанные в форме и перезагружает страницу в режим просмотра. Вторая - сохраняет сделанные изменения, но страница остается в режиме формы - можно продолжать ввод. Третья кнопка отменяет сделанные изменения. Все введенные, но несохраненные данные удаляются из формы. Форма перегружается с отображением последних сохраненных изменений. Если ученику была выставлена оценка, а затем отменена - в форме было выбрано пустое поле, то ранее выбранная оценка будет удалена. Если оценка была изменена, то оценка будет обновлена. Каждое из этих действий, а также выставление статуса присутствия на уроке, будет выполнено через издание приказа. Если редактируется контрольная точка без события, то в форме показываеются только поля выставления оценки. Поле присутствия на уроке не показывается и статус присутствия не сохраняется. Контрольная точка без события выводится в таблице оценок без даты. Вместо даты выводится название КТ. Что происходит в процессе сохранения. После того как нажата одна из кнопок, сохраняющая внесенные изменения происходит

  • формирование приказа регистрации присутствия учеников на уроке. В него сохраняются данные о всех учениках потока, их статусы присутствия, id события, статус присутствия на котором выставляется.
  • применение приказа и сохранение статусов учеников в соответствующих таблицах.

Если были выставлены оценки. То в дополнение к вышеописанным действиям происходят следующие действия:

  • формирование приказа регистрации выставления оценок только тем ученикам, которые их получили на уроке. В приказе сохраняются: точное время выставления оценки, id КТ, за которую выставлена оценка, id преподавателя (из /storage/persons), который выставил оценку, ученики, которые получили оценку, и соответствующие им оценки, статус оценки, id подписки ученика на поток.
  • применение приказа и сохранение оценок в соответствующих таблицах.

После создания отчета об уроке, происходит возврат на главную страницу журнала и таблица оценок загружается в режиме формы того дня, отчет для которого был создан. Если этот день выходит за границы видимости окна, то происходит перемещение таблицы оценок таким образом, чтобы нужная колонка оказалась видимой. После редактирования отчета об уроке таблица оценок загружается в режиме просмотра. Если день, для которого происходило редактирование отчета выходит за границы видимости, то происходит перемещение таблицы оценок таким образом, чтобы нужная колонка оказалась видимой.

Таблица отчетов об уроках.

Представляет собой таблицу из шести столбцов. Первый столбец - порядковый номер урока. Второй - дата урока в фомате дд.мм. Третий - тема урока - произвольный текст. Четвертый - задание на дом. Пятый - замена урока или преподавателя. Пятый - заметки об уроке. В настоящее время три последних поля не используются. Уроки сортируются по датам, сверху вниз по возрастанию. Под датой располагается значок редактирования информации об уроке, выполненный в виде ссылки. При щелчке по нему открывается новая страница с формой редактирования отчета об уроке. Все поля формы заполнены соответствующей информацией. Ее можно изменить, а изменения сохранить. Эта же страница открывается при щелчке по ссылке "Новый урок".

Страница редактирования урока.

Вверху страницы, под строкой навигации, выводится надпись "Классный журнал". Ниже выводится форма ввода информации об уроке - "Отчет об уроке". В поле "Дата проведения урока" нужно выбрать дату урока. В поле "Элементы темплана" можно выбрать тему для нового урока. Ниже находится текстовое поле ввода "Что пройдено на уроке". Сюда можно ввести тему урока вручную. Еще ниже поле "Домашнее задание" для ввода соответствующей информации. В самом низу расположены две кнопки - "Сохранить" и "Отмена". При нажатии на вторую происходит возврат на главную страницу журнала без сохранения внесенных изменений. После нажатия на кнопку "Сохранить" происходит сохранение введенных данных в соответствующих таблицах. О результатах операции сохранения информирует надпись, выводимая под кнопками. Еще ниже появляется ссылка "назад" для возврата на главную страницу журнала. В случае возврата после сохранения данных, таблица оценок загружается в режиме редактирования данных на дату только что сохраненного урока. Правее формы редактирования урока расположено окно с полосами прокрутки, в котором можно просмотреть темы уже проведенных уроков. Они выводятся в видет таблицы из двух столбцов, в которых указываются соответственно дата и тема урока. В зависимости от заполненности полей ввода возможны разные варианты обработки введенных данных.

id КТ id темы, выбранной из списка. как обрабатывается
0 0 создается новая КТ и новое событие.
0 выбрана из списка создается новое событие, привязанное к КТ, выбранной из списка
существующая КТ выбрана из списка и равна id КТ обновляем КТ и (если изменяется дата) все события, которые ей соответствуют.

Тему из списка "Элементы темтемплана" выбрать нельзя.

существующая КТ выбрана из списка и не равна id КТ такая ситуация запрещена.
существующая КТ 0 такая ситуация запрещена

Список журналов

Вверху страницы находится форма для выбора подразделения и кнопка "показать". По умолчанию показывается информация по всем учебным подразделениям. При выборе конкретного учебного подразделения показывается информация только по нему.

Вывод информации по журналам организован в виде маркированного списка следующего вида:

  • Подразделение
    • Учебная программа
      • Учебный период
        • Предмет
          • Учебный поток (дата_начала - дата_окончания)

Каждая запись учебного потока является ссылкой на страницу журнала учебного потока.

API

Журнал группы

В этом разделе собраны все функции, которые относятся к странице "журнал группы"

Класс dof_im_journal_tablegrades

Класс отрисовки школьного журнала

print_texttable()

Вывести страницу журнала - просмотр оценок, или редактирование

Аргументы:

  • $editid - id редактируемого учебного плана
  • $eventid - id учебного события, которое будет редактировано

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

  • null
check_permissions()

Проверяет разрешения на редактирование оценок для текущего пользователя

Аргументы: нет

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

  • true/false - есть или нет разрешения на редактирование оценок

Класс dof_im_journal_templans_table

Класс для отрисовки таблицы тематического планирования в классном журнале

__construct()

Аргументы:

  • $dof - объект класса dof_control
  • $csid - id учебного потока

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

print_table()

Выводит таблицу тематического планирования на экран

Аргументы: нет

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

  • true если операция вывода прошла успешно, или false если при выводе возникли ошибки

Класс dof_im_journal_edittopic

Класс для создания или редактирования одной темы на странице планирования уроков

__construct()

Аргументы:

  • $dof - объект класса dof_control
  • $planid - id элемента учебного плана
  • $csid - id учебного потока
  • $eventid - id учебного события

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

get_topic()

Возвращает объект с полями, необходимыми для заполнения формы

Аргументы: нет

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

  • object - объект с полями для вставки в форму, или false в случае ошибки
save_topic()

Обновляет существующий или создает новый элемент тематического планирования

Аргументы:

  • $checkpoint (object) - объект для обновления или создания записи в таблице plans
  • $event (object) - объект для обновления или создания записи в таблице schevents

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

  • true, если все записи успешно обновлены
  • (int), id новой записи, если она была добавлена
  • false в случае ошибки
print_table()

Формирует таблицу тематического планирования в правой части страницы журнала

Аргументы: нет

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

  • true если операция вывода прошла успешно, или false если при выводе возникли ошибки
get_anchor_id()

Возвращает метку времени, которая будет создана для нового урока, чтобы осуществить корректное перенаправление на страницу журнала Аргументы:

  • $time - (int) время создания нового события: метка времени в формате unixtime

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

  • (int) - метка времени для перенаправления

Класс dof_im_journal_rawdata

Класс для подготовки сырых исходных данных для формирования школьного журнала и ему подобных документов

__construct()

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

Аргументы:

  • $dof - объект класса dof_control
  • $csid - id учебного потока

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

Класс dof_im_journal_process_gradesform

Класс для проверки и обработки оценок из формы

__construct()

Конструктор класса. Осуществляет все проверки и записывает данные во внутреннее поле.

Аргументы:

  • $dof - объект класса dof_control
  • $gradedata (array) - массив $_POST из формы

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

process_form()

Обработать все данные, пришедшие из формы: установить посещаемость, выставить оценки и сформировать приказы

Аргументы: нет

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

  • false в случае неудачи. В случае успеха производит редирект на страницу журнала

Класс dof_im_journal_presence

Класс для обработки информации о посещаемости

__construct()

Аргументы:

  • $dof - объект класса dof_control
  • $csid - id учебного потока

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

presence_students

Формирует массив присутствия учеников

Аргументы: нет

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

  • массив вида [id_ученика]=>статус_присутствия
absence_students()

Формирует массив отсутствующих студентов

Аргументы:

  • $away - массив id отсутствующих учеников

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

  • массив вида [id_ученика]=>статус_присутствия

Дополнительные функции

dof_im_journal_format_date()

Аргументы:

  • $date (int) - метка времення для преобразования.
  • $format (string) - формат выводимой даты. По умолчанию 'dmy'.
  • $url (string) - Указывается, если необходимо получить дату как ссылку. По умолчанию NULL

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

  • (string) строка с отформатированной датой
dof_im_journal_date_edit()

Возвращает отформатироанную дату и значок редактирования как ссылку Аргументы:

  • $date (int) - метка времени
  • $format (string) - формат выводимой даты. По умолчанию 'dmy'
  • $durl (string) - путь ссылки для даты, если не указана - дата выводится как просто строка. По умолчанию null.
  • $eurl (string) - путь ссылки для значка, если не указана значок не показывается По умолчанию null.
  • $imgsubdate (bool) - вывести значок под датой или рядом по умолчанию true (выводит значок под датой)

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

  • (string) - строка с отформатированной датой

Список журналов

Класс dof_im_journal_listjournals

Этот класс содержит функции для работы со страницей списка журналов

__construct()

Аргументы:

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

set_data()

Заполняет начальной информацией внутренние поля объекта

Аргументы:

  • $departmentid (int) - id подразделения. По умолчанию 0.

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

  • (bool) true если все нормально или false в случае ошибки
get_data()

Возвращает собранные данные

Аргументы: нет

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

  • (array) - массив структурных подразделений
get_journals()

Получить все журнлы занесенных подразделений

Аргументы: нет

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

  • (bool) true если все нормально или false в случае ошибки

Подробное описание работы функций

Для журнала группы

Класс dof_im_journal_tablegrades

Класс dof_im_journal_templans_table

Класс dof_im_journal_edittopic

Класс dof_im_journal_rawdata

Класс dof_im_journal_process_gradesform

Класс dof_im_journal_presence

Для списка журналов

Класс dof_im_journal_listjournals

Аргументы:

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