array( "name" => "Sonstiges", "shortname" => "Sonst." ), "2" => array( "name" => "Neue Features", "shortname" => "NEU" ), "3" => array( "name" => "Fehler (Bugs)", "shortname" => "BUG" ), "4" => array( "name" => "Rechtschreibfehler", "shortname" => "Rechtschr." ), "5" => array( "name" => "Navigationsänderungen", "shortname" => "Nav." ), "6" => array( "name" => "Änderungen", "shortname" => "Änd." ) ); //Popup-Header definieren popup_header(getsetting('townname','Atrahor').': Messages of the Codingteam (MoTC)',true); //In die $edit schreiben, ob man mehr sehen/editieren darf if($access_control->su_check(access_control::SU_RIGHT_MOTD)){ $edit = true; } else { $edit = false; } //Links zur MoTD und MoTC (beides Index) $str_output = '
[MoTD-Index | MoTC-Index]

'; //Links zu den neuen Einträgen der MoTD/MoTC if($edit) $str_output .= '
[MoTD / Umfrage erstellen | MoTC erstellen]

'; switch ($_GET['op']){ //Standard case "": //Alles, oder nichts? switch($_GET['check']){ case "all": //Die ganzen Typen zählen... $max = count($types); //...und dann in die POST Variable true setzen for($i=1;$i<=$max;$i++){ $_POST['view'][$i] = true; } break; case "nix": //Dann besser keine POST-View-Variable mehr... unset($_POST['view']); //...aber dafür das Auswahlfenster aufklappen $session['user']['plu_mi']['motc'] = true; saveuser(); break; } //Auswahlknöpfe erzeugen $str_output .= plu_mi('motc',0,false).' `@Suchkriterien definieren:`0 [Alle auswählen | Keine Auswählen]
'; foreach($types AS $key => $val){ $str_output .= ' '; } if(!is_null_or_empty($_POST['text'])) { $str_search = str_replace('"','',stripslashes($_POST['text'])); $str_search = db_real_escape_string($str_search); } else { $str_search = false; } //Nur eingeloggte dürfen suchen if($Char instanceof CCharacter ) { $str_output .= ' '; } $str_output .= '
'.$val['name'].'
Stichwort eingeben:

