LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /redaktion.php

Hier klicken für den Source, ODER
Weitere Dateien, von denen du den Quelltext sehen kannst:
(Das Lesen des Source, um sich spielerische Vorteile zu verschaffen, ist nicht erlaubt. Solltest du Schwachstellen oder Fehler entdecken, bist du als Spieler verpflichtet, diese zu melden.)

Source von: /redaktion.php

<?php
/* author: bibir (logd_bibir@email.de)
*      and Chaosmaker (webmaster@chaosonline.de)
*      for http://logd.chaosonline.de
*
* version: 1.4
*
*     a library with text from users to help other
*        a bit like faq
*
* details:
*  (15.11.04) start of idea
*  (15.01.05) project finished
*    (17.01.05) several important bugfixes
*  (18.01.05) small bugfixes
*
* Umschreibung der Texte für die Zeitung von Redrogar und Nithaque
* http://www.redrogar.at/logd/index.php
*
*/
/*
CREATE TABLE zeitung_themes (
  themeid int(10) unsigned NOT NULL auto_increment,
  theme varchar(30) default NULL,
  listorder INT(10) UNSIGNED DEFAULT '1' NOT NULL,
  PRIMARY KEY (themeid)
) TYPE=MyISAM;


CREATE TABLE zeitung_books (
  bookid int(10) unsigned NOT NULL auto_increment,
  themeid int(10) default NULL,
  acctid int(10) unsigned NOT NULL default '0',
  author varchar(60) NOT NULL,
  title varchar(50) default NULL,
  book text default NULL,
  activated enum('0','1') NOT NULL default '0',
  listorder INT(10) UNSIGNED DEFAULT '1' NOT NULL,
  PRIMARY KEY (bookid),
  KEY themeid (themeid)
) TYPE=MyISAM;

*/

require_once "common.php";
isnewday(1);
if(!isset(
$_GET['op'])) $_GET['op'] = "";

// settings
$dpts4book getsetting("libdp","0");

if (
$session[user][superuser]>=3){
  
addnav("`4`bIns Himmelreich`b`0","superuser.php");
}
if (
$session[user][superuser]>=1){
  
addnav("`7`bDie Bibliothekshallen`b`0","superuser5.php");
}
addnav("Zum Brunnenplatz","village.php");
addnav("Zeitungsfunktionen");
page_header("Zeitungs-Editor");
output("`c`b`9Editor für Alresias Tagesblatt`0`b`c`n`n");


