Quellcode der Dragonslayer-Edition
Quellcode der Dragonslayer-Edition: 0.9.7(DS V3) Ithil-Edition


Anmerkung: Dies ist nur ein Auszug aus dem Source. Ein etwas älteres, abgespecktes Release der Dragonslayer-Edition ist für jeden Interessenten frei zum Download verfügbar. Was wir uns unbedingt verbitten, ist Diebstahl unserer Arbeit ohne Nennung des Copyrights.
Falls beim Lesen des Source ein Bug entdeckt werden sollte, bitten wir um sofortige Meldung per Anfrage!


./news.php

zurück
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
<?php
/**
* news.php:    Anzeige der aktuellen Spielernews
* @author LOGD-Core, modified by Drachenserver-Team
* @version DS-E V/2
*/

require_once('common.php');

function 
datum($timestamp//Behelf, damit das wieder deutsch ausgegeben wird. Author: Taemor
{
    
$tages = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
    
$tag strftime("%w",$timestamp);

    
$tag1 strftime("%d",$timestamp);

    
$monate = array("01"=>"Januar","02"=>"Februar","03"=>"März","04"=>"April","05"=>"Mai","06"=>"Juni","07"=>"Juli","08"=>"August","09"=>"September","10"=>"Oktober","11"=>"November","12"=>"Dezember");
    
$monat strftime("%m",$timestamp);

    
$jahr strftime("%Y",$timestamp);

    
$datum $tages[$tag].", ".$tag1.". ".$monate[$monat]." ".$jahr;
    return 
$datum;
}

if (
$session['user']['imprisoned']>0) {
    
redirect("prison.php");
}

if (
$session['user']['loggedin']) {
    
checkday();
}

$newsperpage=30;

page_header('Neuigkeiten aus '.getsetting('townname','Atrahor'));

if (
$access_control->su_check(access_control::SU_RIGHT_NEWS))
{
    
output('`0<form action="news.php" method="POST">
            [Admin] Meldung manuell eingeben?
            <input name="meldung" size="40">
            <input type="submit" class="button" value="Eintragen">
            </form>`n`n'
);
    
addnav('','news.php');

    if (isset(
$_POST['meldung']) && !empty($_POST['meldung']))
    {
        
$sql "INSERT INTO news(newstext,newsdate,accountid) VALUES ('".addslashes($_POST['meldung'])."',NOW(),0)";
        
db_query($sql);
        
$_POST['meldung']='';
    }
}

if (
$access_control->su_check(access_control::SU_RIGHT_SEARCH_NEWS))
{
    
$str_search=((isset($_POST['search']) && $_POST['search']>'')
        ?
stripslashes($_POST['search'])
        :((isset(
$_GET['search']) && $_GET['search']>'')
            ?
stripslashes($_GET['search'])
            :
''));
    
rawoutput('<form action="news.php?op=search&amp;page=1" method="POST">
    Nach etwas in den News suchen:
    <input name="search" size=50 value="'
.$str_search.'">
    <input class="button" type="submit" value="Suchen">
    </form>'
);
    
addnav('','news.php?op=search&page=1');
}

if (!
$session['user']['loggedin'])
{
    
addnav('Login''index.php');
}
elseif (
$session['user']['alive'])
{
    
addnav('Zurück');
    
addnav('D?Zum Dorfplatz','village.php');
    
addnav('M?Zum Marktplatz','market.php');
}
else
{
    
addnav(words_by_sex('Du bist tot [Jim|Jane]!'));
    
addnav('S?Land der Schatten','shades.php');
}

//Neujahrs-Special
if ( ($session['user']['acctid'] && (time() - mktime(0,0,0,1,1,date('Y'))) <= (60) ) )
{
    if(isset(
$_REQUEST['new_years_special']))
    {
        
$sql "
            SELECT
                *
            FROM
                `user_online_newyear`
            WHERE
                `acctid`    = '" 
$session['user']['acctid'] . "'
        "
;
        
$res db_query($sql);
        if (
db_num_rows($res))
        {
            
output("`@Du bist bereits im Neujahrsbonus eingetragen! Danke für's Spielen und gute Nacht!`n");
        }
        else
        {
            
$sql "
                INSERT INTO
                    `user_online_newyear`
                SET
                    `acctid` = '" 
$session['user']['acctid'] . "'
            "
;
            
db_query($sql);
            
$subject "Neujahrsgrüße";
            
$body '
                Liebe' 
. (!$session['sex']?'r':'') . ' ' $session['user']['login'] . '`n
                wir bedanken uns für deine Treue zum Spiel und wünschen dir ein glückliches Jahr ' 
date('Y') . "!`n
                Dein Drachenserver-Team`n
                PS: Du bist nun in die Liste für den Neujahrsbonus eingetragen.
            "
;
            
systemmail($session['user']['acctid'],$subject,$body);
            
addhistory('`^Hielt Atrahor auch zum Jahreswechsel ' . (date('Y')-1) . '/' date('Y') . ' die Treue!');
            
output('<hr>'.get_title('Das Neujahrsgeschenk').'`c`b`yWir danken Dir für Deine Treue und wünschen dir ein gesundes und erfolgreiches Jahr '.date('Y').'`b`c`n<hr>');
        }
    }
    else 
    {
        
$str_out '<hr>'.get_title('Das Neujahrsgeschenk').'`c`b`tWie jedes Jahr schickt es sich auch heute an eine Tradition aufleben zu lassen. Jeder Bewohner unseres kleinen Dorfes, der zum Silvesterfeste und dem anstehenden Jahreswechsel bei uns weilt, soll für seine beispiellose Treue belohnt werden. Du bist ein solch treues Wesen. Unser Dank sei dir gewiss. `yNun klicke auf den folgenden Button, um Dich für Dein Geschenk zu registrieren. Es wird Dich in den nächsten Tagen erreichen!`n
        <input type="button" name="new_years_special" value="Das Neujahrgeschenk..." onClick="window.location.href=\'news.php?new_years_special=1\' ">`0`b`c`n<hr>'
;
        
addnav('','news.php?new_years_special=1');
        
output($str_out);
    }
}


addnav('Information');
addnav('Über das Spiel','about.php');
if (
$access_control->su_check(access_control::SU_RIGHT_NEWDAY))
{
    
addnav('Neuer Tag','superuser.php?op=newday',false,false,false,false,'Willst du wirklich einen neuen Tag beginnen?');
}

if (
$_GET['op']=='')
{
    
$offset = (int)$_GET['offset'];

    
$timestamp time() - 86400 $offset;
    
$date_from date('Y-m-d',$timestamp);


    
$sql 'SELECT count(*) AS c FROM news WHERE newsdate="'.$date_from.'"';
    
$result db_query($sql);
    
$row db_fetch_assoc($result);
    
$totaltoday=$row['c'];

    
$pageoffset = (int)$_GET['page'];

    if (
$pageoffset>0)
    {
        
$pageoffset--;
    }

    
$pageoffset*=$newsperpage;

    
$sql 'SELECT * FROM news WHERE newsdate="'.$date_from.'" ORDER BY newsid DESC LIMIT '.$pageoffset.','.$newsperpage;
    
$result db_query($sql);

    
//$date = strftime('%A, %e. %B %Y',$timestamp);
    
$date=datum($timestamp);

    
output(get_title("`n`INeuigkeiten für $date".($totaltoday>$newsperpage?" (Meldungen ".($pageoffset+1)." - ".min($pageoffset+$newsperpage,$totaltoday)." von $totaltoday)":"")));

    
$int_num_rows db_num_rows($result);
    if (
$int_num_rows == 0)
    {
        
output('`c`K-=-`h=-=`K-=-`h=-=`K-=-`h=-=`K-=-`0`c');
        
output(get_title('`y Es ist nichts Erwähnenswertes passiert. Alles in allem bisher ein langweiliger Tag.'));
    }
    else
    {
        
$str_output '`0';
        for (
$i=0;$i<$int_num_rows;$i++)
        {
            
$row db_fetch_assoc($result);
            
$str_output .= '`c`K-=-`h=-=`K-=-`h=-=`K-=-`h=-=`K-=-`0`c';
            if (
$access_control->su_check(access_control::SU_RIGHT_NEWS))
            {
                
$str_output .= '[ '.create_lnk('Del','superuser.php?op=newsdelete&newsid='.$row['newsid'].'&return='.URLEncode($_SERVER['REQUEST_URI'])).' ]&nbsp;';
            }
            
$str_output .= $row['newstext'].'`n`0';
        }
        
output($str_outputtrue);
    }

    
output('`c`K-=-`h=-=`K-=-`h=-=`K-=-`h=-=`K-=-`0`c');

    
addnav('Vergangene Tage');
    
addnav('z?Tag zurück','news.php?offset='.($offset+1));
    if (
$offset>0)
    {
        
addnav('v?Tag vor','news.php?offset='.($offset-1));
    }
    
page_nav('news.php?offset='.$offset,$totaltoday,$newsperpage);
}

else if (
$_GET['op']=='search')
{
    
addnav('`nNeueste Meldungen','news.php');
    if ((isset(
$_POST['search']) && strlen($_POST['search'])>2) || (isset($_GET['search']) && strlen($_GET['search'])>2))
    {
        
$newsperpage=15;
        
$_GET['search']=(isset($_POST['search'])?rawurlencode($_POST['search']):$_GET['search']);
        
#$days=($_GET['days']);
        
$lastweek=date("Y-m-d",time()-(7*24*3600));
        
$page=max((int)$_GET['page'],1);
        
$nrnews=db_fetch_assoc(db_query("SELECT count(*) as c
            FROM news
            WHERE newstext LIKE '%"
.addslashes(rawurldecode($_GET['search']))."%'
            AND newsdate>'"
.$lastweek."'"));
        
$newsresult=db_query("SELECT *
            FROM news
            WHERE newstext LIKE '%"
.addslashes(rawurldecode($_GET['search']))."%'
            AND newsdate>'"
.$lastweek."'
            ORDER BY newsdate DESC
            LIMIT "
.(($page-1)*$newsperpage).",".$newsperpage);
        
$newsfound="`n`c".$nrnews['c']." gefundene Nachrichten innerhalb der letzten sieben Tage :`c`n";
        if (
db_num_rows($newsresult)==0)
        {
            
$newsfound.="`n`n`c`iLeider keine entsprechenden Nachrichten gefunden`i`c`n`n";
        }
        else
        {
            while(
$newsrow=db_fetch_assoc($newsresult))
            {
                
$newsfound.="`c`K-=-`h=-=`K-=-`h=-=`K-=-`h=-=`K-=-`0`c";
                if (
$access_control->su_check(access_control::SU_RIGHT_NEWS))
                {
                    
$ndate=explode("-",$newsrow['newsdate']);
                    
$newsfound.=$ndate[2].".".$ndate[1].".".$ndate[0]."`n";
                    
$newsfound.='`0[ '.create_lnk('Del','superuser.php?op=newsdelete&newsid='.$newsrow['newsid'].'&return='.URLEncode($_SERVER['REQUEST_URI'])).' ]&nbsp;';
                }
                
$newsfound.=$newsrow['newstext'].'`n`0';
            }
        }
        
output($newsfound);
        
page_nav('news.php?op=search&search='.rawurlencode($str_search),$nrnews['c'],$newsperpage);
    }
    else
    {
        
output("`n`n`c`iBitte einen längeren Suchstring eingeben (min 3 Zeichen)`i`c");
    }
}

page_footer();
?>
0.9.7(DS V3) Ithil-Edition