LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /library.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: /library.php

<?php
/*
*
* 09052006
*
* author: bibir (logd_bibir@email.de)
*      and Chaosmaker (webmaster@chaosonline.de)
*      for http://logd.chaosonline.de
*
* version: 1.2
*
*     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
*  (16.01.05) version 1.2: several minor bugfixes
*/

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

addnav('Dorfplatz','village.php');
addnav('Bibliothek');


$sql "SELECT count(bookid) AS anz FROM lib_books WHERE activated='1'";
$result db_query($sql) or die(db_error(LINK));
$books db_fetch_assoc($result);
page_header("Bibirs Bibliothek");
output("`c`b`9Bibirs Bibliothek des gesammelten Wissens in ".($books['anz']==1?'einem Band':$books['anz'].' Bänden')."`0`b`c`n");

switch(
$_GET['op']){
case 
"browse":
    
addnav("H?Zurück in die Halle","library.php");
    
addnav("Buch einreichen","library.php?op=offer");
    
output("`tDu gehst durch die Regalreihen und siehst, dass alle Bücher ordentlich nach Themen einsortiert sind.`n
    Folgende Themen stehen derzeit zur Auswahl:`n`n"
);
    
$sql "SELECT t.*, COUNT(b.bookid) as anz FROM lib_themes t
            LEFT JOIN lib_books b ON b.themeid=t.themeid AND b.activated='1'
            GROUP BY themeid
            ORDER BY listorder ASC"
;
    
$result db_query($sql) or die(db_error(LINK));
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999'><tr class='trhead'><td>Thema</td><td>Bücher</td></tr>",true);
    
$bgclass '';
    
addnav("Themen");
    while (
$row db_fetch_assoc($result)) {
        
$bgclass = ($bgclass=='trdark'?'trlight':'trdark');
        if (
$row['anz']>0) {
            
output("<tr class='$bgclass'><td><a href=\"library.php?op=theme&id=".$row['themeid']."\">",true);
            
output($row['theme']);
            
output("`0</a></td><td align='right'>".$row['anz']."</td></tr>",true);
        }
        else {
            
output("<tr class='$bgclass'><td>",true);
            
output($row['theme']);
            
output("`0</td><td>kein Buch</td></tr>",true);
        }
        
addnav("","library.php?op=theme&id=".$row['themeid']);
        
addnav($row['theme'],"library.php?op=theme&id=".$row['themeid']);
    }
    
output("</table>",true);
    break;

case 
"theme":
    
addnav("H?Zurück in die Halle","library.php");
    
//addnav("Andere Regale","library.php?op=browse");
    
addnav("Buch einreichen","library.php?op=offer");

    
addnav("Themen");
    
$sql "SELECT themeid, theme FROM lib_themes ORDER BY listorder ASC";
    
$result db_query($sql) or die(db_error(LINK));
    while (
$row db_fetch_assoc($result)) {
        if (
$row['themeid']!=$_GET['id']) {
            
addnav($row['theme'],"library.php?op=theme&id=".$row['themeid']);
         }
        else {
            
addnav($row['theme'],'');
            
$thistheme $row['theme'];
        }
    }

    
output("`c`b".$thistheme."`0`b`c");
    
output("`n`6Zu diesem Thema stehen dir folgende Bücher zur Verfügung:`n`n");

    
$sql "SELECT title, bookid, author FROM lib_books
            WHERE themeid="
.$_GET['id']." AND activated='1' ORDER BY listorder ASC";
    
$result db_query($sql) or die(db_error(LINK));
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999'><tr class='trhead'><td>Titel</td><td>Autor</td></tr>",true);
    if (
db_num_rows($result)==0) {
        
output("<tr class='trdark'><td colspan='2'>Es gibt leider bisher noch keine Bücher zu diesem Thema.</td></tr>",true);
    }
    else {
        
addnav('Bücher');
        
$bgclass '';
        while (
$row db_fetch_assoc($result)) {
            
$bgclass = ($bgclass=='trdark'?'trlight':'trdark');
            
output("<tr class='$bgclass'><td><a href=\"library.php?op=book&bookid=".$row['bookid']."\">",true);
            
output($row['title']);
            
output("`0</a></td><td>",true);
            
output($row['author']);
            
output("`0</td></tr>",true);
            
addnav("","library.php?op=book&bookid=".$row['bookid']);
            
addnav($row['title'],'library.php?op=book&bookid='.$row['bookid']);
        }
    }
    
output("</table>",true);
    break;

case 
"book":
    
addnav("H?Zurück in die Halle","library.php");
    
//addnav("Ein anderes Thema","library.php?op=browse");

    
$sql "SELECT t.theme, b.themeid, b.title, b.book, b.author FROM lib_books b
            LEFT JOIN lib_themes t USING(themeid)
            WHERE bookid="
.$_GET['bookid'];
    
$result db_query($sql) or die(db_error(LINK));
    
$row db_fetch_assoc($result);

    
//addnav("R?Zurück ans Regal","library.php?op=theme&id=".$row['themeid']);
    
addnav("Buch einreichen","library.php?op=offer");

    
addnav("Themen");
    
$sql "SELECT themeid, theme FROM lib_themes ORDER BY listorder ASC";
    
$result db_query($sql) or die(db_error(LINK));
    while (
$row2 db_fetch_assoc($result)) {
        
addnav($row2['theme'],"library.php?op=theme&id=".$row2['themeid']);
    }

    
addnav('Bücher');
    
$sql 'SELECT title, bookid FROM lib_books WHERE themeid='.$row['themeid'].' AND activated="1" ORDER BY listorder ASC';
    
$result db_query($sql) or die(db_error(LINK));
    while (
$row2 db_fetch_assoc($result)) {
        if (
$row2['bookid']!=$_GET['bookid']) addnav($row2['title'],'library.php?op=book&bookid='.$row2['bookid']);
        else 
addnav($row2['title'],'');
    }

    
//nichts editierbar
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999'><tr class='trdark'><td>Thema:</td><td>",true);
    
output($row['theme']);
    
output("`0</td></tr><tr class='trlight'><td>Titel:</td><td>",true);
    
output($row['title']);
    
output("`0</td></tr><tr class='trdark'><td>Autor:</td><td>",true);
    
output($row['author']);
    
output("`0</td></tr><tr class='trlight'><td colspan='2'>",true);
    
output(str_replace("\n",'`n',$row['book']));
    
output('</td></tr></table>',true);
    break;

case 
"offer":
    
addnav("H?Zurück in die Halle","library.php");
    if (
$_GET['subop']=="save" && !empty($_POST['title']) && !empty($_POST['book'])) {
        
addnav("Weiteres Buch schreiben","library.php?op=offer");
        
output("`tDein Buch wurde zum Druck eingereicht.`0");
        
// maximale sortiernummer holen
        
$sql 'SELECT MAX(listorder) AS maxorder FROM lib_books';
        
$result db_query($sql);
        
$row db_fetch_assoc($result);
        
$sql "INSERT INTO lib_books (themeid, acctid, author, title, book, listorder)
            VALUES ('
{$_POST['themeid']}', '{$session['user']['acctid']}', '{$session['user']['name']}', '{$_POST['title']}', '{$_POST['book']}', '{$row['maxorder']}')";
        
db_query($sql);
    
//Anfrage an die Mods, bei Schreiben eines Buches von Thibaud Roth <thibaud.roth@betriebsdirektor.de>
    
$body "".$session[user][name]." hat ein Buch eingereicht und wartet auf den Druck.";
        
$sql "INSERT INTO petitions (author,date,body,pageinfo,lastact) VALUES (".(int)$session[user][acctid].",now(),\"".$body."\",\"".addslashes(output_array($session,"Session:"))."\",NOW())";
        
db_query($sql);
    }
    else {
        if (
$_GET['subop']=='save') {
            
output('`c`$Wie soll ein Buch gedruckt werden, wenn nicht Titel und Inhalt existieren?`0`c`n`n');
            
$_POST['title'] = str_replace('`','``',$_POST['title']);
            
$_POST['book'] = str_replace('`','``',$_POST['book']);
        }
        else 
$_POST['title'] = $_POST['book'] = $_POST['themeid'] = '';
        
output("`tHier hast du die Möglichkeit, eigenes Wissen niederzuschreiben und anderen damit zur Verfügung zu stellen.`n`n
        Nun liegt es an dir, die Zeilen auf das Pergament zu bringen, die du dein Wissen nennst.`0"
);
    
output("`n`n`4Wichtig: Du kannst nur Bücher einreichen, deren Urheberrecht Du besitzt. Das heißt im Normalfall, dass Du nur Bücher einreichen kannst, die Du selbst geschrieben hast");
    
output("`n`n`&Hinweis: Es ist ratsam das Buch zunächst in einem externen Programm (Texteditor) zu schreiben und zu sichern, um es anschließend per &raquo;Copy&Paste&laquo; hier hineinzukopieren, da es sonst dazu kommen kann, dass bei der Fertigstellung des Buches die Session abgelaufen ist und das Buch unwiederbringlich verloren ist.",true);
        
output("<form action=\"library.php?op=offer&subop=save\" method='POST'>",true);
        
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999'><tr class='trdark'><td>Thema:</td><td><select name='themeid'>",true);
        
$sql2 "SELECT * FROM lib_themes ORDER BY listorder ASC";
        
$result2 db_query($sql2) or die(db_error(LINK));
        while (
$row2 db_fetch_assoc($result2)) {
            
output("<option value='".$row2['themeid']."' ".($row2['themeid']==$_POST['themeid']?" selected='selected'":"").">".preg_replace('/`./','',$row2['theme'])."</option>",true);
        }
        
output("</select></td></tr>",true);
        
output("<tr class='trlight'><td>Titel:</td><td><input class='input' type='text' name='title' value='{$_POST['title']}' maxlength='50' size='50'></td></tr>",true);
        
output("<tr class='trdark'><td colspan='2'>Mein Wissen über dieses Thema:</td></tr>",true);
        
output("<tr class='trdark'><td colspan='2'><textarea name='book' class='input' cols='60' rows='10'>{$_POST['book']}</textarea></td></tr>",true);
        
output("<tr class='trlight'><td colspan='2'><input type='submit' class='button' value='Einreichen'></td></tr></table></form>",true);
        
addnav("","library.php?op=offer&subop=save");
    }
    break;

default:
    
output('`c 
`VA`]m`v E`Xi`xngang zur Bibliothek hängt ein Plakat. Du l`Xi`ve`]s`Vt:`c`n`n'
);
    
output('`c`(D`Vi`]e `vB`Xi`xbliothek ist ein Ort des Wissens.`n
Dieses Wissen kann aber nur gehalten werden, wenn jemand es niedergeschrieben hat.
Dazu steht in dieser Bibliothek die Möglichkeit bereit, Texte zu verfassen und diese einzureichen.
Nach Genehmigung durch Regenten oder Bevollmächtigte wird das Buch gedruckt und in die Regale der Bücherei gestellt.
Von nun an hat jeder die Möglichkeit, einen Blick in dieses Buch zu werfen und sowohl interessante als auch nützliche Informationen zu bekommen.
Sollte das geschriebene Buch gedruckt werden, erhält der Autor ein Dankeschön in Form '
.getsetting("libdp","25").' Punkten in J.C. Petersens Jägerhütte.`c`n`n');
    
output("`c`xDu betrittst den großen Raum mit den unzähligen Regalen.
Hier sind gedämpfte Unterhaltungen zu hören und in den vielen bequemen Drachenleder-Sesseln sitzen eifrige Kämpfer, um zu lesen.
An ein paar Tischen kannst du hin und wieder auch sehr erfahrene Drachentöter finden, die ihr Wissen in Büchern niederschr`Xe`vi`]b`Ve`(n.`c"
);
    
output("`n`nEin paar Leute unterhalten sich leise:`n`0");
    
viewcommentary("library","Leise flüstern:",25);
    
addnav("Stöbern","library.php?op=browse");
    
addnav("Buch einreichen","library.php?op=offer");
}

page_footer();
?>