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:
(Die Hälfte der Scripte ist an den Server angepasst und ich hab drin rumgebastelt, also keine Klagen, wenns bei euch net funzt ^^

(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";
addcommentary();
checkday();
if(!isset(
$_GET['op'])) $_GET['op'] = "";

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

addnav("Zum Marktplatz","village.php");
addnav("Zeitungsfunktionen");
page_header("Redaktion");
output("`c`b`9Redaktion des Kasbergischen Boten`0`b`c`n`n");


switch(
$_GET['op']){
case 
"theme":
    
addnav("Zur Rubrikenü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 Rubrik: ".$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 Rubrikenü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 Rubriken:`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 Rubriken.");
    }
    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 Rubrik vorhanden, die Rubrik 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 Rubrik zuordnen`n
        <input type='radio' name='del' value='no_theme'>Keiner Rubrik 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 Rubrik gelöscht.");
    }
    elseif (
$_POST['del']=="other_theme") {
        
output("Folgende Artikel einer anderen Rubrik 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 Rubrik 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='Rubrik 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("Rubriks-ID der Artikel entfernt und Rubrik 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 Rubrik gelöscht.");
break;

case 
"new_books":
    
addnav("Zur Zeitungsübersicht","redaktion.php");
    if (
$_GET['subop']=="activate") {
        
$dt1 date("Y-m-d");
        
output("Dieser Artikel ist jetzt für alle im Kasbergischen Boten einsehbar.");
        
$sql "UPDATE zeitung_books SET activated='1' WHERE bookid=".$_GET['id'];
        
$result db_query($sql);
        
$sql "UPDATE zeitung_books SET bookdate='$dt1' 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!','`0Das Der Artikel mit dem Titel "'.$row['title'].'`0", das du eingereicht hattest, wurde in den Kasbergischen Boten aufgenommen. Du bekommst dafür '.$dpts4book.' Donationpoints.');
    }
    
output("Das sind die Artikel, die eingereicht aber noch nicht freigegeben wurden:`n`n");
    
$sql "SELECT b.bookid, b.title, t.theme, b.author, b.bookdate
        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><td>Datum</td></tr>",true);
    
$bgclass '';
    if (
db_num_rows($result)==0) {
        
output("<tr class='trdark'><td colspan=6>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><td>",true);
        
output($row['bookdate']);
        
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 Kasbergischen Boten 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 Kasbergischen Boten 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'>
    `nRubrik: <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 Rubrik","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 Rubrik 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 Rubriken`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 Rubriken`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);
    
output("`n`n`%`@Redaktionssitzung:`n");
    
viewcommentary("redak","`nHinzufügen",$session['user']['comcount']);
    
addnav("Neue Rubrik erstellen","redaktion.php?op=new_theme");
    
addnav("Neue Artikel ansehen","redaktion.php?op=new_books");
    
addnav("Artikel ohne Rubrik","redaktion.php?op=no_theme_books");
}


page_footer();
?>