'; //eine WHERE-Bedingung definieren, was denn nun angezeigt werden soll...! $where = "WHERE '0'='1'"; //eine Fake ;) if(isset($_POST['view'])){ $where .= ' OR ( "0"="1"'; foreach($_POST['view'] AS $key => $val){ if($val){ //Alle Typen die selected sind... $where .= " OR `m`.`type` = '".$key."'"; //...aber nicht die evtl. nicht public sind! } } $where .= ')'; } //Textkörpersuche $where .= (!is_null_or_empty($str_search))?' AND `m`.`body` LIKE "%'.$str_search.'%" OR `m`.`headline` LIKE "%'.$str_search.'%"':''; //Superuser sehen auch private einträge if(!$edit) { $where .= " AND `m`.`public` = '1' "; } //Alle Einträge zählen, die man sehen darf $sql = " SELECT COUNT(*) AS `anzahl` FROM `motd_coding` `m` ".$where." "; $result = db_query($sql); $nr = db_fetch_assoc($result); if(!$nr['anzahl']){ //wenn noch nichts eingetragen ist... $str_output .= "Nichts gefunden..."; } else{ //Seiten - Knopf - START $pagecount = ceil($nr['anzahl']/$per_page); $page = ($_POST['page'])?$_POST['page']:1; $from = ($page-1) * $per_page; $select = '
-— MoTC-Archiv: -—
'; //Seiten - Knopf - ENDE //Einträge aus der DB holen $sql = " SELECT `m`.*, `a`.`login`, UNIX_TIMESTAMP(`m`.`time`) AS `time` FROM `motd_coding` `m` LEFT JOIN `accounts` `a` ON `a`.`acctid` = `m`.`acctid` ".$where." ORDER BY `m`.`time` DESC LIMIT ".$from.",".$per_page." "; $result = db_query($sql); //Einträge schreiben while($row = db_fetch_assoc($result)){ $str_output .= '`0
'; //wenn acctid = 0, dann steht da Team als Autor + Autor schreiben if(!$row['acctid']) $row['login'] = "Coding-Team"; $str_output .= "`&".$row['login'].": `t"; //Überschrift schreiben $str_output .= '`b'.$row['headline'].'`b `0`@'.$types[$row['type']]['shortname']; // Vermerken, falls nicht öffentlich (talion) if(!$row['public']) { $str_output .= '`4 - Geheim`0'; } //Edit- & Delete - Knöpfe if($edit) $str_output .= ' `7[Edit|Del]'; //Zeit schreiben $str_output .= "`0
`#`i[ ".strftime("%A, %e. %B %Y, %H:%M",$row['time'])." ]`i
"; //Farbe nochmals setzen $str_output .= "`t"; //Text ausgeben + Trennlinie schreiben $str_output .= nl2br( stripslashes($row['body']) ); // Bei Public-Einträgen: Gesonderte Team-Info if($access_control->su_lvl_check(1) && $row['public'] && !empty($row['body_team'])) { $str_output .= '`n`i(Zusatzinfo fürs Team: '.nl2br( stripslashes($row['body_team']) ).')`i'; } $str_output .= "`0
\n"; } //Zum Schluss noch den Seiten-Knopf dazu schreiben... $str_output .= $select; } break; //Falls etwas neues eingetragen werden soll case "neu": //Hackerschutz - START if(!$edit){ if($session['user']['loggedin']){ killcheater(); } exit; } //Hackerschutz - ENDE //Formular aufsetzen $str_output .= '
Name:
Überschrift:
Text:
Geheime Zusatzinfos fürs Team, falls öffentlicher Eintrag:
Öffentlich?
Typ:
'; break; //Wenn etwas editiert werden soll case "edit": //Hackerschutz - START if(!$edit){ if($session['user']['loggedin']){ killcheater(); } exit; } //Hackerschutz - ENDE //Vollständige Daten abholen $sql = " SELECT `motd_coding`.*, `accounts`.`login` FROM `motd_coding` LEFT JOIN `accounts` ON `accounts`.`acctid` = `motd_coding`.`acctid` WHERE `motd_coding`.`id` = '".$_GET['id']."' "; $result = db_query($sql); $row = db_fetch_assoc($result); //Formular aufsetzen $str_output .= '
Editierung des Eintrags #'.$row['id'].'
Name:
Zeit: '.$row['time'].' - Aktualisieren?
Überschrift:
Text:
Geheime Zusatzinfos fürs Team, falls öffentlicher Eintrag:
Öffentlich?
Type:
'; break; //Wenn etwas gespeichert werden soll case "save": //Hackschutz - START if(!$edit){ if($session['user']['loggedin']){ killcheater(); } exit; } //Hackschutz - ENDE //Was genau soll gespeichert werden? switch($_GET['act']){ //Etwas neues! case "new": //Überschrift & Text vor Query-Manipulationen absichern $_POST['headline'] = db_real_escape_string($_POST['headline']); $_POST['body'] = db_real_escape_string($_POST['body']); $_POST['body_team'] = db_real_escape_string($_POST['body_team']); //public-Variable korrigieren ;) $_POST['public'] == "1" ? $_POST['public'] = 1 : $_POST['public'] = 0; //DB-Query verfassen $sql = " INSERT INTO `motd_coding` SET `time` = NOW(), `type` = '".$_POST['type']."', `headline` = '".$_POST['headline']."', `body` = '".$_POST['body']."', `body_team` = '".$_POST['body_team']."', `acctid` = '".$_POST['acctid']."', `public` = '".$_POST['public']."' "; break; //Etwas Editiertes case "edit": //Überschrift und Text vor Query-Manipulationen absichern $_POST['headline'] = db_real_escape_string($_POST['headline']); $_POST['body'] = db_real_escape_string($_POST['body']); $_POST['body_team'] = db_real_escape_string($_POST['body_team']); //public-, time- und acctid-Variable korrigieren, bzw. unsetten ;) $_POST['public'] == "1" ? $_POST['public'] = 1 : $_POST['public'] = 0; //if($_POST['time'] != "on")unset($_POST['time']); if($_POST['acctid'] == (-1))unset($_POST['acctid']); //DB-Query verfassen $sql = " UPDATE `motd_coding` SET ".($_POST['time'] ?"`time` = NOW() ,":"")." `type` = '".$_POST['type']."', `headline` = '".$_POST['headline']."', `body` = '".$_POST['body']."', `body_team` = '".$_POST['body_team']."', ".(isset($_POST['acctid'])?"`acctid` = ".$_POST['acctid']." ,":"")." `public` = '".$_POST['public']."' WHERE `id` = '".$_GET['id']."' "; break; //Etwas löschen, bitte case "del": //DB-Query verfassen $sql = " DELETE FROM `motd_coding` WHERE `id` = '".$_GET['id']."' "; break; //Falls doch was schief gelaufen ist... default: die("Tjoar, hier stimmt wohl was nicht ;)"); }//ENDE switch ($_GET['act']) //DB-Query ausführen db_query($sql); //Weiterleiten, wenn alles erledigt ist... header('Location:motd-coding.php?check=all'); exit; break; }//ENDE switch($_GET['op']) //gesammelte Zeichenkette ausgeben output($str_output,true); //und zum krönenden Abschluss noch den Pagefooter... fertisch <:P popup_footer(false); ?>