ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilObjTestScoreSettingsDatabaseRepository Class Reference
+ Inheritance diagram for ilObjTestScoreSettingsDatabaseRepository:
+ Collaboration diagram for ilObjTestScoreSettingsDatabaseRepository:

Public Member Functions

 __construct (ilDBInterface $db)
 
 getForObjFi (int $obj_fi)
 
 getFor (int $test_id)
 
 store (ilObjTestScoreSettings $settings)
 

Data Fields

const TABLE_NAME = 'tst_tests'
 
const STORAGE_DATE_FORMAT = 'YmdHis'
 

Protected Member Functions

 doSelect (string $where_part)
 

Protected Attributes

ilDBInterface $db
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilObjTestScoreSettingsDatabaseRepository::__construct ( ilDBInterface  $db)

Definition at line 28 of file class.ilObjTestScoreSettingsDatabaseRepository.php.

References $db.

Member Function Documentation

◆ doSelect()

ilObjTestScoreSettingsDatabaseRepository::doSelect ( string  $where_part)
protected

Definition at line 45 of file class.ilObjTestScoreSettingsDatabaseRepository.php.

References $res, ILIAS\LTI\ToolProvider\$settings, and ILIAS\Repository\int().

Referenced by getFor(), and getForObjFi().

46  {
47  $query = 'SELECT ' . PHP_EOL
48  . 'test_id,' . PHP_EOL
49  . 'count_system, score_cutting, pass_scoring,' . PHP_EOL
50  . 'score_reporting, reporting_date,' . PHP_EOL
51  . 'show_grading_status, show_grading_mark, pass_deletion_allowed,' . PHP_EOL
52  . 'print_bs_with_res,' . PHP_EOL //print_bs_with_res_sp
53  . 'examid_in_test_res,' . PHP_EOL
54  . 'results_presentation,' . PHP_EOL
55  . 'exportsettings,' . PHP_EOL
56  . 'highscore_enabled, highscore_anon, highscore_achieved_ts, highscore_score, highscore_percentage, highscore_hints, highscore_wtime, highscore_own_table, highscore_top_table, highscore_top_num' . PHP_EOL
57  . 'FROM ' . self::TABLE_NAME . PHP_EOL
58  . $where_part;
59 
60  $res = $this->db->query($query);
61 
62  if ($this->db->numRows($res) == 0) {
63  throw new \Exception('no score settings: ' . $where_part);
64  }
65 
66  $row = $this->db->fetchAssoc($res);
67 
68  $reporting_date = $row['reporting_date'];
69  if ($reporting_date) {
70  $reporting_date = \DateTimeImmutable::createFromFormat(
71  self::STORAGE_DATE_FORMAT,
72  $reporting_date,
73  new DateTimeZone('UTC')
74  );
75  } else {
76  $reporting_date = null;
77  }
78 
79  $test_id = (int) $row['test_id'];
80 
82  $test_id,
83  (new ilObjTestSettingsScoring($test_id))
84  ->withCountSystem((int) $row['count_system'])
85  ->withScoreCutting((int) $row['score_cutting'])
86  ->withPassScoring((int) $row['pass_scoring']),
87  (new ilObjTestSettingsResultSummary($test_id))
88  ->withScoreReporting((int) $row['score_reporting'])
89  ->withReportingDate($reporting_date)
90  ->withShowGradingStatusEnabled((bool) $row['show_grading_status'])
91  ->withShowGradingMarkEnabled((bool) $row['show_grading_mark'])
92  ->withPassDeletionAllowed((bool) $row['pass_deletion_allowed']),
93  //->withShowPassDetails derived from results_presentation with bit RESULTPRES_BIT_PASS_DETAILS
94  (new ilObjTestSettingsResultDetails($test_id))
95  ->withResultsPresentation((int)$row['results_presentation'])
96  ->withShowExamIdInTestResults((bool) $row['examid_in_test_res'])
97  ->withExportSettings((int) $row['exportsettings']),
98  (new ilObjTestSettingsGamification($test_id))
99  ->withHighscoreEnabled((bool) $row['highscore_enabled'])
100  ->withHighscoreAnon((bool) $row['highscore_anon'])
101  ->withHighscoreAchievedTS((bool) $row['highscore_achieved_ts'])
102  ->withHighscoreScore((bool) $row['highscore_score'])
103  ->withHighscorePercentage((bool) $row['highscore_percentage'])
104  ->withHighscoreHints((bool) $row['highscore_hints'])
105  ->withHighscoreWTime((bool) $row['highscore_wtime'])
106  ->withHighscoreOwnTable((bool) $row['highscore_own_table'])
107  ->withHighscoreTopTable((bool) $row['highscore_top_table'])
108  ->withHighscoreTopNum((int) $row['highscore_top_num'])
109  );
110 
111  return $settings;
112  }
$res
Definition: ltiservices.php:69
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFor()

ilObjTestScoreSettingsDatabaseRepository::getFor ( int  $test_id)

Implements ScoreSettingsRepository.

Definition at line 39 of file class.ilObjTestScoreSettingsDatabaseRepository.php.

References doSelect().

40  {
41  $where_part = 'WHERE test_id = ' . $this->db->quote($test_id, 'integer');
42  return $this->doSelect($where_part);
43  }
+ Here is the call graph for this function:

◆ getForObjFi()

ilObjTestScoreSettingsDatabaseRepository::getForObjFi ( int  $obj_fi)

Definition at line 33 of file class.ilObjTestScoreSettingsDatabaseRepository.php.

References doSelect().

34  {
35  $where_part = 'WHERE obj_fi = ' . $this->db->quote($obj_fi, 'integer');
36  return $this->doSelect($where_part);
37  }
+ Here is the call graph for this function:

◆ store()

ilObjTestScoreSettingsDatabaseRepository::store ( ilObjTestScoreSettings  $settings)

Implements ScoreSettingsRepository.

Definition at line 114 of file class.ilObjTestScoreSettingsDatabaseRepository.php.

References ilObjTestScoreSettings\getGamificationSettings(), ilObjTestScoreSettings\getResultDetailsSettings(), ilObjTestScoreSettings\getResultSummarySettings(), ilObjTestScoreSettings\getScoringSettings(), and ilObjTestScoreSettings\getTestId().

114  : void
115  {
116  $values = array_merge(
117  $settings->getScoringSettings()->toStorage(),
118  $settings->getResultSummarySettings()->toStorage(),
119  $settings->getResultDetailsSettings()
120  ->withShowPassDetails($settings->getResultSummarySettings()->getShowPassDetails())
121  ->toStorage(),
122  $settings->getGamificationSettings()->toStorage()
123  );
124 
125  $this->db->update(
126  self::TABLE_NAME,
127  $values,
128  ['test_id' => ['integer', $settings->getTestId()]]
129  );
130  }
+ Here is the call graph for this function:

Field Documentation

◆ $db

ilDBInterface ilObjTestScoreSettingsDatabaseRepository::$db
protected

Definition at line 26 of file class.ilObjTestScoreSettingsDatabaseRepository.php.

Referenced by __construct().

◆ STORAGE_DATE_FORMAT

const ilObjTestScoreSettingsDatabaseRepository::STORAGE_DATE_FORMAT = 'YmdHis'

◆ TABLE_NAME

const ilObjTestScoreSettingsDatabaseRepository::TABLE_NAME = 'tst_tests'

The documentation for this class was generated from the following file: