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: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: 355: 356: 357: 358: 359: 360: 361: 362: 363: 364: 365: 366: 367: 368: 369: 370: 371: 372: 373: 374: 375: 376: 377: 378: 379: 380: 381: 382: 383: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411: 412: 413: 414: 415: 416: 417: 418: 419: 420: 421: 422: 423: 424: 425: 426: 427: 428: 429: 430: 431: 432: 433: 434: 435: 436: 437: 438: 439: 440: 441: 442: 443: 444: 445: 446: 447: 448: 449: 450: 451: 452: 453:
|
<?
// Farbeditor von Draza´ar für Vinestra // Version: 0.9 - Betaphase // mail: drazaar@legend-of-vinestra.de // play: logd.legend-of-vinestra.de
// !!!! Achtung, stark an die Vinestra Version angepasst! !!!!
require_once 'common.php'; page_header('V3 Farbeditor');
class color { private $id, $code, $color, $tag, $style, $allowed, $priority; public function __construct($id, $code='', $color='', $tag='', $style='', $allowed='', $priority='') { # Farbe befindet sich bereits in der Datenbank if(!empty($id) && empty($code) && empty($color) && empty($tag) && empty($style) && empty($allowed) && empty($priority)) { # Daten aus der DB holen $sql = 'SELECT * FROM appoencode WHERE id = '.$id; $row = db_fetch_assoc(db_query($sql)); # Variablen deklarieren $this->id = $id; $this->code = $row['code']; $this->color = $row['color']; $this->tag = $row['tag']; $this->style = $row['style']; $this->allowed = $row['allowed']; $this->priority = $row['priority']; } else { # Neue Farbe $this->id = $id; $this->code = $code; $this->color = $color; $this->tag = $tag; $this->style = $style; $this->allowed = $allowed; $this->priority = $priority; } } public function color_values() { $info = array('id' => $this->id, 'code' => $this->code, 'color' => $this->color, 'tag' => $this->tag, 'style' => $this->style, 'allowed' => $this->allowed, 'priority' => $this->priority); return $info; } public function db_save_color($newcolor=false) { # Updaten der DB Einträge if(!$newcolor) { $sql = 'UPDATE appoencode SET code = "'.$this->code.'", color = "'.$this->color.'", tag = "'.$this->tag.'", style = "'.$this->style.'", allowed = '.$this->allowed.', priority = '.$this->priority.' WHERE id = '.$this->id; print($sql); db_query($sql); if(db_affected_rows() == 0) { return false; } else { return true; } } else { $sql = 'INSERT INTO appoencode (code, color, tag, style, allowed, priority) VALUES ("'.$this->code.'", "'.$this->color.'", "'.$this->tag.'", "'.$this->style.'", "'.$this->allowed.'", "'.$this->priority.'")'; db_query($sql); if(db_affected_rows() == 0) { return false; } else { return true; } } } public function change_values($change) { foreach($change AS $key => $val) { $this->$key = $val; } } public function delete_color() { $sql = 'DELETE FROM appoencode WHERE id = '.$this->id; db_query($sql); } }
switch($_GET['op']) { case '': unset($session['seenalert']); $out = '`c`b`&Farben in der Datenbank:`b `c `n`n'; $out .= '<table border="0" bgcolor="#999999" cellpadding="3" cellspacing="1"> <tr class="trhead"> <td> `b`&ID`b </td> <td> `b`&LoGD-Code`b </td> <td> `b`&Farbcode`b </td> <td> `b`&HTML-Tag`b </td> <td> `b`&Style`b </td> <td> `b`&Erlaubt?`b </td> <td> `b`&Priorität`b </td> <td> `b`&Optionen`b </td> </tr>'; $sql = 'SELECT * FROM appoencode ORDER BY priority ASC'; $res = db_query($sql); while($row = db_fetch_assoc($res)) { $allowed = $row['allowed']?'`@Ja`0':'`$Nein`0'; $out .= '<tr class="trdark"> <td> `&'.$row['id'].' </td> <td align="center"> `&``'.$row['code'].' </td> <td align="center"> `&`'.$row['code'].$row['color'].' </td> <td align="center"> `&'.$row['tag'].' </td> <td> `&'.$row['style'].' </td> <td align="center"> `&'.$allowed.' </td> <td align="center"> `&'.$row['priority'].' </td> <td> `&<a href="coloredit.php?op=edit&colorid='.$row['id'].'">Edit</a> | `0<a href="coloredit.php?op=del&colorid='.$row['id'].'">`$Del`0</a> </td> </tr>'; addnav('', 'coloredit.php?op=edit&colorid='.$row['id']); addnav('', 'coloredit.php?op=del&colorid='.$row['id']); } $out .= '</table>'; addnav('Aktionen'); addnav('Aktualisieren', 'coloredit.php'); addnav('Neue Farbe', 'coloredit.php?op=new'); addnav('Farbtabelle löschen', 'coloredit.php?op=deltable'); addnav('Umkehren'); addnav('Zurück zur Grotte', 'superuser.php'); addnav('Zurück zum Weltlichen', 'village.php'); break; case 'edit': $colorid = $_GET['colorid']; $color = new color($colorid); $colorinfos = $color->color_values(); $form = array( 'code' => array( 'Farbcode für LoGD (ohne `)', 'int' ), 'color' => array( 'Hexadezimalcode (ohne #)', 'text' ), 'tag' => array( 'HTML Tag', 'text' ), 'style' => array( 'Style', 'text' ), 'allowed' => array( 'Erlaubt?', 'bool', 'default' => $colorinfos['allowed'] ), 'priority' => array('Priorität', 'int' ) ); $showform = new showform('Farbe editieren', $form, $colorinfos); $showform->enableSave(); $rawout .= '<form action="coloredit.php?op=edit2&colorid='.$colorinfos['id'].'" method="POST"> '.$showform->getOut().' Abfrage auf Groß- und Kleinschreibung nicht beachten? <input type="checkbox" checked name="look4overwrite"> </form>'; addnav('', 'coloredit.php?op=edit2&colorid='.$colorinfos['id']); //var_dump($session['allowednavs']); addnav('Umkehren'); addnav('Zurück zum Hauptmenu', 'coloredit.php'); addnav('Zurück zur Grotte', 'superuser.php'); addnav('Zurück zum Weltlichen', 'village.php'); break; case 'edit2': $colorid = $_GET['colorid']; $look4overwrite = $_POST['look4overwrite']; if(!$look4overwrite) { $sql = 'SELECT * FROM appoencode WHERE code = '.$_POST['code']; $res = db_query($sql); $n = db_num_rows($res); if($n) $cancel = true; else $cancel = false; } if($cancel) { $out .= '`$Der Farbcode wird bereits verwendet! Wenn du ihn trotzdem so speichern will, dann aktiviere die Option "Abfrage auf Groß- und Kleinschreibung nicht beachten".'; } else { $color = new color($colorid); $colorinfos = $color->color_values(); $newvalues = array(); foreach($_POST AS $key => $val) { if($key == 'look4overwrite') continue; if($colorinfos[$key] != $val) $newvalues[$key] = $val; } //var_dump($newvalues); $color->change_values($newvalues); if($color->db_save_color()) { $out .= '`&Die Farbe wurde erfolgreich editiert!'; } else { $out .= '`$Es ist ein Fehler aufgetreten... Kontaktiere den Techadmin ;)'; } } addnav('Umkehren'); addnav('Zurück zum Hauptmenu', 'coloredit.php'); addnav('Zurück zur Grotte', 'superuser.php'); addnav('Zurück zum Weltlichen', 'village.php'); break; case 'new': $form = array( 'code' => array( 'LoGD Code (ohne ``)', 'limitedtext', 1 ), 'color' => array( 'Hexa Code (ohne #)', 'text' ), 'tag' => array( 'HTML Tag', 'text' ), 'style' => array( 'Style', 'text' ), 'allowed' => array( 'Farbe erlaubt?', 'bool', 'default' => 1 ), 'priority' => array('Priorität', 'int' ) ); $showform = new showform('Farbe hinzufügen', $form); $showform->enableSave(); $out .= '<form action="coloredit.php?op=new2" method="POST"> '.$showform->getOut().' Abfrage auf Groß- und Kleinschreibung nicht beachten? <input type="checkbox" checked name="look4overwrite"> </form>'; addnav('', 'coloredit.php?op=new2'); addnav('Umkehren'); addnav('Zurück zum Hauptmenu', 'coloredit.php'); addnav('Zurück zur Grotte', 'superuser.php'); addnav('Zurück zum Weltlichen', 'village.php'); break;
case 'new2': $look4overwrite = $_POST['look4overwrite']; if(!$session['seenalert']) { $sql = 'SELECT * FROM appoencode WHERE code = "'.$_POST['code'].'"'; $res = db_query($sql); $n = db_num_rows($res); } if(empty($_POST['code']) && !$session['seenalert']) { $out .= '`$Du musst das Feld "LoGD Code" ausfüllen!'; } elseif(!$look4overwrite && $n>0) { $out .= '`$Der Farbcode wird bereits verwendet! Wenn du ihn trotzdem so speichern will, dann aktiviere die Option "Abfrage auf Groß- und Kleinschreibung nicht beachten".'; } elseif($look4overwrite && $n==2) { $out .= yes_no_buttons('`c`&Achtung, der Farbcode existiert bereits zwei Mal!`n D.h. vermutlich, dass es ihn sowohl in groß als auch klein gibt.`n Trotzdem einfügen? (nicht empfohlen)`c', 'coloredit.php?op=new2', 'coloredit.php'); $session['seenalert'] = true; $session['mycolorvalues'] = $_POST; } else { if(isset($session['mycolorvalues'])) $array = $session['mycolorvalues']; else $array = $_POST; unset($session['mycolorvalues']); $color = new color(0, $array['code'], $array['color'], $array['tag'], $array['style'], $array['allowed'], $array['priority']); if($color->db_save_color(true)) { $colorinfo = $color->color_values(); $color2 = db_fetch_assoc(db_query('SELECT MAX(id) as maxid FROM appoencode'));
$sql = 'SELECT * FROM appoencode WHERE priority = '.$colorinfo['priority'].' AND id <> '.$color2['maxid']; $n = db_num_rows(db_query($sql)); var_dump($n); if($n) { $sql = 'SELECT id, priority FROM appoencode WHERE priority >= '.$colorinfo['priority'].' AND id <> '.$color2['maxid']; $result = db_query($sql); $n2 = db_num_rows($result); if($n2) { while($row = db_fetch_assoc($result)) { $sql = 'UPDATE appoencode SET priority = '.($row['priority'] + 1).' WHERE id = '.$row['id']; //print($sql); db_query($sql); } } } $out .= '`&Fabe erfolgreich hinzugefügt!'; } else { $out .= '`$Es ist ein Fehler aufgetreten... Kontaktiere den Techadmin ;)'; } unset($session['seenalert']); } addnav('Umkehren'); addnav('Zurück zum Hauptmenu', 'coloredit.php'); addnav('Zurück zur Grotte', 'superuser.php'); addnav('Zurück zum Weltlichen', 'village.php'); break; case 'del': switch($_GET['op2']) { case '': $out .= yes_no_buttons('`c`b`&Farbe wirklich löschen?`b`c', 'coloredit.php?op=del&op2=confirmed&colorid='.$_GET['colorid'], 'coloredit.php'); break; case 'confirmed': $color = new color($_GET['colorid']); $color->delete_color(); $colorinfo = $color->color_values(); $sql = 'SELECT id, priority FROM appoencode WHERE priority > '.$colorinfo['priority']; $res = db_query($sql); while($row = db_fetch_assoc($res)) { db_query('UPDATE appoencode SET priority = '.($row['priority'] - 1).' WHERE id = '.$row['id']); } redirect('coloredit.php'); break; } addnav('Umkehren'); addnav('Zurück zum Hauptmenu', 'coloredit.php'); addnav('Zurück zur Grotte', 'superuser.php'); addnav('Zurück zum Weltlichen', 'village.php'); break; case 'deltable': switch($_GET['op2']) { case '': $out = Yes_No_Buttons('`c`b`$!!!! `&Willst du wirklich die Datenbank von ALLEN Farben leeren? `$!!!!`b`c', 'coloredit.php?op=deltable&op2=confirmed', 'coloredit.php'); break; case 'confirmed': db_query('TRUNCATE TABLE appoencode'); redirect('coloredit.php'); break; } break; }
output($out, true); rawoutput($rawout); $session['user']['standort']='Admin-Grotte'; page_footer(); ?>
|