align="justify"> Іншими важливими функціями викладача є створення, редагування та видалення тестів. У кожному курсі може бути кілька тестів, а в тесті багато питань. Для створення тестів створений контролер tests.php, за створення питань до тесту відповідає контролер questions.php. p align="justify"> Викладачеві надані основні функції для роботи з тестами: це додавання, редагування, видалення або перегляд інформації. Для кожної функції написані методи в класі Controller_Tutor_Tests контролера tests.php. p align="justify"> Метод action_index () передає у уявлення масив даних, вибраних з моделі Model_Test (Лістинг 9).
Лістинг 9. Метод action_index () контролера tests.php класу Controller_Tutor_Tests
В
Тест належить певному курсу, тому при додаванні треба вказати курс. У поданні вибрати курс можна зі списку, але щоб вивести цей список курсів, в методі action_add () вибираються всі поля з таблиці courses (Лістинг 10). p align="justify"> Лістинг 10. Метод action_add () контролера tests.php класу Controller_Tutor_Tests
В
Форма додавання тесту містить поля В«НазваВ», В«КурсВ», В«ЧасВ» та радіо кнопки В«ПовторюватиВ». Опція В«ПовторюватиВ» дає можливість студенту проходити тест неодноразово. При натисканні кнопки В«ДодатиВ» заповнені дані потрапляють у глобальний масив $ _POST. Додавання тесту в таблицю здійснюється функцією create () зі значеннями, отриманими з масиву $ _POST. p align="justify"> Якщо додавання виконано успішно, відбувається перенаправлення на сторінку списку тестів.
Редагування тесту відбувається за тим же принципом, що і додавання (Лістинг 11).
Лістинг 11. Метод action_edit () контролера tests.php класу Controller_Tutor_Tests
В
На сторінці В«Редагування тестуВ» з'являється форма з полями: В«НазваВ», В«КурсВ», В«ЧасВ» та радіо кнопки В«ПовторюватиВ». Форма заповнена даними. Дані довантажуються з таблиці. Викладач змінює інформацію у формі і натискає на кнопку В«ОновитиВ». Нові значення потрапляють в масив $ _POST. У методі action_edit () для оновлення значень використовується метод set (). p align="justify"> Нові значення витягуються з масиву $ _POST методом extract ().
Збереження запису, після зміни моделі, здійснюється методом update ().
Викладач може переглянути список питань в тесті. Вибираючи назву тесту, виконується метод action_view (). p align="justify"> У методі action_view () здійснюється запит до моделі Model_Question для вибору записів належать обраному тесту (Лістинг 12).
Лістинг 12. Запит до моделі Model_Question
$ questions = ORM :: factory ('question')
> where ('id_test', '=', $ id) -> find_all ();
Отриманий масив значень з моделі і первинний ключ пото...