aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/FeedbackRange.interface.php
blob: 863c197ba64f4424e8be500144c7ac74948b851c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php

/**
 * Interface FeedbackRange
 *
 * The FeedbackRange defines methods for range objects
 * that can reveive feedback.
 *
 * @author Nils Gehrke <nils.gehrke@uni-goettingen.de>
 */

interface FeedbackRange
{
    /**
     * Returns the ID of this range.
     *
     * @return string|integer The ID of the range.
     */
    public function getId();

    /**
     * Returns a human-friendly representation of the FeedbackRange object instance's name.
     *
     * @return string A human-friendly name for the FeedbackRange object instance.
     */
    public function getRangeName();

    /**
     * Returns the icon object that shall be used with the FeedbackRange object instance.
     *
     * @param string $role role of icon
     * @return Icon icon for the FeedbackRange object instance.
     */
    public function getRangeIcon($role);

    /**
     * Returns the URL of FeedbackRange view, where the object instance is visible
     * together with the related feedback element(s).
     * @return string Path that is usable with the url_for and link_for methods.
     */
    public function getRangeUrl();

    /**
     * Returns the course id of FeedbackRange object instance
     * @return string course_id
     */
    public function getRangeCourseId();

    /**
     * Returns the accessebility of FeedbackRange object instance for current active user
     * @param string $user_id    optional; use this ID instead of $GLOBALS['user']->id
     * @return bool range object accessebility
     */
    public function isRangeAccessible(string $user_id = null): bool;
}