owls

annotate Owls.php @ 16:22243e7c7dc5

Name of banner pic is now configurable
author meillo@marmaro.de
date Sun, 27 May 2007 14:06:42 +0200
parents cebc198276eb
children
rev   line source
meillo@0 1 <?php
meillo@2 2
meillo@14 3 require_once 'Config/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@14 44 <link rel="stylesheet" type="text/css" href="Config/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@16 72 <img src="<?php echo $banner; ?>" 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