LoGD Standardrelease steht hier zum Download zur Verfügung!

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

<?php
/*
* Author: Chaosmaker <webmaster@chaosonline.de>
* Server: http://logd.chaosonline.de
*
* Todolist for superuser grotto

CREATE TABLE IF NOT EXISTS `todolist` (
  `taskid` int(10) unsigned NOT NULL auto_increment,
  `acctid` int(10) unsigned NOT NULL default '0',
  `postdate` datetime NOT NULL default '0000-00-00 00:00:00',
  `title` varchar(50) NOT NULL default '',
  `task` text NOT NULL,
  `importance` enum('unwichtig','nicht dringend','normal','dringend','sehr dringend') NOT NULL default 'normal',
  `implementation` int(10) unsigned NOT NULL default '0',
  `finished` datetime NOT NULL default '0000-00-00 00:00:00',
  `status` enum('offen','angenommen','abgelehnt','umgesetzt') NOT NULL default 'offen',
  `userinfo` enum('geheim','publik') NOT NULL default 'geheim',
  PRIMARY KEY  (`taskid`),
  KEY `status` (`status`),
  KEY `finished` (`finished`)
) TYPE=MyISAM COMMENT='Todoliste';

*/
require_once "common.php";
//isnewday(2);

page_header('Userwünsche- & vorschläge');

addnav("Zurück","list.php");
if(
$session[user][superuser]>=1)addnav("Administration","superuser.php");

if (
$_GET['op']=='inserttask') {
    if (
trim($_POST['title'])!='' && trim($_POST['task'])!='') {
        
$sql 'INSERT INTO todolist (acctid,postdate,title,task,importance) VALUES ('.$session['user']['acctid'].',NOW(),"'.$_POST['title'].'","'.$_POST['task'].'","'.$_POST['importance'].'")';
        
db_query($sql);
        
$id db_insert_id(LINK);
        
redirect('todolist.php?op=viewtask&id='.$id);
    }
    else {
        
output('`4`bFehler: Bitte gib sowohl Titel als auch Beschreibung an!`b`0`n`n');
        
$_GET['op'] = 'newtask';
    }
}
elseif (
$_GET['op']=='deltask') {
    
$sql 'DELETE FROM commentary WHERE section="todolist-'.$_GET['id'].'"';
    
db_query($sql);
    
$sql 'DELETE FROM todolist WHERE taskid='.$_GET['id'];
    
db_query($sql);
    
$_GET['op'] = '';
}


