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