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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
<?php
class MpcmsFeatureCalendar {
private function isJson($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
public function __construct() {
if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/webcontent/lang")) {
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/data/webcontent/lang", "fr");
}
$langsel = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/data/webcontent/lang");
$lang = [];
if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/resources/i18n/" . $langsel)) {
$langprops = scandir($_SERVER['DOCUMENT_ROOT'] . "/resources/i18n/" . $langsel . "/");
foreach ($langprops as $langprop) {
if ($langprop != "." && $langprop != "..") {
$langpieces = explode("/", implode("/", explode("\\", $langprop)));
$langitemsel = explode(".", $langpieces[count($langpieces) - 1]);
$langitem = $langitemsel[count($langitemsel) - 1];
if ($langitemsel[count($langitemsel) - 1] != "json") {
require $_SERVER['DOCUMENT_ROOT'] . "/api/electrode/quit.php";quit("Unable to load language file: " . implode(".", $langitemsel) . " is not in a valid format. Language files must be JSON.");
} else {
json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/resources/i18n/" . $langsel . "/" . $langprop), true);
if (json_last_error() == JSON_ERROR_NONE) {
$lang[$langitemsel[count($langitemsel) - 2]] = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/resources/i18n/" . $langsel . "/" . $langprop), true);
} else {
require $_SERVER['DOCUMENT_ROOT'] . "/api/electrode/quit.php";quit("Unable to load language file: " . implode(".", $langitemsel) . " isn't a valid JSON file. Please check for syntax errors and retry.");
}
}
}
}
} else {
if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/resources/i18n/fr")) {
echo("Unable to load language files: unable to find selected language files, loading fallback files");
$langprops = scandir($_SERVER['DOCUMENT_ROOT'] . "/resources/i18n/fr/");
foreach ($langprops as $langprop) {
if ($langprop != "." && $langprop != "..") {
$langpieces = explode("/", implode("/", explode("\\", $langprop)));
$langitemsel = explode(".", $langpieces[count($langpieces) - 1]);
$langitem = $langitemsel[count($langitemsel) - 1];
if ($langitemsel[count($langitemsel) - 1] != "json") {
require $_SERVER['DOCUMENT_ROOT'] . "/api/electrode/quit.php";quit("Unable to load language file: " . implode(".", $langitemsel) . " is not in a valid format. Language files must be JSON.");
} else {
json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/resources/i18n/fr/" . $langprop), true);
if (json_last_error() == JSON_ERROR_NONE) {
$lang[$langitemsel[count($langitemsel) - 2]] = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/resources/i18n/fr/" . $langprop), true);
} else {
require $_SERVER['DOCUMENT_ROOT'] . "/api/electrode/quit.php";quit("Unable to load language file: " . implode(".", $langitemsel) . " isn't a valid JSON file. Please check for syntax errors and retry.");
}
}
}
}
} else {
require $_SERVER['DOCUMENT_ROOT'] . "/api/electrode/quit.php";quit("Unable to load language files: unable to find selected language files, and unable to find fallback language files");
}
}
global $GLOBALS;
global $_RENDERER;
echo('<div id="widget-space"><ul>');
$jsonraw = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/data/webcontent/caldb.json");
if ($this::isJson($jsonraw)) {
$json = json_decode($jsonraw);
$eventlist = [];
foreach ($json->events as $event) {
if (isset($event->timestamp)) {
array_push($eventlist, $event->timestamp);
}
}
sort($eventlist);
$pos = 1;
$shown = 0;
if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/webcontent/calendar_events")) {
$calevn = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/data/webcontent/calendar_events");
} else {
$calevn = "3";
}
foreach ($eventlist as $event) {
if ($pos == ($calevn + 1)) {} else {
foreach ($json->events as $el) {
if (isset($el->timestamp)) {
if ($el->timestamp == $event) {
(int)$currentDate = date("Ymd");
if ($currentDate < $el->timestamp) {
$shown = $shown + 1;
if (isset($el->link)) {
if ($el->link != "" && $el->link != "http://") {
echo("<li><b><a target=\"_blank\" class=\"sblink\" href=\"" . $el->link . "\">" . $el->datestr . "</b> : " . $el->name . "</a></li>");
} else {
echo("<li><b>" . $el->datestr . "</b> : " . $el->name . "</li>");
}
} else {
echo("<li><b>" . $el->datestr . "</b> : " . $el->name . "</li>");
}
$pos = $pos + 1;
}
if ($currentDate == $el->timestamp) {
$shown = $shown + 1;
echo("<li><b>{$lang["widgets"]["calendar"]["today"]}</b> : " . $el->name . "</li>");
$pos = $pos + 1;
}
}
}
}
}
}
if ($shown == "0") {
echo("</ul><div style=\"text-align: center;\"><i>{$lang["widgets"]["calendar"]["nothing"]}</i></div>");
}
} else {
echo("<b>{$lang["widgets"]["calendar"]["corrupt"]}</b>");
}
if ($_RENDERER === "Neutron Titanium") {
echo("</ul><small><a href=\"/cms-special/calendar\">{$lang["widgets"]["calendar"]["more"]}</a></small></div>");
} else {
echo("</ul><small><a href=\"{$GLOBALS["SYSTEM_ROOT"]}/cms-special/calendar\">{$lang["widgets"]["calendar"]["more"]}</a></small></div>");
}
}
}
|