-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.php
More file actions
153 lines (133 loc) · 5.22 KB
/
Copy pathaction.php
File metadata and controls
153 lines (133 loc) · 5.22 KB
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php
/**
* DokuWiki Plugin autogallery (Action Component)
*
* @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
* @author Tim Siebentaler <tsvamp333@googlemail.com>
*/
// must be run within Dokuwiki
if (!defined('DOKU_INC')) die();
class action_plugin_autogallery extends DokuWiki_Action_Plugin {
/* Registers a callback function for a given event
*
* @param Doku_Event_Handler $controller DokuWiki's event controller object
* @return void
*/
public function register(Doku_Event_Handler $controller) {
$controller->register_hook('NON_SENSE', 'AFTER', $this, 'do_it');//event registrieren
}
/* [Custom event handler which performs action]
*
* @param Doku_Event $event event object by reference
* @param mixed $param [the parameters passed as fifth argument to register_hook() when this
* handler was registered]
* @return void
*/
public function do_it(Doku_Event &$event, $param) {
global $ID,$INFO;
$tstamp='';
foreach($event->data as $name=>$X) {
if ($name=='tstamp') {
$tstamp=$X;
}
if ($name=='mydata') {
$mydata=$X;
}
}
if ($mydata['namespace']) {
$tstamp=$mydata['namespace'];
}
/**
* Initilisierung beim ersten start
* Prüfe ob NS wiki existiert, wenn nicht erstellen
* Prüfe ob NS wiki:bilder existiert, wenn nicht erstellen
* Nutzer über Erstellung informieren
* Erstelle zentralen Index (dort werden die Gallerien künftig zentral verlinkt)
*/
if (!is_dir(dirname(wikiFN("wiki:dummy.txt")))) {
$inidir= dirname(wikiFN("wiki:dummy.txt"));
$inidir=str_replace("/","\\", $inidir);
io_makeFileDir($inidir);
msg("First time initialisation 1/3: created Namespache wiki");
}
if (!is_dir(dirname(wikiFN("wiki:bilder:dummy.txt")))) {
$inidir=dirname(wikiFN("wiki:bilder:dummy.txt"));
$inidir=str_replace("/","\\", $inidir);
io_makeFileDir($inidir);
msg("First time initialisation 2/3: created (sub-)namespache wiki:bilder");
}
if (!is_file(str_replace("/","\\",dirname(wikiFN("wiki:bilder:dummy"))."\\index.txt"))) {
$inidir=dirname(wikiFN("wiki:bilder:dummy.txt"));
$inidir=str_replace("/","\\", $inidir);
io_saveFile($inidir."\\index.txt","");
msg(str_replace("/","\\",dirname(wikiFN("wiki:bilder:dummy"))."\\index.txt"));
msg("First time initialisation 3/3: Created base-index for your future galleries");
}
/**
* Gallerie-Index-Verzeichnis 1/2
* ermittle künftiges Verzeichnis aus NS
*/
$imggal = dirname(wikiFN("wiki:bilder:" . $tstamp . ":123"));
/**
* Gallerie-Bilder-Verzeichnis 1/2
* ermittle künftiges Verzeichnis aus NS
*/
$imgbase = dirname(wikiFN("wiki:bilder:" . $tstamp . ":" . $tstamp . ":123"));
/**
* Gallerie-Index-Verzeichnis 2/2
* erstellen wenn Verzeichnis nicht existiert
* Benutzer informieren, dass erstellt
*/
if (!is_dir($imggal)) {
io_makeFileDir($imggal . '/dummy.txt');
msg("made an own NS for gallery!", 1);
}
/**
* Gallerie-Bilder-Verzeichnis 2/2
* erstellen wenn Verzeichnis nicht existiert
* Benutzer informieren, dass erstellt
*/
if (!is_dir($imgbase)) {
io_makeFileDir($imgbase . '/dummy.txt');
msg("made a Sub-NS for images of gallery!", 1);
}
/**
* Index der zu erstellenden Gallerie
* Wenn Datei noch nicht existiert erstellen sie
* Schreibe Code für Plugin Gallery hinein um Gallerie zu erzeugen
* Informiere den benutzer darüber
* teile Benutzer mit, wohin Bilder hochgeleden werden müssen
*/
$imgpage = $imggal . '/index.txt';
if (!is_file($imgpage)) {
$page = "{{gallery>'" . "wiki:bilder:" . $tstamp . ":" . $tstamp . "'}}";//Nutze Gallery Plugin
$page = str_replace("\\", ":", $page);
$page =str_replace("/", ":", $page);
io_saveFile($imgpage, $page);
msg("made gallery file. Please Upload your images to: " . "wiki:bilder:" . $tstamp . ":" . $tstamp);
/**
* Gallerie verlinken
* Zentral-Index einlesen
* String mit Link zur neuen Gallerie erstellen
* alten Inhalt der Datei an neuen Link anhängen
* speichere neuen Index ab
* informiere Nutzer über Verlinkung
*/
$indexbase = dirname(wikiFN("wiki:bilder:index"));
$indexbase=str_replace("/","\\", $indexbase);
$page=io_readFile($indexbase."\\index.txt", $clean=false);
$page_fin="[[wiki:bilder:".$tstamp.":index|".$tstamp."]]\n\n".$page;
io_saveFile($indexbase."\\index.txt", $page_fin);
msg("Link to new gallery created in wiki:bilder:index",1);
/**
* Aktuelle Datei leeren
* schreibe leeren String in aktuelle Datei und lösche damit den Content
* ist erforderlich, da sonst sinnlose Uploadpage zurück bleibt, editieren auf konventionellem Wege wäre nicht möglich
* informiere Nutzer über Vorgang
*/
io_saveFile($INFO["filepath"],"");//leere aktuelle Datei
msg("Deleted content of this actual file...otherwise it would not be editable in future!",-1);
}
}
}
// vim:ts=4:sw=4:et: