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@13
|
9 require_once 'Loginsys.class.php';
|
meillo@13
|
10 include_once '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@13
|
146 include '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 <?php
|
meillo@10
|
185 // display last update
|
meillo@10
|
186 if ($_GET['id'] == 1) {
|
meillo@10
|
187 // root node displays date of last modification of any node
|
meillo@10
|
188 $sql = sprintf("
|
meillo@10
|
189 select
|
meillo@10
|
190 max(date)
|
meillo@10
|
191 from %sOwls
|
meillo@10
|
192 ",
|
meillo@10
|
193 DB_PREFIX
|
meillo@10
|
194 );
|
meillo@10
|
195 } else {
|
meillo@10
|
196 $sql = sprintf("
|
meillo@10
|
197 select
|
meillo@10
|
198 date
|
meillo@10
|
199 from %sOwls
|
meillo@10
|
200 where
|
meillo@10
|
201 id = ". $_GET['id'] ."
|
meillo@10
|
202 ",
|
meillo@10
|
203 DB_PREFIX
|
meillo@10
|
204 );
|
meillo@10
|
205 }
|
meillo@10
|
206 $result = mysql_query($sql) or die(mysql_error());
|
meillo@10
|
207 unset($sql);
|
meillo@10
|
208
|
meillo@10
|
209 $rowUpdate = mysql_fetch_row($result);
|
meillo@10
|
210 $lastUpdate = $rowUpdate[0];
|
meillo@10
|
211 ?>
|
meillo@10
|
212 <span style="font-size: 0.8em;">
|
meillo@10
|
213 last update: <?php echo date('d.m.Y H:i', $lastUpdate); ?>
|
meillo@10
|
214 </span>
|
meillo@10
|
215
|
meillo@10
|
216 <?php
|
meillo@0
|
217 if ($lsys->loggedIn()) {
|
meillo@0
|
218 ?>
|
meillo@0
|
219 <a href="<?php echo $row['id'] .'n'; ?>">new</a>
|
meillo@0
|
220 <a href="<?php echo $row['id'] .'e'; ?>">edit</a>
|
meillo@0
|
221 <?php
|
meillo@0
|
222 if ($row['id'] != 1) {
|
meillo@0
|
223 echo '<a href="javascript:sureToDelete('. $row['id'] .')">delete</a>';
|
meillo@0
|
224 }
|
meillo@10
|
225 echo ' <a href="'. $_GET['id'] .'logout" style="color: #c00;">logout</a>';
|
meillo@10
|
226 } else {
|
meillo@10
|
227 ?>
|
meillo@10
|
228 <form name="loginform" id="loginform" action="<?php echo $_GET['id']; ?>login" method="post" enctype="multipart/form-data" style="display: inline;">
|
meillo@10
|
229 <input name="login_loginname" type="text" />
|
meillo@10
|
230 <input name="login_password" type="password" />
|
meillo@10
|
231 <input name="login" type="submit" value="login" style="padding: 0; cursor: pointer; width: 5em;" />
|
meillo@10
|
232 </form>
|
meillo@10
|
233 <?php
|
meillo@10
|
234 }
|
meillo@0
|
235 ?>
|
meillo@0
|
236 </div>
|
meillo@0
|
237 <?php
|
meillo@0
|
238
|
meillo@0
|
239 // print content of the node
|
meillo@0
|
240 echo ' <h2>'.stripslashes($row['name']).'</h2>'."\n";
|
meillo@0
|
241 if (!empty($row['text'])) {
|
meillo@0
|
242 echo ' <p>'.bbcode(stripslashes($row['text']), 1, 1).'</p>';
|
meillo@0
|
243 }
|
meillo@0
|
244 }
|
meillo@0
|
245 echo "\n\n";
|
meillo@0
|
246
|
meillo@0
|
247 }
|
meillo@0
|
248
|
meillo@0
|
249
|
meillo@0
|
250
|
meillo@0
|
251
|
meillo@0
|
252
|
meillo@0
|
253 /*
|
meillo@0
|
254 displays edit form
|
meillo@0
|
255 */
|
meillo@0
|
256 function edit($lsys) {
|
meillo@0
|
257
|
meillo@13
|
258 include 'Nav.inc.php';
|
meillo@0
|
259
|
meillo@0
|
260 $sql = "select * from ". DB_PREFIX ."Owls where id=$_GET[id]";
|
meillo@0
|
261 $result = mysql_query($sql) or die(mysql_error());
|
meillo@0
|
262 $row = mysql_fetch_array($result);
|
meillo@0
|
263 echo '<div id="content">';
|
meillo@0
|
264 ?>
|
meillo@4
|
265 <div id="edit" style="position: relative; width: 99%">
|
meillo@0
|
266 <form action="<?php echo $row['id']; ?>" method="post" enctype="multipart/form-data">
|
meillo@0
|
267 <?php
|
meillo@0
|
268 if ($_GET['id'] != 1) {
|
meillo@0
|
269 ?>
|
meillo@0
|
270 <select name="editDoc_idCategory" style="width: 99%;">
|
meillo@0
|
271 <?php
|
meillo@2
|
272 $sql = sprintf("
|
meillo@2
|
273 select
|
meillo@2
|
274 *
|
meillo@2
|
275 from %sOwls
|
meillo@2
|
276 where
|
meillo@2
|
277 id != %d
|
meillo@2
|
278 and idParent != %d
|
meillo@2
|
279 -- not in (
|
meillo@2
|
280 -- select idParent from %sOwls
|
meillo@2
|
281 -- )
|
meillo@2
|
282 order by name asc
|
meillo@2
|
283 ",
|
meillo@2
|
284 DB_PREFIX,
|
meillo@2
|
285 $row['id'],
|
meillo@2
|
286 $row['id'],
|
meillo@2
|
287 DB_PREFIX
|
meillo@2
|
288 );
|
meillo@2
|
289 $result = mysql_query($sql) or die(mysql_error());
|
meillo@2
|
290 unset($sql);
|
meillo@0
|
291 while($rowCats = mysql_fetch_array($result)) {
|
meillo@2
|
292 echo ' <option value="'.$rowCats['id'].'"'. (($row['idParent'] == $rowCats['id']) ? ' selected="selected" style="font-weight: bold;"' : '') .'>'.stripslashes($rowCats['name']).'</option>';
|
meillo@0
|
293 }
|
meillo@0
|
294 ?>
|
meillo@0
|
295 </select><br /><br />
|
meillo@0
|
296 <?php
|
meillo@0
|
297 }
|
meillo@0
|
298 ?>
|
meillo@2
|
299 <input name="editDoc_title" type="text" value="<?php echo stripslashes($row['name']); ?>" style="width: 99%; font-weight: bold;" /><br />
|
meillo@0
|
300 <textarea name="editDoc_text" cols="60" rows="15" style="width: 99%; height: 30em;"><?php
|
meillo@0
|
301 echo stripslashes($row['text']);
|
meillo@0
|
302 ?></textarea><br /><br />
|
meillo@0
|
303 <input name="editDoc" type="submit" value="edit" class="button" style="width: 99%;" />
|
meillo@0
|
304 </form>
|
meillo@0
|
305 </div>
|
meillo@0
|
306 <?php
|
meillo@0
|
307 unset($row);
|
meillo@0
|
308 unset($result);
|
meillo@0
|
309 }
|
meillo@0
|
310
|
meillo@0
|
311
|
meillo@0
|
312
|
meillo@0
|
313
|
meillo@0
|
314
|
meillo@0
|
315
|
meillo@0
|
316 /*
|
meillo@0
|
317 performs action 'new'
|
meillo@0
|
318 */
|
meillo@0
|
319 function create($lsys) {
|
meillo@0
|
320
|
meillo@0
|
321 // perform action: new node
|
meillo@0
|
322 mysql_query("
|
meillo@0
|
323 insert into ". DB_PREFIX ."Owls
|
meillo@0
|
324 (idParent, date)
|
meillo@0
|
325 values('$_GET[id]',". time() .")
|
meillo@0
|
326 ") or die(mysql_error());
|
meillo@0
|
327
|
meillo@0
|
328 // set node to jump to (new created node)
|
meillo@0
|
329 $_GET['id'] = mysql_insert_id();
|
meillo@0
|
330 edit($lsys);
|
meillo@0
|
331 }
|
meillo@0
|
332
|
meillo@0
|
333
|
meillo@0
|
334
|
meillo@0
|
335
|
meillo@0
|
336
|
meillo@0
|
337 /*
|
meillo@0
|
338 performs action 'delete'
|
meillo@0
|
339 */
|
meillo@0
|
340 function delete($lsys) {
|
meillo@0
|
341 // not allowed to delete the root
|
meillo@0
|
342 if ($_GET['id'] != 1) {
|
meillo@0
|
343 // TODO: get the parent of the one which is to delete
|
meillo@0
|
344
|
meillo@0
|
345 // delete
|
meillo@0
|
346 mysql_query("delete from ". DB_PREFIX ."Owls where id='$_GET[id]'") or die(mysql_error());
|
meillo@0
|
347 }
|
meillo@0
|
348 // set node to jump to (TODO: parent from above)
|
meillo@0
|
349 $_GET['id'] = 1;
|
meillo@0
|
350 show($lsys);
|
meillo@0
|
351 }
|
meillo@0
|
352
|
meillo@0
|
353
|
meillo@0
|
354
|
meillo@0
|
355
|
meillo@0
|
356 ?>
|
meillo@0
|
357
|