switch(
$_GET['op']){
case 
"theme":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    
$sql "SELECT theme FROM zeitung_themes WHERE themeid=".$_GET['themeid'];
    
$result db_query($sql) or die(db_error(LINK));
    
$row db_fetch_assoc($result);

    if (!empty(
$_GET['saveorder'])) {
        
asort($_POST['order']);
        
$keys array_keys($_POST['order']);
        
$i 0;
        foreach (
$keys AS $key) {
            
$i++;
            
$sql 'UPDATE zeitung_books SET listorder="'.$i.'" WHERE bookid="'.$key.'"';
            
db_query($sql);
        }
    }
    
output("Alle Artikel der Zeitung: ".$row['theme']."`0`n`n");
    
$sql "SELECT bookid, title, author, listorder FROM zeitung_books
            WHERE themeid="
.$_GET['themeid']." ORDER BY listorder ASC";
    
$result db_query($sql) or die(db_error(LINK));
    
output('<form action="redaktion.php?op=theme&amp;themeid='.$_GET['themeid'].'&amp;saveorder=1" method="post">',true);
    
addnav('','redaktion.php?op=theme&themeid='.$_GET['themeid'].'&saveorder=1');
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'><tr class='trhead'><td>Titel</td><td>Autor</td><td>Sortierung</td></tr>",true);
    if (
db_num_rows($result)==0) {
        
output("<tr class='trdark'><td colspan=3>Es sind keine Artikel vorhanden</td></tr>",true);
    }
    else {
        
$bgclass '';
        while (
$row db_fetch_assoc($result)) {
            
$bgclass = ($bgclass=='trdark'?'trlight':'trdark');
            
output("<tr class='$bgclass'><td><a href=\"redaktion.php?op=edit_post&id=".$row['bookid']."\">",true);
            
output($row['title']);
            
output("`0</a></td><td>",true);
            
output($row['author']);
            
output("`0</a></td><td>",true);
            
$order_options '';
            for (
$i=1$i<=db_num_rows($result); $i++) $order_options .= '<option value="'.$i.'"'.($i==$row['listorder']?' selected="selected"':'').'>'.$i.'</option>';
            
output('<select name="order['.$row['bookid'].']">'.$order_options.'</select>',true);
            
output("</td></tr>",true);
            
addnav("","redaktion.php?op=edit_post&id=".$row['bookid']);
        }
        
output('<tr><td colspan="3" style="text-align:right"><input type="submit" class="button" value="Sortierung speichern!" /></td></tr>',true);
    }
    
output("</table>",true);
    
output('</form>',true);
    break;

case 
"new_theme":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    if (
$_GET['subop']=="save") {
        
$sql 'SELECT MAX(listorder) AS maxtheme FROM zeitung_themes';
        
$result db_query($sql);
        
$row db_fetch_assoc($result);
        
$row['maxtheme']++;
        
$sql "INSERT INTO zeitung_themes (theme,listorder) VALUES ('".$_POST['theme']."', {$row['maxtheme']})";
        
$result db_query($sql) or die(db_error(LINK));
        
output("`\$Neues Thema wurde angelegt.`0`n`n");
    }
    
output("<form action=\"redaktion.php?op=new_theme&subop=save\" method='POST'>",true);
    
output("<table><tr><td>Thema </td><td><input name='theme' maxlength='30'></td></tr>",true);
    
output("</table><input type='submit' class='button' value='Speichern'></form>",true);
    
addnav("","redaktion.php?op=new_theme&subop=save");
    
output("`n");

    
output("`bVorhandene Zeitungen:`b`n`n");
    
$sql "SELECT theme FROM zeitung_themes ORDER BY themeid ASC";
    
$result db_query($sql) or die(db_error(LINK));
    if(
db_num_rows($result)==0) {
        
output("Es gibt keine Zeitungen.");
    }
    else while(
$row db_fetch_assoc($result)) {
        
output($row['theme']."`0`n");
    }
    break;

case 
"edit_theme":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    if (
$_GET['subop']=="save") {
        
$_POST['theme'] = addslashes(closetags(stripslashes($_POST['theme']),'`i`b`c`H'));
        
$sql "UPDATE zeitung_themes SET theme='".$_POST['theme']."' WHERE themeid=".$_GET['themeid'];
        
$result db_query($sql) or die(db_error(LINK));
        
//output("Thema wurde geändert.`n`n");
        
redirect("redaktion.php?op=browse");
    }
    else {
        
output("Hier kann die Zeitung geändert werden.");
        
$sql "SELECT theme FROM zeitung_themes WHERE themeid=".$_GET['themeid'];
        
$result db_query($sql) or die(db_error(LINK));
        
$row db_fetch_assoc($result);
        
output("<form action=\"redaktion.php?op=edit_theme&subop=save&themeid=".$_GET['themeid']."\" method='POST'>
            Thema: <input name='theme' value='"
.htmlentities(str_replace("`","``",$row['theme']),ENT_QUOTES)."' maxlength='30' size='80'>
            `n<input type='submit' class='button' value='Speichern'></form>"
,true);
        
addnav("","redaktion.php?op=edit_theme&subop=save&themeid=".$_GET['themeid']);
    }
    break;

case 
"del_theme":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    
//buecher, die zu diesem thema gehoeren:
    //a) mitloeschen
    //b) anderem Thema zuordnen
    //c) auf themeid 0 setzen
    
$sql "SELECT COUNT(bookid) AS anz FROM zeitung_books WHERE themeid=".$_GET['themeid'];
    
$result db_query($sql) or die(db_error(LINK));
    
$row db_fetch_assoc($result);
    if (
$row['anz']==0) {
        
output("Es sind keine Artikel zu dieser Zeitung vorhanden, die Zeitung wird gelöscht.");
        
$sql "DELETE FROM zeitung_themes WHERE themeid=".$_GET['themeid'];
        
db_query($sql) or die(db_error(LINK));
    }
    else {
        
output("Es sind ".$row['anz']." Artikel vorhanden, was soll mit ihnen passieren?`n`n");
        
output("<form action=\"redaktion.php?op=del_theme2&themeid=".$_GET['themeid']."\" method='POST'>
        <input type='radio' name='del' value='del_choice'>Ebenfalls löschen`n
        <input type='radio' name='del' value='other_theme'>Einer anderen Zeitung zuordnen`n
        <input type='radio' name='del' value='no_theme'>Keiner Zeitung zuordnen`n
        <input type='submit' class='button' value='Löschen'></form>"
,true);
        
addnav("","redaktion.php?op=del_theme2&themeid=".$_GET['themeid']);
    }
    break;

case 
"del_theme2":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    if (
$_POST['del']=="del_choice") {
        
$sql "DELETE FROM zeitung_books WHERE themeid=".$_GET['themeid'];
        
db_query($sql) or die(db_error(LINK));
        
$sql "DELETE FROM zeitung_themes WHERE themeid=".$_GET['themeid'];
        
db_query($sql) or die(db_error(LINK));
        
output("Artikel und Zeitung gelöscht.");
    }
    elseif (
$_POST['del']=="other_theme") {
        
output("Folgende Artikel einer anderen Zeitung zuordnen:`n");
        
$sql "SELECT title FROM zeitung_books WHERE themeid=".$_GET['themeid'];
        
$resultdb_query($sql) or die(db_error(LINK));
        while(
$row db_fetch_assoc($result)) {
            
output($row['title']."`0`n");
        }
        
output("`nIn welcher Zeitung sollen die Artikel nun stehen?");
        
$sql "SELECT * FROM zeitung_themes WHERE themeid!=".$_GET['themeid'];
        
$result db_query($sql) or die(db_error(LINK));
        
output("<form action=\"redaktion.php?op=del_theme3&old_themeid=".$_GET['themeid']."\" method='POST'>
        <select name='new_themeid'>"
,true);
        while(
$row db_fetch_assoc($result)) {
            
output("<option value='".$row['themeid']."'>",true);
            
output(preg_replace('/`./','',$row['theme']));
            
output("</option>",true);
        }
        
output("</select><input type='submit' class='button' value='Zeitung zuordnen'></form>",true);
        
addnav("","redaktion.php?op=del_theme3&old_themeid=".$_GET['themeid']);
    }
    else {
        
$sql "UPDATE zeitung_books SET themeid='0' WHERE themeid=".$_GET['themeid'];
        
db_query($sql) or die(db_error(LINK));
        
$sql "DELETE FROM zeitung_themes WHERE themeid=".$_GET['themeid'];
        
db_query($sql) or die(db_error(LINK));
        
output("Zeitungs-ID der Artikel entfernt und Zeitung gelöscht.");
    }
    break;

case 
"del_theme3":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    
$sql "UPDATE zeitung_books SET themeid='".$_POST['new_themeid']."' WHERE themeid=".$_GET['old_themeid'] ;
    
db_query($sql) or die(db_error(LINK));
    
$sql "DELETE FROM zeitung_themes WHERE themeid=".$_GET['old_themeid'];
    
db_query($sql) or die(db_error(LINK));
    
output("Artikel neu zugeordnet und die Zeitung gelöscht.");
break;

case 
"new_books":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    if (
$_GET['subop']=="activate") {
        
output("Dieser Artikel ist jetzt für alle im Alresias Tagesblatt einsehbar.");
        
$sql "UPDATE zeitung_books SET activated='1' WHERE bookid=".$_GET['id'];
        
$result db_query($sql);
        
$sql 'SELECT acctid, title FROM zeitung_books WHERE bookid='.$_GET['id'];
        
$result db_query($sql);
        
$row db_fetch_assoc($result);
        
//if ($row['acctid']==$session['user']['acctid']) $session['user']['donation'] += $dpts4book;
        //else {
        //    $sql = 'UPDATE accounts SET donation=donation+'.$dpts4book.' WHERE acctid='.$row['acctid'];
        //    db_query($sql);
        //}
        //debuglog("gave $dpts4book donationpoints for a book to ",$row['acctid']);
        
systemmail($row['acctid'],'Dein Artikel wurde angenommen!','`0Der Artikel mit dem Titel "'.$row['title'].'`0", den du eingereicht hattest, wurde in Alresias Tagesblatt aufgenommen.');
    }
    
output("Das sind die Artikel, die eingereicht aber noch nicht freigegeben wurden:`n`n");
    
$sql "SELECT b.bookid, b.title, t.theme, b.author
        FROM zeitung_books b
        LEFT JOIN zeitung_themes t USING(themeid)
        WHERE b.activated='0'"
;
    
$result db_query($sql) or die(db_error(LINK));
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'><tr class='trhead'><td>Option</td><td>ID</td><td>Thema</td><td>Titel</td><td>Autor</td></tr>",true);
    
$bgclass '';
    if (
db_num_rows($result)==0) {
        
output("<tr class='trdark'><td colspan=5>Es gibt keine Artikel, die aktiviert werden müssten.</td></tr>",true);
    }
    else while (
$row db_fetch_assoc($result)) {
        
$bgclass = ($bgclass=='trdark'?'trlight':'trdark');
        
output("<tr class='$bgclass'><td><a href=\"redaktion.php?op=new_books&subop=activate&id=".$row['bookid']."\">Aktivieren</a>|
        <a href=\"redaktion.php?op=del_post&id="
.$row['bookid']."\">Löschen</a></td>",true);
        
output("<td>".$row['bookid']."</td><td>",true);
        
output($row['theme']);
        
output("`0</td><td><a href=\"redaktion.php?op=edit_post&id=".$row['bookid']."\">",true);
        
output($row['title']);
        
output("`0</a></td><td>",true);
        
output($row['author']);
        
output("`0</td></tr>",true);
        
addnav("","redaktion.php?op=new_books&subop=activate&id=".$row['bookid']);    //activate
        
addnav("","redaktion.php?op=del_post&id=".$row['bookid']);    //delete
        
addnav("","redaktion.php?op=edit_post&id=".$row['bookid']);    //view
    
}
break;

case 
"del_post":
    
output("Dieser Artikel ist für immer verschwunden - und das ist auch gut so.");
    
$sql 'SELECT acctid, title, activated FROM zeitung_books WHERE bookid='.$_GET['id'];
    
$result db_query($sql);
    
$row db_fetch_assoc($result);
    if (
$row['activated']==1) {
        
systemmail($row['acctid'],'Dein Artikel wurde verbrannt!','`0Der Artikel mit dem Titel "'.$row['title'].'`0", das im Alresias Tagesblatt stand, wurde im Kamin verbrannt.');
    }
    else {
        
systemmail($row['acctid'],'Dein Artikel wurde abgelehnt!','`0Der Artikel mit dem Titel "'.$row['title'].'`0", das du eingereicht hattest, wurde nicht in den Alresias Tagesblatt aufgenommen.');
    }
    
$sql "DELETE FROM zeitung_books WHERE bookid=".$_GET['id'];
    
db_query($sql);
    
addnav("Weitere neue Artikel","redaktion.php?op=new_books");
    
addnav("Zur Zeitungsübersicht","redaktion.php");
break;

case 
"edit_post":
    if (
$_GET['subop']=="button") {
        if (isset(
$_POST['save'])) {
            
output("Artikel bearbeitet.");
            
$sql="UPDATE zeitung_books set themeid='".$_POST['themeid']."',
                                    title='"
.$_POST['title']."',
                                    book='"
.$_POST['book']."'
                  WHERE bookid="
.$_GET['id'];
            
db_query($sql);
        }
        elseif (isset(
$_POST['activate'])) {
            
redirect("redaktion.php?op=new_books&subop=activate&id=".$_GET['id']);
        }
        elseif (isset(
$_POST['del'])) {
            
redirect("redaktion.php?op=del_post&id=".$_GET['id']);
        }
    }

    
$sql "SELECT themeid, title, book, activated, author FROM zeitung_books
            WHERE bookid="
.$_GET['id'];
    
$result db_query($sql) or die(db_error(LINK));
    
$row db_fetch_assoc($result);

    
output("<form action=\"redaktion.php?op=edit_post&subop=button&id=".$_GET['id']."\" method='POST'>
    `nZeitung: <select name='themeid'>"
,true);
    
$sql2 "SELECT * FROM zeitung_themes ORDER BY themeid ASC";
    
$result2 db_query($sql2) or die(db_error(LINK));
    while (
$row2 db_fetch_assoc($result2)) {
        
output("<option value='".$row2['themeid']."' ".($row2['themeid']==$row['themeid']?" selected":"").">",true);
        
output($row2['theme']);
        
output("`0</option>",true);
    }
    
output("</select>`nTitel: <input type='text' name='title' value='",true);
    
output(stripslashes(htmlentities(str_replace('`','``',$row['title']),ENT_QUOTES)),true);
    
output("' size='50' maxlength='50'>`n",true);
    
output("Autor: ".$row['author']."`0 hat in dem Artikel geschrieben:`n");
    
output("<textarea name='book' class='input' cols='60' rows='10'>".stripslashes(htmlentities(str_replace('`','``',$row['book']),ENT_QUOTES))."</textarea>`n",true);
    
output("<input type='submit' class='button' name='save' value='Speichern'>",true);
    if (
$row['activated']=='0') {
        
output("<input type='submit' class='button' name='activate' value='Aktivieren'>",true);
        
addnav("Aktivieren","redaktion.php?op=new_books&subop=activate&id=".$_GET['id']);
    }
    
output("<input type='submit' class='button' name='del' value='Löschen'></form>",true);
    
addnav("","redaktion.php?op=edit_post&subop=button&id=".$_GET['id']);

    
output("Das Buch:`n`n".str_replace("\n",'`n',$row['book']).'`0');

    
addnav("Zu neuen Artikeln","redaktion.php?op=new_books");
    
addnav("Zu Artikeln ohne Zeitung","redaktion.php?op=no_theme_books");
    
addnav("Zur Zeitungsübersicht","redaktion.php");
break;

case 
"no_theme_books":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    
$sql "SELECT bookid, title, author FROM zeitung_books
            WHERE themeid='0'"
;
    
$result db_query($sql) or die(db_error(LINK));
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'><tr class='trhead'><td>Option</td><td>ID</td><td>Titel</td><td>Autor</td></tr>",true);
    
$bgclass '';
    if (
db_num_rows($result)==0) {
        
output("<tr class='trdark'><td colspan=4>Es gibt keine Artikel, die einer Zeitung zugeordnet werden müssten.</td></tr>",true);
    }
    else while(
$row db_fetch_assoc($result)) {
        
$bgclass = ($bgclass=='trdark'?'trlight':'trdark');
        
output("<tr class='$bgclass'><td><a href=\"redaktion.php?op=del_post&id=".$row['bookid']."\">Löschen</a></td>",true);
        
output("<td>".$row['bookid']."</td><td><a href=\"redaktion.php?op=edit_post&id=".$row['bookid']."\">",true);
        
output($row['title']);
        
output("`0</a></td><td>",true);
        
output($row['author']);
        
output("`0</td></tr>",true);
        
addnav("","redaktion.php?op=del_post&id=".$row['bookid']);    //delete
        
addnav("","redaktion.php?op=edit_post&id=".$row['bookid']);    //ansehen
    
}
break;


default:
    if (!empty(
$_GET['saveorder'])) {
        
asort($_POST['order']);
        
$keys array_keys($_POST['order']);
        
$i 0;
        foreach (
$keys AS $key) {
            
$i++;
            
$sql 'UPDATE zeitung_themes SET listorder="'.$i.'" WHERE themeid="'.$key.'"';
            
db_query($sql);
        }
    }

    
output("Übersicht der Zeitungen`n`n");
    
output('<form action="redaktion.php?saveorder=1" method="post">',true);
    
addnav('','redaktion.php?saveorder=1');
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'><tr class='trhead'><td>Option</td><td>ID</td><td>Thema</td><td>Anzahl Artikel</td><td>Sortierung</td></tr>",true);
    
$sql "SELECT t.*, COUNT(b.bookid) AS anz FROM zeitung_themes t
            LEFT JOIN zeitung_books b USING(themeid)
            GROUP BY themeid
            ORDER BY listorder ASC"
;
    
$result db_query($sql) or die(db_error(LINK));
    if (
db_num_rows($result)==0) {
        
output("<tr class='trdark'><td colspan=5 align='center'>`&`iEs gibt keine Zeitungen`i`0</td></tr>",true);
    }
    else {
        
$bgclass '';
        while (
$row db_fetch_assoc($result)) {
            
$bgclass = ($bgclass=='trdark'?'trlight':'trdark');
            
output("<tr class='$bgclass'><td><a href=\"redaktion.php?op=edit_theme&themeid=".$row['themeid']."\">Edit</a> |
            <a href=\"redaktion.php?op=del_theme&themeid="
.$row['themeid']."\">Löschen</a></td><td>".$row['themeid']."</td><td>
            <a href=\"redaktion.php?op=theme&themeid="
.$row['themeid']."\">",true);
            
output($row['theme']);
            
output("`0</a></td><td>".$row['anz']."</td><td>",true);
            
$order_options '';
        for (
$i=1$i<=db_num_rows($result); $i++) $order_options .= '<option value="'.$i.'"'.($i==$row['listorder']?' selected="selected"':'').'>'.$i.'</option>';
            
output('<select name="order['.$row['themeid'].']">'.$order_options.'</select>',true);
            
output('</td></tr>',true);

            
addnav("","redaktion.php?op=edit_theme&themeid=".$row['themeid']);
            
addnav("","redaktion.php?op=del_theme&themeid=".$row['themeid']);
            
addnav("","redaktion.php?op=theme&themeid=".$row['themeid']);
        }
        
output('<tr><td colspan="5" style="text-align:right"><input type="submit" class="button" value="Sortierung speichern!" /></td></tr>',true);
    }
    
output("</table>",true);
    
output('</form>',true);
    
addnav("Neue Zeitung erstellen","redaktion.php?op=new_theme");
    
addnav("Neue Artikel ansehen","redaktion.php?op=new_books");
    
addnav("Artikel ohne Zeitung","redaktion.php?op=no_theme_books");
}


page_footer();
?>