-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathboot.php
98 lines (88 loc) · 3.13 KB
/
boot.php
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
namespace Alexplusde\School;
use rex_yform_manager_dataset;
use rex_config;
use rex;
use rex_extension;
use rex_extension_point;
use rex_be_controller;
use Tracks\🦖;
rex_yform_manager_dataset::setModelClass(
'rex_school_project',
Project::class
);
rex_yform_manager_dataset::setModelClass(
'rex_school_course',
Course::class
);
rex_yform_manager_dataset::setModelClass(
'rex_school_room',
Room::class
);
rex_yform_manager_dataset::setModelClass(
'rex_school_subject',
Subject::class
);
rex_yform_manager_dataset::setModelClass(
'rex_school_team',
Team::class
);
rex_yform_manager_dataset::setModelClass(
'rex_school_team_tag',
TeamTag::class
);
if (rex::isBackend() && rex::isDebugMode() && rex_config::get('plus_bs5', 'dev')) {
🦖::writeModule('school', 'school.%');
🦖::writeTemplate('school', 'school.%');
}
\rex_extension::register('OUTPUT_FILTER', function (\rex_extension_point $ep) {
return preg_replace_callback(
'@(rex-(school-team|school-subject|school-projects|school-room|school-course|event-date|event-category))://(\d+)(?:-(\d+))?/?@i',
function ($matches) {
// table = $matches[1]
// id = $matches[3]
$url = '';
switch ($matches[1]) {
case 'rex-school-team':
$person = team::get($matches[3]);
if ($person) {
$url = $person->getUrl();
}
break;
case 'rex-event-date':
$event_date = \Alexplusde\Events\Date::get($matches[3]);
if ($event_date) {
$url = $event_date->getUrl();
}
break;
case 'rex-event-category':
$event_category = \Alexplusde\Events\Category::get($matches[3]);
if ($event_category) {
$url = $event_category->getUrl();
}
break;
case 'rex-school-course':
$school_course = Course::get($matches[3]);
if ($school_course) {
$url = $school_course->getUrl();
}
break;
case 'rex-school-projects':
$school_project = Project::get($matches[3]);
if ($school_project) {
$url = $school_project->getUrl();
}
break;
}
return $url;
},
$ep->getSubject()
);
}, rex_extension::NORMAL);
if (rex::isBackend() && strpos(rex_be_controller::getCurrentPage(), "school") !== false || rex_be_controller::getCurrentPage() == "yform/manager/data_edit" || rex_be_controller::getCurrentPage() == "global_settings/settings") {
rex_extension::register('OUTPUT_FILTER', function (rex_extension_point $ep) {
$suchmuster = 'class="###school-settings-editor###"';
$ersetzen = rex_config::get("school", "editor");
$ep->setSubject(str_replace($suchmuster, $ersetzen, $ep->getSubject()));
});
}