Newer
Older
<?php defined('SYSPATH') or die('No direct script access.');
public $discipline;
private function __construct(Model_Discipline $discipline) {
$this->discipline = $discipline;
}
public static function of(Model_Discipline $discipline) {
return new self($discipline);
}
public function addModuleBonus($teacherID) {
$sql = "SELECT `AddModuleBonus`(:teacher, :discipline) AS `Num`";
return DB::query(Database::SELECT, $sql)
->param(':teacher', $teacherID)
->param(':discipline', $this->discipline->ID)
public function deleteModuleBonus($teacherID) {
$sql = "SELECT `DeleteModuleBonus`(:teacher, :discipline) AS `Num`";
return DB::query(Database::SELECT, $sql)
->param(':teacher', $teacherID)
->param(':discipline', $this->discipline->ID)
public function addModule($teacherID, $title = '') {
$sql = "SELECT `AddModule`(:teacher, :discipline, :title) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':discipline' => $this->discipline->ID,
}
public static function deleteModule($teacherID, $moduleID) {
$sql = "SELECT `DeleteModule`(:teacher, :module) AS `Num`";
return DB::query(Database::SELECT, $sql)
->param(':teacher', $teacherID)
->param(':module', $moduleID)
/**
* @param $teacherID
* @param $moduleID
* @param $name
* @return boolean true, if name was changed
*/
public static function changeModuleName($teacherID, $moduleID, $name) {
$sql = "SELECT `ChangeModuleName`(:teacher, :module, :name) AS `Num`";
$result = DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':module' => $moduleID,
':name' => $name,
])->execute();
return (bool) $result->get('Num');
public static function addSubmodule($teacherID, $moduleID, $typeControl, $maxRate = 0, $title = '', $description = '') {
$sql = "SELECT `AddSubmodule`(:teacher, :moduleID, :maxRate, :title, :desc, :control) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':moduleID' => $moduleID,
':maxRate' => $maxRate,
':title' => $title,
':desc' => $description,
':control' => $typeControl,
}
public static function deleteSubmodule($teacherID, $submoduleID) {
$sql = "SELECT `DeleteSubmodule`(:teacher, :submodule) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':submodule' => $submoduleID,
}
public static function changeSubmoduleName($teacherID, $submoduleID, $name) {
$sql = "SELECT `ChangeSubmoduleName`(:teacher, :submodule, :name) AS `num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':submodule' => $submoduleID,
':name' => $name,
}
public static function swapModuleOrder($teacherID, $moduleID1, $moduleID2) {
$sql = "SELECT `SwapModuleOrder`(:teacher, :moduleID1, :moduleID2) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':moduleID1' => $moduleID1,
':moduleID2' => $moduleID2,
}
public static function swapSubmoduleOrder($teacherID, $submoduleID1, $submoduleID2) {
$sql = "SELECT `SwapSubmoduleOrder`(:teacher, :submodule1, :submodule2) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':submodule1' => $submoduleID1,
':submodule2' => $submoduleID2,
}
public static function changeSubmoduleMaxAndControl($teacherID, $submoduleID, $maxRate, $controlType) {
$sql = "SELECT `ChangeSubmoduleMaxAndControl`(:teacher, :submodule, :maxRate, :control) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':submodule' => $submoduleID,
':maxRate' => $maxRate,
':control' => $controlType,
public function changeDisciplineSubject($teacherID, $subjectID) {
$sql = "SELECT `ChangeDisciplineSubject`(:teacher, :discipline, :subject) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':discipline' => $this->discipline->ID,
public function changeDisciplineControl($teacherID, $control) {
$sql = "SELECT `ChangeDisciplineControl`(:teacher, :discipline, :control) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':discipline' => $this->discipline->ID,
public function changeDisciplineHours($teacherID, $hours, $type) {
$sql = "SELECT `ChangeDisciplineHours`(:teacher, :discipline, :hours, :type) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':discipline' => $this->discipline->ID,
':hours' => $hours,
':type' => $type,
public function bindGroup($teacherID, $groupID) {
$sql = "SELECT `BindGroup`(:teacher, :discipline, :group) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':discipline' => $this->discipline->ID,
/**
* Get the disciplines's roadmap (учебная карта).
* @param $discipline int discipline id
* @return Database_Result select from <tt>view_roadmap</tt> table
*/
public static function getRoadmap($discipline, $type) {
$sql = "CALL `GetRoadmap`(:discipline, :type)";
return DB::query(Database::SELECT, $sql)
->param(':discipline', $discipline)
->param(':type', $type)
->execute();
}
$sql = 'CALL `Discipline_GetModules`(:discipline, :type)';
return DB::query(Database::SELECT, $sql)
->param(':discipline', $this->discipline->ID)
->param(':type', $type)->execute()
->groupByUniqueKey('ID');
}
public function getSubmodules($type) {
$sql = "CALL `Discipline_GetSubmodules`(:discipline, :type)";
return DB::query(Database::SELECT, $sql)
->param(':discipline', $this->discipline->ID)
->param(':type', $type)->execute()
->groupByUniqueKey('ID');
public function unbindGroup($teacherID, $groupID) {
$sql = "SELECT `UnbindGroup`(:teacher, :discipline, :group) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':discipline' => $this->discipline->ID,
public function bindStudent($teacherID, $studentID) {
$sql = "SELECT `BindStudent`(:teacher, :discipline, :student) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':discipline' => $this->discipline->ID,
public function unbindStudent($teacherID, $studentID) {
$sql = "SELECT `UnbindStudent`(:teacher, :discipline, :student) AS `Num`";
return DB::query(Database::SELECT, $sql)
->parameters([
':teacher' => $teacherID,
':discipline' => $this->discipline->ID,