rev |
line source |
meillo@0
|
1 <?php
|
meillo@2
|
2
|
meillo@2
|
3 define('DB_PREFIX', 'rem__1_');
|
meillo@2
|
4 define('TITLE', 'Owls');
|
meillo@2
|
5
|
meillo@10
|
6 require_once '../../Db.inc.php';
|
meillo@2
|
7 require_once 'Includes/Loginsys.class.php';
|
meillo@2
|
8 include_once 'Includes/Bbcodeparser.inc.php';
|
meillo@2
|
9
|
meillo@2
|
10 $lsys = &new Loginsys();
|
meillo@2
|
11
|
meillo@2
|
12 ?>
|
meillo@2
|
13 <!--
|
meillo@2
|
14
|
meillo@2
|
15 `Owls' - some kind of wiki system
|
meillo@2
|
16
|
meillo@2
|
17
|
meillo@2
|
18 (c) Copyright 2006 &> by Meillo r e t u r n s
|
meillo@2
|
19
|
meillo@2
|
20 This program is free software; you can redistribute it and/or
|
meillo@2
|
21 modify it under the terms of the GNU General Public License
|
meillo@2
|
22 as published by the Free Software Foundation; either version 2
|
meillo@2
|
23 of the License, or (at your option) any later version.
|
meillo@2
|
24
|
meillo@2
|
25 This program is distributed in the hope that it will be useful,
|
meillo@2
|
26 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
meillo@2
|
27 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
meillo@2
|
28 GNU General Public License for more details.
|
meillo@2
|
29
|
meillo@2
|
30
|
meillo@2
|
31 http://prog.marmaro.de/owls/
|
meillo@2
|
32
|
meillo@2
|
33 -->
|
meillo@2
|
34
|
meillo@2
|
35 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
meillo@2
|
36
|
meillo@2
|
37 <html xml:lang="de" xmlns="http://www.w3.org/1999/xhtml">
|
meillo@2
|
38 <head>
|
meillo@2
|
39 <title><?php echo htmlentities(TITLE); ?></title>
|
meillo@2
|
40 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
meillo@2
|
41 <link rel="shortcut icon" href="favicon.ico" />
|
meillo@2
|
42 <link rel="stylesheet" type="text/css" href="Owls.css.php" />
|
meillo@2
|
43 <script type="text/javascript">
|
meillo@2
|
44 <!--
|
meillo@2
|
45 function sureToDelete(id) {
|
meillo@2
|
46 if (window.prompt("Type 'delete' to delete","") == "delete") {
|
meillo@2
|
47 location.href = id +"d";
|
meillo@2
|
48 }
|
meillo@2
|
49 }
|
meillo@2
|
50
|
meillo@2
|
51 /* I want to use this function later ... perhaps
|
meillo@2
|
52 function toggleVisibility(boxId) {
|
meillo@2
|
53 if (document.getElementById('node'+ boxId).style.display == 'none') {
|
meillo@2
|
54 document.getElementById('node'+ boxId).style.display = "";
|
meillo@2
|
55 document.getElementById('ctrl'+ boxId).firstChild.nodeValue = "-";
|
meillo@2
|
56 } else{
|
meillo@2
|
57 document.getElementById('node'+ boxId).style.display = "none";
|
meillo@2
|
58 document.getElementById('ctrl'+ boxId).firstChild.nodeValue = "+";
|
meillo@2
|
59 }
|
meillo@2
|
60 }
|
meillo@2
|
61 */
|
meillo@2
|
62 //-->
|
meillo@2
|
63 </script>
|
meillo@2
|
64 </head>
|
meillo@2
|
65
|
meillo@2
|
66 <body>
|
meillo@2
|
67 <div id="websiteContainer">
|
meillo@2
|
68
|
meillo@2
|
69 <!-- Banner -->
|
meillo@2
|
70 <img src="Owls.png" id="banner" alt="<?php echo htmlentities(TITLE); ?>" />
|
meillo@2
|
71
|
meillo@2
|
72 <?php
|
meillo@2
|
73
|
meillo@2
|
74
|
meillo@0
|
75 if ($_GET['action'] == 'show') { // show
|
meillo@0
|
76 show($lsys);
|
meillo@0
|
77
|
meillo@0
|
78 } else if ($_GET['action'] == 'new' && $lsys->loggedIn()) { // new
|
meillo@0
|
79 create($lsys);
|
meillo@0
|
80
|
meillo@0
|
81 } else if ($_GET['action'] == 'edit' && $lsys->loggedIn()) { // edit
|
meillo@0
|
82 edit($lsys);
|
meillo@0
|
83
|
meillo@0
|
84 } else if ($_GET['action'] == 'delete' && $lsys->loggedIn()) { // delete
|
meillo@0
|
85 delete($lsys);
|
meillo@0
|
86
|
meillo@0
|
87 } else if ($_GET['action'] == 'login') { // login
|
meillo@0
|
88 $lsys->login($_POST['login_loginname'], md5($_POST['login_password']));
|
meillo@0
|
89 show($lsys);
|
meillo@0
|
90
|
meillo@0
|
91 } else if ($_GET['action'] == 'logout') { // logout
|
meillo@0
|
92 $lsys->logout();
|
meillo@0
|
93 show($lsys);
|
meillo@0
|
94
|
meillo@0
|
95 } else { // startpage
|
meillo@0
|
96 $_GET['id'] = 1;
|
meillo@0
|
97 show($lsys);
|
meillo@0
|
98
|
meillo@0
|
99 }
|
meillo@0
|
100
|
meillo@0
|
101
|
meillo@2
|
102
|
meillo@2
|
103
|
meillo@2
|
104
|
meillo@2
|
105 ?>
|
meillo@2
|
106
|
meillo@2
|
107 </div>
|
meillo@2
|
108
|
meillo@2
|
109
|
meillo@2
|
110 </div>
|
meillo@2
|
111
|
meillo@2
|
112 </body>
|
meillo@2
|
113 </html>
|
meillo@2
|
114 <?php
|
meillo@0
|
115
|
meillo@0
|
116
|
meillo@0
|
117
|
meillo@0
|
118
|
meillo@0
|
119
|
meillo@0
|
120
|
meillo@0
|
121
|
meillo@0
|
122
|
meillo@0
|
123 /*
|
meillo@0
|
124 displays content of the node
|
meillo@0
|
125 performs action 'edit'
|
meillo@0
|
126 shows admincontrols if logged in
|
meillo@0
|
127 */
|
meillo@0
|
128 function show($lsys) {
|
meillo@0
|
129
|
meillo@10
|
130
|
meillo@0
|
131 // perform action: write edited node to db
|
meillo@0
|
132 if (isset($_POST['editDoc']) && $lsys->loggedIn()) {
|
meillo@0
|
133 $_POST['editDoc_title'] = addslashes($_POST['editDoc_title']);
|
meillo@0
|
134 $_POST['editDoc_text'] = addslashes($_POST['editDoc_text']);
|
meillo@0
|
135 mysql_query("update ". DB_PREFIX ."Owls set
|
meillo@0
|
136 name='$_POST[editDoc_title]',
|
meillo@0
|
137 text='$_POST[editDoc_text]',
|
meillo@0
|
138 idParent='$_POST[editDoc_idCategory]',
|
meillo@0
|
139 date=". time() ."
|
meillo@0
|
140 where id='$_GET[id]'") or die(mysql_error());
|
meillo@0
|
141 }
|
meillo@0
|
142
|
meillo@0
|
143 // print nav
|
meillo@0
|
144 include 'Includes/Nav.inc.php';
|
meillo@0
|
145
|
meillo@0
|
146
|
meillo@10
|
147
|
meillo@10
|
148
|
meillo@0
|
149 // query data of the node
|
meillo@0
|
150 $result = mysql_query("select * from ". DB_PREFIX ."Owls where id=$_GET[id]");
|
meillo@0
|
151
|
meillo@0
|
152 // catch nodes that not exist
|
meillo@0
|
153 if (!mysql_num_rows($result)) {
|
meillo@0
|
154
|
meillo@0
|
155 $fnord = array('',
|
meillo@0
|
156 'Fnord is the space between the pixels on your screen.',
|
meillo@0
|
157 'Fnord is the echo of silence.',
|
meillo@0
|
158 'Fnord is evaporated herbal tea without the herbs.',
|
meillo@0
|
159 'Fnord is what you see when you close your eyes.',
|
meillo@0
|
160 'Fnord is the empty pages at the end of the book.',
|
meillo@0
|
161 'Fnord is why ducks eat trees.',
|
meillo@0
|
162 'Fnord is the bucket where they keep the unused serifs for H*lvetica.',
|
meillo@0
|
163 'Fnord is the source of all the zero bits in your computer.'
|
meillo@0
|
164 );
|
meillo@0
|
165
|
meillo@0
|
166 ?>
|
meillo@0
|
167 <div id="content">
|
meillo@0
|
168 <h2>Error 23 - fnord found</h2>
|
meillo@0
|
169 <p>
|
meillo@0
|
170 <?php echo $fnord[rand(0, sizeof($fnord)-1)]; ?>
|
meillo@0
|
171 </p>
|
meillo@0
|
172 <?php
|
meillo@0
|
173
|
meillo@0
|
174 } else {
|
meillo@0
|
175
|
meillo@0
|
176 $row = mysql_fetch_array($result);
|
meillo@0
|
177 echo ' <div id="content">'."\n";
|
meillo@0
|
178
|
meillo@10
|
179 // display admin controls or login form
|
meillo@10
|
180 ?>
|
meillo@10
|
181 <div class="ctrl">
|
meillo@10
|
182
|
meillo@10
|
183 <?php
|
meillo@10
|
184 // display last update
|
meillo@10
|
185 if ($_GET['id'] == 1) {
|
meillo@10
|
186 // root node displays date of last modification of any node
|
meillo@10
|
187 $sql = sprintf("
|
meillo@10
|
188 select
|
meillo@10
|
189 max(date)
|
meillo@10
|
190 from %sOwls
|
meillo@10
|
191 ",
|
meillo@10
|
192 DB_PREFIX
|
meillo@10
|
193 );
|
meillo@10
|
194 } else {
|
meillo@10
|
195 $sql = sprintf("
|
meillo@10
|
196 select
|
meillo@10
|
197 date
|
meillo@10
|
198 from %sOwls
|
meillo@10
|
199 where
|
meillo@10
|
200 id = ". $_GET['id'] ."
|
meillo@10
|
201 ",
|
meillo@10
|
202 DB_PREFIX
|
meillo@10
|
203 );
|
meillo@10
|
204 }
|
meillo@10
|
205 $result = mysql_query($sql) or die(mysql_error());
|
meillo@10
|
206 unset($sql);
|
meillo@10
|
207
|
meillo@10
|
208 $rowUpdate = mysql_fetch_row($result);
|
meillo@10
|
209 $lastUpdate = $rowUpdate[0];
|
meillo@10
|
210 ?>
|
meillo@10
|
211 <span style="font-size: 0.8em;">
|
meillo@10
|
212 last update: <?php echo date('d.m.Y H:i', $lastUpdate); ?>
|
meillo@10
|
213 </span>
|
meillo@10
|
214
|
meillo@10
|
215 <?php
|
meillo@0
|
216 if ($lsys->loggedIn()) {
|
meillo@0
|
217 ?>
|
meillo@0
|
218 <a href="<?php echo $row['id'] .'n'; ?>">new</a>
|
meillo@0
|
219 <a href="<?php echo $row['id'] .'e'; ?>">edit</a>
|
meillo@0
|
220 <?php
|
meillo@0
|
221 if ($row['id'] != 1) {
|
meillo@0
|
222 echo '<a href="javascript:sureToDelete('. $row['id'] .')">delete</a>';
|
meillo@0
|
223 }
|
meillo@10
|
224 echo ' <a href="'. $_GET['id'] .'logout" style="color: #c00;">logout</a>';
|
meillo@10
|
225 } else {
|
meillo@10
|
226 ?>
|
meillo@10
|
227 <form name="loginform" id="loginform" action="<?php echo $_GET['id']; ?>login" method="post" enctype="multipart/form-data" style="display: inline;">
|
meillo@10
|
228 <input name="login_loginname" type="text" />
|
meillo@10
|
229 <input name="login_password" type="password" />
|
meillo@10
|
230 <input name="login" type="submit" value="login" style="padding: 0; cursor: pointer; width: 5em;" />
|
meillo@10
|
231 </form>
|
meillo@10
|
232 <?php
|
meillo@10
|
233 }
|
meillo@0
|
234 ?>
|
meillo@0
|
235 </div>
|
meillo@0
|
236 <?php
|
meillo@0
|
237
|
meillo@0
|
238 // print content of the node
|
meillo@0
|
239 echo ' <h2>'.stripslashes($row['name']).'</h2>'."\n";
|
meillo@0
|
240 if (!empty($row['text'])) {
|
meillo@0
|
241 echo ' <p>'.bbcode(stripslashes($row['text']), 1, 1).'</p>';
|
meillo@0
|
242 }
|
meillo@0
|
243 }
|
meillo@0
|
244 echo "\n\n";
|
meillo@0
|
245
|
meillo@0
|
246 }
|
meillo@0
|
247
|
meillo@0
|
248
|
meillo@0
|
249
|
meillo@0
|
250
|
meillo@0
|
251
|
meillo@0
|
252 /*
|
meillo@0
|
253 displays edit form
|
meillo@0
|
254 */
|
meillo@0
|
255 function edit($lsys) {
|
meillo@0
|
256
|
meillo@0
|
257 include 'Includes/Nav.inc.php';
|
meillo@0
|
258
|
meillo@0
|
259 $sql = "select * from ". DB_PREFIX ."Owls where id=$_GET[id]";
|
meillo@0
|
260 $result = mysql_query($sql) or die(mysql_error());
|
meillo@0
|
261 $row = mysql_fetch_array($result);
|
meillo@0
|
262 echo '<div id="content">';
|
meillo@0
|
263 ?>
|
meillo@4
|
264 <div id="edit" style="position: relative; width: 99%">
|
meillo@0
|
265 <form action="<?php echo $row['id']; ?>" method="post" enctype="multipart/form-data">
|
meillo@0
|
266 <?php
|
meillo@0
|
267 if ($_GET['id'] != 1) {
|
meillo@0
|
268 ?>
|
meillo@0
|
269 <select name="editDoc_idCategory" style="width: 99%;">
|
meillo@0
|
270 <?php
|
meillo@2
|
271 $sql = sprintf("
|
meillo@2
|
272 select
|
meillo@2
|
273 *
|
meillo@2
|
274 from %sOwls
|
meillo@2
|
275 where
|
meillo@2
|
276 id != %d
|
meillo@2
|
277 and idParent != %d
|
meillo@2
|
278 -- not in (
|
meillo@2
|
279 -- select idParent from %sOwls
|
meillo@2
|
280 -- )
|
meillo@2
|
281 order by name asc
|
meillo@2
|
282 ",
|
meillo@2
|
283 DB_PREFIX,
|
meillo@2
|
284 $row['id'],
|
meillo@2
|
285 $row['id'],
|
meillo@2
|
286 DB_PREFIX
|
meillo@2
|
287 );
|
meillo@2
|
288 $result = mysql_query($sql) or die(mysql_error());
|
meillo@2
|
289 unset($sql);
|
meillo@0
|
290 while($rowCats = mysql_fetch_array($result)) {
|
meillo@2
|
291 echo ' <option value="'.$rowCats['id'].'"'. (($row['idParent'] == $rowCats['id']) ? ' selected="selected" style="font-weight: bold;"' : '') .'>'.stripslashes($rowCats['name']).'</option>';
|
meillo@0
|
292 }
|
meillo@0
|
293 ?>
|
meillo@0
|
294 </select><br /><br />
|
meillo@0
|
295 <?php
|
meillo@0
|
296 }
|
meillo@0
|
297 ?>
|
meillo@2
|
298 <input name="editDoc_title" type="text" value="<?php echo stripslashes($row['name']); ?>" style="width: 99%; font-weight: bold;" /><br />
|
meillo@0
|
299 <textarea name="editDoc_text" cols="60" rows="15" style="width: 99%; height: 30em;"><?php
|
meillo@0
|
300 echo stripslashes($row['text']);
|
meillo@0
|
301 ?></textarea><br /><br />
|
meillo@0
|
302 <input name="editDoc" type="submit" value="edit" class="button" style="width: 99%;" />
|
meillo@0
|
303 </form>
|
meillo@0
|
304 </div>
|
meillo@0
|
305 <?php
|
meillo@0
|
306 unset($row);
|
meillo@0
|
307 unset($result);
|
meillo@0
|
308 }
|
meillo@0
|
309
|
meillo@0
|
310
|
meillo@0
|
311
|
meillo@0
|
312
|
meillo@0
|
313
|
meillo@0
|
314
|
meillo@0
|
315 /*
|
meillo@0
|
316 performs action 'new'
|
meillo@0
|
317 */
|
meillo@0
|
318 function create($lsys) {
|
meillo@0
|
319
|
meillo@0
|
320 // perform action: new node
|
meillo@0
|
321 mysql_query("
|
meillo@0
|
322 insert into ". DB_PREFIX ."Owls
|
meillo@0
|
323 (idParent, date)
|
meillo@0
|
324 values('$_GET[id]',". time() .")
|
meillo@0
|
325 ") or die(mysql_error());
|
meillo@0
|
326
|
meillo@0
|
327 // set node to jump to (new created node)
|
meillo@0
|
328 $_GET['id'] = mysql_insert_id();
|
meillo@0
|
329 edit($lsys);
|
meillo@0
|
330 }
|
meillo@0
|
331
|
meillo@0
|
332
|
meillo@0
|
333
|
meillo@0
|
334
|
meillo@0
|
335
|
meillo@0
|
336 /*
|
meillo@0
|
337 performs action 'delete'
|
meillo@0
|
338 */
|
meillo@0
|
339 function delete($lsys) {
|
meillo@0
|
340 // not allowed to delete the root
|
meillo@0
|
341 if ($_GET['id'] != 1) {
|
meillo@0
|
342 // TODO: get the parent of the one which is to delete
|
meillo@0
|
343
|
meillo@0
|
344 // delete
|
meillo@0
|
345 mysql_query("delete from ". DB_PREFIX ."Owls where id='$_GET[id]'") or die(mysql_error());
|
meillo@0
|
346 }
|
meillo@0
|
347 // set node to jump to (TODO: parent from above)
|
meillo@0
|
348 $_GET['id'] = 1;
|
meillo@0
|
349 show($lsys);
|
meillo@0
|
350 }
|
meillo@0
|
351
|
meillo@0
|
352
|
meillo@0
|
353
|
meillo@0
|
354
|
meillo@0
|
355 ?>
|
meillo@0
|
356
|