-
Notifications
You must be signed in to change notification settings - Fork 0
/
help.php
99 lines (83 loc) · 3.47 KB
/
help.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
99
<?php
?>
<h2>Beschreibung</h2>
Mit diesem Addon können die Redaxo Module über eine Zentrale Stelle in verschiedenen Versionen verwaltet werden.<br />
Somit können neuere Versionen von Modulen eingespielt werden, sofern diese noch nicht händisch in Redaxo angepasst wurden.<br />
<h2>Zentrale Verwaltung</h2>
Die "Zentrale" ist die nachfolgende "index.php" die unter der angegebenen URL in der Config erreichbar sein muss.<br />
Es gibt auch noch 2 Datenbank Tabellen zur Verwaltung der einzelnen Versionen von Modulen.<br />
<br />
Die index.php muss über eine https Verbindung erreichbar sein!<br />
<pre>
$hostname = 'localhost';
$username = 'root';
$passwort = '';
$database = 'modulemanager';
$prefix = 'rex_';
$sql = new mysqli($hostname, $username, $passwort, $database);
if($sql->connect_errno) {
echo "Sorry, database down!";
exit;
}
$erg = $sql->query("Select * from module order by name");
$d = [];
while($r = $erg->fetch_assoc()) {
$erg2 = $sql->query("Select * from module_content where modulid=".$r['id']);
$a = new stdClass();
$a->name = utf8_encode($r['name']);
$a->author = utf8_encode($r['author']);
$a->shortdescription = utf8_encode($r['shortdescription']);
$a->description = utf8_encode($r['description']);
$a->created = utf8_encode($r['created']);
$a->updated = utf8_encode($r['updated']);
while($r2 = $erg2->fetch_assoc()) {
$b = new stdClass();
$b->version = utf8_encode($r2['version']);
$b->description = utf8_encode($r2['description']);
$b->created = utf8_encode($r2['created']);
$b->updated = utf8_encode($r2['updated']);
$b->input = utf8_encode($r2['input']);
$b->output = utf8_encode($r2['output']);
$a->files[$r2['revid']] = $b;
}
$d[utf8_encode($r['name'])] = $a;
}
echo json_encode($d);
</pre>
<h1>Datenbank der Zentrale</h1>
Die "Zentrale" basiert auf einer Datenbank. Über diese Datenbank sind die einzelnen Version pflegbar.<br />
<br />
Nachfolgend ein SQL Statement zum anlegen der Tabellen
<pre>
CREATE TABLE IF NOT EXISTS `module` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`author` varchar(35) DEFAULT NULL,
`shortdescription` varchar(255) DEFAULT NULL,
`description` text,
`created` datetime DEFAULT NULL,
`updated` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `module_content` (
`revid` int(11) NOT NULL AUTO_INCREMENT,
`modulid` int(11) NOT NULL DEFAULT '0',
`version` char(10) NOT NULL,
`description` text NOT NULL,
`created` datetime NOT NULL,
`updated` datetime NOT NULL,
`input` longtext NOT NULL,
`output` longtext NOT NULL,
PRIMARY KEY (`revid`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
</pre>
<br />
Nachfolgend Musterdaten
<pre>
INSERT INTO `module` (`id`, `name`, `author`, `shortdescription`, `description`, `created`, `updated`) VALUES
(1, 'Testmodul 123', 'Markus Schnieder', 'Das Ultimative geile erste Modul!', 'Hier kommt die mega lange beschreibung rein, damit man weiß was dass ding so kann...', '2018-03-14 13:29:07', '2018-03-14 13:29:07'),
(2, 'Headlines', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `module_content` (`revid`, `modulid`, `version`, `description`, `created`, `updated`, `input`, `output`) VALUES
(1, 1, '1.0.1', 'Das hat sich so alles geändert...', '2018-03-14 13:30:55', '2018-03-14 13:30:56', 'Test 123', 'HAHHA'),
(2, 1, '1.0.2', 'Das ist neu', '2018-03-15 10:18:56', '2018-03-15 10:18:57', 'asdf', 'blub');
</pre>