if (
$_GET['op']=='viewtask') {
    
addnav('Aktualisieren','todolist.php?op=viewtask&id='.$_GET['id']);
    
addnav('Zurück','todolist.php');
    
output('`c`bTodoliste - Aufgabendetails`b`c`n`n');

    
addcommentary();
    if (
$_POST['edittask']!='') {
        if (
trim($_POST['title'])!='' && trim($_POST['task'])!='') {
            
$sql 'UPDATE todolist SET title="'.$_POST['title'].'",task="'.$_POST['task'].'",importance="'.$_POST['importance'].'",status="'.$_POST['status'].'",userinfo="'.$_POST['userinfo'].'"'.($_POST['status']=='umgesetzt'||$_POST['status']=='abgelehnt'?',finished=NOW()':',finished=""').' WHERE taskid='.$_GET['id'];
            
db_query($sql);
            
$sql 'INSERT INTO commentary (section, author, comment, postdate, emote) VALUES ("todolist-'.$_GET['id'].'",'.$session['user']['acctid'].',"hat den Eintrag am '.date('d.m.Y, H:i').' Uhr, geändert.",NOW(), "1")';
            
db_query($sql);
            
            switch(
$_POST['status']) {
                case 
'angenommen':
                    
$sql "SELECT acctid FROM todolist WHERE taskid = ".$_GET['id'];
                    
$result db_query($sql); 
                    
$row db_fetch_assoc($result);
                    
systemmail($row['acctid'],"`&Vorschlag/Wunsch`0","`&Dein Vorschlag/Wunsch wurde angenommen. Warte noch ein wenig bis zur Umsetzung.");
                break;
                case 
'abgelehnt':
                    
$sql "SELECT acctid FROM todolist WHERE taskid = ".$_GET['id'];
                    
$result db_query($sql); 
                    
$row db_fetch_assoc($result);
                    
systemmail($row['acctid'],"`&Vorschlag/Wunsch`0","`&Dein Vorschlag/Wunsch wurde abgelehnt. Du kannst gerne per Support nach dem Grund fragen.");
                break;
                case 
'umgesetzt':
                    
$sql "SELECT acctid FROM todolist WHERE taskid = ".$_GET['id']; 
                    
$result db_query($sql); 
                    
$row db_fetch_assoc($result);
                    
systemmail($row['acctid'],"`&Vorschlag/Wunsch`0","`&Dein Vorschlag/Wunsch wurde umgesetzt.");
                break;
            }
        }
        else {
            
output('`4`bFehler: Bitte gib sowohl Titel als auch Beschreibung an!`b`0`n`n');
        }
    }
    elseif (
$_GET['act']=='taketask') {
        
$sql 'UPDATE todolist SET implementation='.$session['user']['acctid'].' WHERE taskid='.$_GET['id'];
        
db_query($sql);
        
redirect('todolist.php?op=viewtask&id='.$_GET['id']);
    }
    elseif (
$_GET['act']=='droptask') {
        
$sql 'UPDATE todolist SET implementation=0 WHERE taskid='.$_GET['id'];
        
db_query($sql);
        
redirect('todolist.php?op=viewtask&id='.$_GET['id']);
    }

    
$session['todolist'][$_GET['id']] = date('Y-m-d H:i:s');

    
$sql 'SELECT t.*, a1.name AS poster, a2.name AS implementor FROM todolist t LEFT JOIN accounts a1 USING(acctid) LEFT JOIN accounts a2 ON a2.acctid=t.implementation WHERE t.taskid='.$_GET['id'];
    
$result db_query($sql);
    
$row db_fetch_assoc($result);

    if (
$row['implementation']==0) {
        
$row['implementor'] = '`iniemand`i [<a href="todolist.php?op=viewtask&act=taketask&id='.$_GET['id'].'">übernehmen</a>]';
        
addnav('','todolist.php?op=viewtask&act=taketask&id='.$_GET['id']);
    }
    else {
        if (
$row['implementation']==$session['user']['acctid']) {
            
$row['implementor'] .= ' [<a href="todolist.php?op=viewtask&act=droptask&id='.$_GET['id'].'">abgeben</a>]';
            
addnav('','todolist.php?op=viewtask&act=droptask&id='.$_GET['id']);
        }
        else {
            
$row['implementor'] .= ' [<a href="todolist.php?op=viewtask&act=droptask&id='.$_GET['id'].'">abnehmen</a> ';
            
addnav('','todolist.php?op=viewtask&act=droptask&id='.$_GET['id']);
            
$row['implementor'] .= '| <a href="todolist.php?op=viewtask&act=taketask&id='.$_GET['id'].'">übernehmen</a>]';
            
addnav('','todolist.php?op=viewtask&act=taketask&id='.$_GET['id']);
        }
    }

    if (
$row['finished']<=0$row['finished'] = '---';

    
output('<form action="todolist.php?op=deltask&id='.$_GET['id'].'" method="post">',true);
    
addnav('','todolist.php?op=deltask&id='.$_GET['id']);
    
output('<input type="submit" class="button" value="Eintrag löschen" onClick="return confirm(\'Soll der Eintrag wirklich gelöscht werden?\');" />',true);
    
output('</form>',true);

    
output('<form action="todolist.php?op=viewtask&id='.$_GET['id'].'" method="post">',true);
    
addnav('','todolist.php?op=viewtask&id='.$_GET['id']);
    
output('<input type="hidden" name="edittask" value="1" />',true);
   if(
$session['user']['superuser']){
    
$form = array(
            
'title'=>'Titel (max. 50 Zeichen)',
            
'task'=>'Beschreibung,textarea,60,10',
            
'postdate'=>'Erstellt,viewonly',
            
'poster'=>'Von,viewonly',
            
'implementor'=>'Umsetzung,viewonly',
            
'importance'=>'Dringlichkeit,enum,unwichtig,,nicht dringend,,normal,,dringend,,sehr dringend,',
            
'status'=>'Status,enum,offen,,angenommen,,abgelehnt,,umgesetzt,',
            
'userinfo'=>'Infos,enum,geheim,,publik,',
            
'finished'=>'Fertiggestellt,viewonly'
            
);
            }else{
            
$form = array(
            
'title'=>'Titel,viewonly',
            
'task'=>'Beschreibung,viewonly',
            
'postdate'=>'Erstellt,viewonly',
            
'poster'=>'Von,viewonly',
            );
            }
    
showform($form,$row);
    
output('</form>',true);

    
viewcommentary("todolist-{$_GET['id']}","",10);
}
elseif (
$_GET['op']=='newtask') {
    
addnav('Zurück','todolist.php');
    
output('`c`bTodoliste - Aufgabe hinzufügen`b`c`n`n');
    
output('<form action="todolist.php?op=inserttask" method="post">',true);
    
addnav('','todolist.php?op=inserttask');
    
$form = array(
            
'title'=>'Titel (max. 50 Zeichen)',
            
'task'=>'Beschreibung,textarea,60,10',
            
'importance'=>'Dringlichkeit,enum,unwichtig,,nicht dringend,,normal,,dringend,,sehr dringend,'
            
);
    
$row = array('title'=>$_POST['title'],'task'=>$_POST['task'],'importance'=>$_POST['importance']);
    
showform($form,$row);
    
output('</form>',true);
}
else {
    
addnav('Aktualisieren','todolist.php');
    
output('`c`bTodoliste - aktuelle Aufgaben`b`n`n');
        
output('Hier kannst du deine Wünsche auslassen, egal welcher Wunsch das sein soll. Wenn du eine Eventidee haben solltest dann scheue dich nicht sie uns hier mitzuteilen. Ebenso wenn du gerne einen bestimmten Ort haben möchtest. Jeder Wunsch wird recht herzlich gesehen.`n`nBei Ortswünschen, Texte an <a href="mailto:webmail@times-of-mystery.de">webmail@times-of-mystery.de</a> oder per Yom an ein Teammitglied senden.`c`n`n',true);
    
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true);
    
output("<tr class='trhead'><td><b>Aufgabe</b></td><td><b>Erstellt</b></td><td><b>Von</b></td><td><b>Umsetzung</b></td><td><b>Kommentare</b></td><td><b>Letzter Kommentar</b></td><td><b>Dringlichkeit</b></td><td><b>Status</b></td><td><b>Infos</b></td></tr>",true);
    
$i 0;
    
$sql 'SELECT t.*, a1.name AS poster, a2.name AS implementor, IF(c.section IS NULL,0,COUNT(*)) AS commentcount, MAX(c.postdate) AS lastcomment FROM todolist t LEFT JOIN accounts a1 USING(acctid) LEFT JOIN accounts a2 ON a2.acctid=t.implementation LEFT JOIN commentary c ON c.section=CONCAT("todolist-",t.taskid) GROUP BY t.taskid ORDER BY t.status ASC, t.importance DESC, lastcomment DESC, postdate DESC';
    
$result db_query($sql) or die(db_error(LINK));
    while (
$row db_fetch_assoc($result)) {
        
output("<tr class='".($i%2?"trdark":"trlight")."'><td>",true);
        if (
max($row['postdate'],$row['lastcomment'])>max($session['lastlogoff'],$session['todolist'][$row['taskid']])) {
            
output('`4*`0');
        }
        switch(
$row['status']) {
            case 
'angenommen':
                
$col '`6';
                break;
            case 
'abgelehnt':
                
$col '`4';
                 break;
            case 
'umgesetzt':
                
$col '`2';
                 break;
            case 
'offen':
            default:
                
$col '`Q';
        }
        
output('<a href="todolist.php?op=viewtask&id='.$row['taskid'].'">',true);
        
addnav('','todolist.php?op=viewtask&id='.$row['taskid']);
        
output($row['title']);
        
output('</a>',true);
        
output('</td><td>',true);
        
output($row['postdate']);
        
output('</td><td>',true);
        
output($row['poster']);
        
output('</td><td>',true);
        if (
$row['implementation']>0output($row['implementor']);
        else 
output('---');
        
output('</td><td>',true);
        
output($row['commentcount']);
        
output('</td><td>',true);
        if (
$row['lastcomment']>0output($row['lastcomment']);
        else 
output('---');
        
output('</td><td>',true);
        
output($row['importance']);
        
output('</td><td>',true);
        
output($col.$row['status'].'`0');
        
output('</td><td>',true);
        
output($row['userinfo']);
        
output('</td></tr>',true);
        
$i++;
    }
    
output('</table>',true);
    
addnav('Aufgabe hinzufügen','todolist.php?op=newtask');
}

page_footer();
?>