LoGD Standardrelease steht hier zum Download zur Verfügung!
<?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&themeid='.$_GET['themeid'].'&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'];
$result= db_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();
?>