Skip to content

Commit 2b9649f

Browse files
author
Michael Kotlyar
committed
[MDL-80945] Update quizaccess page
1 parent 68198bf commit 2b9649f

File tree

13 files changed

+129
-228
lines changed

13 files changed

+129
-228
lines changed

data/main/components.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"qbank": "public/question/bank",
3535
"qbehaviour": "public/question/behaviour",
3636
"qformat": "public/question/format",
37+
"quizaccess": "public/mod/quiz/access",
3738
"plagiarism": "public/plagiarism",
3839
"tool": "public/admin/tool",
3940
"cachestore": "public/cache/stores",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<!-- markdownlint-disable first-line-heading -->
2+
Most quiz settings can be overridden on a per user and/or group level and you can extend this ability to your rule as well. To make your rule overridable, you must create the `override_rule` class extending `mod_quiz\local\access_override_rule_base`.
3+
4+
Please refer to the inline phpdocs of the [mod_quiz::access_override_rule_base class](https://github.com/moodle/moodle/blob/main/mod/quiz/classes/local/access_override_rule_base.php) for detailed descriptions of the functions and meaning.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
use mod_quiz\form\edit_override_form;
2+
use mod_quiz\local\access_override_rule_base;
3+
use MoodleQuickForm;
4+
use context_module;
5+
use context;
6+
7+
class override_rule extends access_override_rule_base {
8+
9+
/**
10+
* All of the below access_override_rule_base be implemented below.
11+
*/
12+
13+
public static function add_form_fields(context_module $context, int $overrideid, object $quiz, MoodleQuickForm $mform): void {
14+
// Do nothing.
15+
}
16+
17+
public static function validate_form_fields(array $errors,
18+
array $data, array $files, edit_override_form $quizform): array {
19+
return [];
20+
}
21+
22+
public static function save_settings(array $override): void {
23+
// Do nothing.
24+
}
25+
26+
public static function delete_settings(int $quizid, array $overrides): void {
27+
// Do nothing.
28+
}
29+
30+
public static function get_settings(): array {
31+
return [];
32+
}
33+
34+
public static function get_required_settings(): array {
35+
return [];
36+
}
37+
38+
public static function get_settings_sql(string $overridetablename): array {
39+
return [];
40+
}
41+
42+
public static function add_table_fields(object $override, array $fields, array $values, context $context): array {
43+
return [];
44+
}
45+
46+
public static function clean_form_data(array $formdata): array {
47+
return $formdata;
48+
}
49+
}

docs/apis/plugintypes/quizaccess/_examples/rule.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use mod_quiz\form\edit_override_form;
21
use mod_quiz\form\preflight_check_form;
32
use mod_quiz\quiz_settings;
43
use mod_quiz\local\access_rule_base;

docs/apis/plugintypes/quizaccess/_examples/rule_overridable.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

docs/apis/plugintypes/quizaccess/_examples/rule_overridable.php

Lines changed: 0 additions & 100 deletions
This file was deleted.

docs/apis/plugintypes/quizaccess/index.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Quiz access rule sub-plugins
2+
title: Quiz access rules
33
tags:
44
- Quiz
55
- Access
@@ -11,7 +11,7 @@ tags:
1111

1212
import { ComponentFileSummary } from '../../../_utils';
1313

14-
Quiz access rule sub-plugins extend the ability to add conditions a user must meet to attempt a given quiz.
14+
Quiz access rules give the ability to add conditions a user must meet to attempt a given quiz.
1515

1616
The following rules are readily available as part of Moodle core:
1717

@@ -67,20 +67,22 @@ import RuleDescription from './_examples/rule.md';
6767
description={RuleDescription}
6868
/>
6969

70-
import RuleOverridableFile from '!!raw-loader!./_examples/rule_overridable.php';
71-
import RuleOverridableDescription from './_examples/rule_overridable.md';
70+
### classes/override_rule.php
71+
72+
import OverrideRuleFile from '!!raw-loader!./_examples/override_rule.php';
73+
import OverrideRuleDescription from './_examples/override_rule.md';
7274

7375
<ComponentFileSummary
74-
filepath="/rule.php"
75-
summary="Rule definition class with override"
76+
filepath="/classes/override_rule.php"
77+
summary="Override rule definition class"
7678
plugintype="quizaccessrule"
7779
pluginname="pluginname"
78-
example={RuleOverridableFile}
79-
description={RuleOverridableDescription}
80+
example={OverrideRuleFile}
81+
description={OverrideRuleDescription}
8082
/>
8183

8284
:::info
8385

84-
Implementing `rule_overridable` is not required but can enhance the usability of the rule.
86+
Implementing `override_rule` is not required but can enhance the usability of the access rule.
8587

8688
:::
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<!-- markdownlint-disable first-line-heading -->
2+
Most quiz settings can be overridden on a per user and/or group level and you can extend this ability to your rule as well. To make your rule overridable, you must create the `override_rule` class extending `mod_quiz\local\access_override_rule_base`.
3+
4+
Please refer to the inline phpdocs of the [mod_quiz::access_override_rule_base class](https://github.com/moodle/moodle/blob/main/mod/quiz/classes/local/access_override_rule_base.php) for detailed descriptions of the functions and meaning.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
use mod_quiz\form\edit_override_form;
2+
use mod_quiz\local\access_override_rule_base;
3+
use MoodleQuickForm;
4+
use context_module;
5+
use context;
6+
7+
class override_rule extends access_override_rule_base {
8+
9+
/**
10+
* All of the below access_override_rule_base be implemented below.
11+
*/
12+
13+
public static function add_form_fields(context_module $context, int $overrideid, object $quiz, MoodleQuickForm $mform): void {
14+
// Do nothing.
15+
}
16+
17+
public static function validate_form_fields(array $errors,
18+
array $data, array $files, edit_override_form $quizform): array {
19+
return [];
20+
}
21+
22+
public static function save_settings(array $override): void {
23+
// Do nothing.
24+
}
25+
26+
public static function delete_settings(int $quizid, array $overrides): void {
27+
// Do nothing.
28+
}
29+
30+
public static function get_settings(): array {
31+
return [];
32+
}
33+
34+
public static function get_required_settings(): array {
35+
return [];
36+
}
37+
38+
public static function get_settings_sql(string $overridetablename): array {
39+
return [];
40+
}
41+
42+
public static function add_table_fields(object $override, array $fields, array $values, context $context): array {
43+
return [];
44+
}
45+
46+
public static function clean_form_data(array $formdata): array {
47+
return $formdata;
48+
}
49+
}

versioned_docs/version-5.0/apis/plugintypes/quizaccess/_examples/rule.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use mod_quiz\form\edit_override_form;
21
use mod_quiz\form\preflight_check_form;
32
use mod_quiz\quiz_settings;
43
use mod_quiz\local\access_rule_base;

0 commit comments

Comments
 (0)