Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
// This file is part of Moodle - http://moodle.org/
3
//
4
// Moodle is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// Moodle is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
 
17
/**
18
 * Library functions for timeline
19
 *
20
 * @package   block_timeline
21
 * @copyright 2018 Peter Dias
22
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23
 */
24
defined('MOODLE_INTERNAL') || die();
25
 
26
/**
27
 * Define constants to store the SORT user preference
28
 */
29
define('BLOCK_TIMELINE_SORT_BY_DATES', 'sortbydates');
30
define('BLOCK_TIMELINE_SORT_BY_COURSES', 'sortbycourses');
31
 
32
/**
33
 * Define constants to store the FILTER user preference
34
 */
35
define('BLOCK_TIMELINE_FILTER_BY_NONE', 'all');
36
define('BLOCK_TIMELINE_FILTER_BY_OVERDUE', 'overdue');
37
define('BLOCK_TIMELINE_FILTER_BY_7_DAYS', 'next7days');
38
define('BLOCK_TIMELINE_FILTER_BY_30_DAYS', 'next30days');
39
define('BLOCK_TIMELINE_FILTER_BY_3_MONTHS', 'next3months');
40
define('BLOCK_TIMELINE_FILTER_BY_6_MONTHS', 'next6months');
41
define('BLOCK_TIMELINE_ACTIVITIES_LIMIT_DEFAULT', 5);
42
 
43
/**
44
 * Returns the name of the user preferences as well as the details this plugin uses.
45
 *
46
 * @uses core_user::is_current_user
47
 *
48
 * @return array[]
49
 */
50
function block_timeline_user_preferences(): array {
51
    $preferences['block_timeline_user_sort_preference'] = array(
52
        'null' => NULL_NOT_ALLOWED,
53
        'default' => BLOCK_TIMELINE_SORT_BY_DATES,
54
        'type' => PARAM_ALPHA,
55
        'choices' => array(BLOCK_TIMELINE_SORT_BY_DATES, BLOCK_TIMELINE_SORT_BY_COURSES),
56
        'permissioncallback' => [core_user::class, 'is_current_user'],
57
    );
58
 
59
    $preferences['block_timeline_user_filter_preference'] = array(
60
        'null' => NULL_NOT_ALLOWED,
61
        'default' => BLOCK_TIMELINE_FILTER_BY_30_DAYS,
62
        'type' => PARAM_ALPHANUM,
63
        'choices' => array(
64
                BLOCK_TIMELINE_FILTER_BY_NONE,
65
                BLOCK_TIMELINE_FILTER_BY_OVERDUE,
66
                BLOCK_TIMELINE_FILTER_BY_7_DAYS,
67
                BLOCK_TIMELINE_FILTER_BY_30_DAYS,
68
                BLOCK_TIMELINE_FILTER_BY_3_MONTHS,
69
                BLOCK_TIMELINE_FILTER_BY_6_MONTHS
70
        ),
71
        'permissioncallback' => [core_user::class, 'is_current_user'],
72
    );
73
 
74
    $preferences['block_timeline_user_limit_preference'] = array(
75
        'null' => NULL_NOT_ALLOWED,
76
        'default' => BLOCK_TIMELINE_ACTIVITIES_LIMIT_DEFAULT,
77
        'type' => PARAM_INT,
78
        'permissioncallback' => [core_user::class, 'is_current_user'],
79
    );
80
 
81
    return $preferences;
82
}