Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Осипенко диплом.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.5 Mб
Скачать

2.2.1. Опис фрагменту коду

Для викладача та студента доступна функція експорту результуючих оцінок. Викладач має змогу експортувати всі оцінки, а студент оцінки лише по своїм дисциплінам.Файли експортуються то до табличного процессора EXCEL у форматі*.xls.

Фрагмент лістингу коду для експорту у EXCEL

else if(isset($_GET['export_student_excel']) && ($_GET['export_student_excel'] == 'current' || $_GET['export_student_excel'] == 'all')){//відправляються всі записи

require_once 'Spreadsheet/Excel/Writer.php';

$workBook = new Spreadsheet_Excel_Writer();

$workBook->setTempDir(G_UPLOADPATH);

$workBook->setVersion(8); //вибір необхідного формату.

$workBook->send('GradeBook.xls');// відправка до створеного файлу

if($_GET['export_student_excel'] == 'current'){// відправка по конкретному студенту

$workSheet = &$workBook->addWorksheet($currentLesson->lesson['name']);

$this->studentLessonToExcel($currentLessonID, $currentLesson->lesson['name'], $currentUser, $workBook, $workSheet);

}

else if($_GET['export_student_excel'] == 'all'){

$studentLessons = $currentUser->getLessons(false, 'student');

foreach($studentLessons as $key => $value){

// Чи встановлена залікова книжка для цього занняття ?

(перевіряється чи встановлений модуль для цього заняття)

$installed = eF_getTableData("module_gradebook_users", "*",

"lessons_ID=".$key." and users_LOGIN='".$currentUser->user['login']."'");

if(sizeof($installed) != 0){

$subLesson = new EfrontLesson($key);

$workSheet = &$workBook->addWorksheet($subLesson->lesson['name']);

$this->studentLessonToExcel($key, $subLesson->lesson['name'], $currentUser, $workBook, $workSheet);

}

}

Як раніше зазначалося адміністратор має змогу формувати діапазон білав, який і буде визначати оцінку, що отримав студент.

Фрагмент лістингу коду, який відповідає за визначення та свторення діапазону оцінок, у випадку коли адміністратор обрав створити діапазон:

isset($_GET['add_range']) ? $postTarget = "&add_range=1" : $postTarget = "&edit_range=".$_GET['edit_range'];

$form = new HTML_QuickForm("add_range_form", "post", $this->moduleBaseUrl.$postTarget, "", null, true);

$form->registerRule('checkParameter', 'callback', 'eF_checkParameter'); // XXX

$form->addElement('select', 'range_from', _GRADEBOOK_RANGE_FROM, $grades);

$form->addElement('select', 'range_to', _GRADEBOOK_RANGE_TO, $grades);

$form->addElement('text', 'grade', _GRADEBOOK_GRADE, 'class = "inputText"');

$form->addRule('grade', _THEFIELD.' "'._GRADEBOOK_GRADE.'" '._ISMANDATORY, 'required', null, 'client');

$form->addRule('grade', _INVALIDFIELDDATA, 'checkParameter', 'text'); // XXX

$form->addElement('submit', 'submit', _SUBMIT, 'class = "flatButton"');

2.2.2. Опис окремих функцій, їх викликів, взаємодії компонентів

Модулі eFront засновані на розширенні абстрактного класу модуля. Повернені значення цих методів використовуються ядром системи eFront для функціонування та управління модулем. Деякі з цих методів обов'язкові, в той час як інші могли б використовуватися чи ні. Якщо модуль не використовувати їх, вони автоматично повернуть значення за замовчуванням, як визначено в базовому класі, і система буде знати, що вони не були реалізовані для цього модуля. Тому необхідно визначати які методи є обовязковими, адже вони потрібні для модуля. [7]

Важливо описати загальні функції та методи. Отже в данному модулі найважливішу роль відіграють такі функції: class module_gradebook extends EfrontModule, public function getName(),public function getPermittedRoles(),public function getModule(),public function getSmartyTpl(),eF_executeNew.

class module_gradebook extends EfrontModule – класс module_gradebook розширює класс EfrontModule(загальний базовий класс для модулів)

public function getName() – повартає строку з назвою модуля.

public function getPermittedRoles() – повертає масив з усіма eFront ролями, які включені у модуль. Вони буду взаємодіяти з інтерфейсом модулю у будь-якому випадку(Можливі ролі:Адміністратор, викладач, студент)

public function getModule() – кожного разу, коли здійснюється підключення до модулю(виконується $this -> moduleBaseUrL) ця функцію виконається. Цей метод повертає чистий код HTML або істину, якщо використовується smarty. Більш ніж одна незалежна сторінка, може бути виведена на екран з цією функцією.

public function getSmartyTpl() – повертає ім’я шаблонного файлу, якщо використовується smarty, який може використовувати один або більше разів метод getmodule(). Якщо getSmartyTpl() повертає false, то eFront визначає, що жоден шаблон smarty не використовувався.

eF_executeNew – функція БД, дозволяє безпосередньо виконувати SQL – запити до бази даних eFront.