<?php
##########################################################
# IRC/Chat-Quotes
# by DjGeCk0
# Support: http:
# Doku : http:
##########################################################
defined (
'main'
)
or
die
(
'no direct access'
);
$title
=
$allgAr
[
'title'
].
' :: Quotes'
;
$hmenu
=
'Quotes'
;
$design
=
new
design (
$title
,
$hmenu
);
$design
->header();
$tpl
=
new
tpl (
'quotes.htm'
, 0 );
# Fehler anzeigen, falls gewollt auskommentieren
#
error_reporting
(E_ALL);
ini_set
(
'display_errors'
, 1);
# Variablen für weitere Verwendung definieren
$time
= time();
$expl
=
''
;
$postquote
=
''
;
$setrulez
=
''
;
$sites
=
''
;
$minusday
=
strtotime
(
"now -1 day"
);
$getip
=
$_SERVER
[
'REMOTE_ADDR'
];
$username
=
$_SESSION
[
'authname'
];
# Scripteigene Funktionen
function
escape_ip(&
$ip
)
{
$ip
= preg_replace(
'/[^0-9\.]/i'
,
''
,
$ip
);
}
# Einträge aus Log löschen
die
älter als ein Tag alt sind
db_query(
"DELETE FROM prefix_quotes_log WHERE tstamp < '"
.
$minusday
.
"'"
);
# escapes
$getpage
= ctype_digit(
$menu
->get(1)) ? escape(
$menu
->get(1),
'int'
) : escape(
$menu
->get(1),
'string'
);
$getvid
= ctype_digit(
$menu
->get(2)) ? escape(
$menu
->get(2),
'int'
) : escape(
$menu
->get(2),
'string'
);
$getvote
= ctype_digit(
$menu
->get(3)) ? escape(
$menu
->get(3),
'int'
) : escape(
$menu
->get(3),
'string'
);
$getwd
= ctype_digit(
$menu
->get(4)) ? escape(
$menu
->get(4),
'int'
) : escape(
$menu
->get(4),
'string'
);
$page
= (
$menu
->getA(2) ==
'p'
?
$menu
->getE(2) : 1 );
escape_ip(
$getip
);
# Einstellungen aus dem Adminbereich auslesen
# Breite der textarea in Zeichen
$formwidth
= db_result(db_query(
"SELECT einstellung FROM prefix_quotes_set WHERE auswahl = 'textbreite'"
));
# wenn getpage leer ist wird diese Seite angezeigt
$standardseite
= db_result(db_query(
"SELECT einstellung FROM prefix_quotes_set WHERE auswahl = 'startseite'"
));
# 1 = automatisch freischalten, 0 = durch admin freischalten
$autopost
= db_result(db_query(
"SELECT einstellung FROM prefix_quotes_set WHERE auswahl = 'freischalten'"
));
# Anzahl der Quotes pro Seite
$xproseite
= db_result(db_query(
"SELECT einstellung FROM prefix_quotes_set WHERE auswahl = 'anzahlx'"
));
##########################################################
# Topmenü ( Sortieren nach Top, Newest oder Neuen Quote
##########################################################
$topmenue
=
'<a href="?quotes-top">Top</a>'
;
$newmenue
=
'<a href="?quotes-new">Neuste</a>'
;
$sendmenue
=
'<a href="?quotes-send">Einsenden</a>'
;
$reglmenue
=
'<a href="?quotes-regel">Regel</a>'
;
$statsmenue
=
'<a href="?quotes-stats">Stats</a>'
;
# wenn User Admin ist wird der Adminlink angezeigt
if
(is_siteadmin(
'quotes'
) ==
'1'
) {
$adminmenu
=
'<a href="admin.php?quotes">Admin</a>'
;
}
else
{
$adminmenu
=
''
;
}
# wenn User Admin ist wird der Lösch-Link angezeigt
if
(is_siteadmin(
'quotes'
) ==
'1'
) {
$xadmindel
=
'[X]'
;
}
else
{
$xadmindel
=
''
;
}
# leere seitenangabe definieren
if
(
empty
(
$getpage
))
$getpage
=
$standardseite
;
# Quote einsenden
if
(isset(
$_POST
[
'setsend'
])) {
$setname
= escape(
$_POST
[
'setname'
],
'string'
);
$setquote
= escape(htmlentities(
$_POST
[
'setquote'
]),
'string'
);
if
(!
empty
(
$_POST
[
'setrulez'
])) {
$setrulez
= escape(
$_POST
[
'setrulez'
],
'integer'
);}
if
(
$setrulez
==
'1'
){
db_query("INSERT INTO `prefix_quotes` (
`freigeschaltet` ,`tstamp` ,`user` ,`quote` ,`vote`)
VALUES (
'".$autopost."'
,
'".$time."'
,
'".$setname."'
,
'".$setquote."'
,
'0'
);");
if
(
$autopost
==
'1'
) {
wd (
'?quotes'
,
'Quote eingetragen...'
,
'3'
);
}
if
(
$autopost
==
'0'
) {
wd (
'?quotes'
,
'Quote eingetragen...<br>Ein Admin wird diesen bald freischalten'
,
'3'
);
}
}
else
{
echo
'Bitte bestätigen Sie die Regel'
;
}
}
switch
(
$getpage
) {
##########################################################
# DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL
##########################################################
case
'del'
:
if
(is_siteadmin(
'quotes'
) ==
'1'
){
db_query(
"UPDATE `prefix_quotes` SET freigeschaltet = 0 WHERE id = '"
.
$getvid
.
"' "
);
wd (
'index.php?quotes-'
.
$getwd
.
''
,
'Status auf 0 gesetzt...<br>endgültiges Löschen ist im Adminbereich möglich'
,
'3'
);
}
else
{
wd (
'index.php?quotes-'
.
$getwd
.
''
,
'Admins only !! Dont try to hack me...'
,
'3'
);
}
break
;
##########################################################
# TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP
##########################################################
case
'top'
:
$sites
= db_make_sites (
$page
,
"WHERE freigeschaltet = 1"
,
$xproseite
,
'?quotes-new'
,
'quotes'
);
$anfang
= (
$page
- 1) *
$xproseite
;
$topqry
= db_query(
"SELECT * FROM prefix_quotes WHERE freigeschaltet = 1 ORDER BY vote DESC LIMIT "
.
$anfang
.
","
.
$xproseite
.
""
);
while
(
$rowtop
= db_fetch_assoc(
$topqry
)) {
$postquote
=
nl2br
(unescape(
$rowtop
[
'quote'
]));
$expl
.= ' <table width=
"100%"
border=
"0"
>
<tr>
<td width=
"40%"
bgcolor=
"#CCCCCC"
>
<a href=
"?quotes-'.$rowtop['id'].'"
>#
'.$rowtop['
id
'].'
</a> </td>
<td width=
"20%"
bgcolor=
"#CCCCCC"
>von
'.$rowtop['
user
'].'
</td>
<td bgcolor=
"#CCCCCC"
>
<div align=
"center"
>
<a href=
"?quotes-vote-'.$rowtop['id'].'-p-top"
><img border=
"0"
src=
"include/images/quotes/vote_good.png"
/></a>
'.$rowtop['
vote
'].'
<a href=
"?quotes-vote-'.$rowtop['id'].'-m-top"
> <img border=
"0"
src=
"include/images/quotes/vote_bad.png"
/></a> <a href=
"?quotes-del-'.$rowtop['id'].'-p-new"
>
'.$xadmindel.'
</a></div></td>
</tr>
<tr>
<td colspan=
"3"
>
'.$postquote.'
</td>
</tr>
</table>
<hr>';
}
$sites
= db_make_sites (
$page
,
"WHERE freigeschaltet = 1"
,
$xproseite
,
'?quotes-top'
,
'quotes'
);
break
;
##########################################################
# NEWEST NEUSTE NEWEST NEUSTE NEWEST NEUSTE NEWEST NEUSTE
##########################################################
case
'new'
:
$sites
= db_make_sites (
$page
,
"WHERE freigeschaltet = 1"
,
$xproseite
,
'?quotes-new'
,
'quotes'
);
$anfang
= (
$page
- 1) *
$xproseite
;
$newqry
= db_query(
"SELECT * FROM prefix_quotes WHERE freigeschaltet = 1 ORDER BY tstamp DESC LIMIT "
.
$anfang
.
","
.
$xproseite
.
""
);
while
(
$rownew
= db_fetch_assoc(
$newqry
)) {
$postquote
=
nl2br
(unescape(
$rownew
[
'quote'
]));
$expl
.= ' <table width=
"100%"
border=
"0"
>
<tr>
<td width=
"40%"
bgcolor=
"#CCCCCC"
>
<a href=
"?quotes-'.$rownew['id'].'"
>#
'.$rownew['
id
'].'
</a> </td>
<td width=
"20%"
bgcolor=
"#CCCCCC"
>von
'.$rownew['
user
'].'
</td>
<td bgcolor=
"#CCCCCC"
>
<div align=
"center"
>
<a href=
"?quotes-vote-'.$rownew['id'].'-p-new"
><img border=
"0"
src=
"include/images/quotes/vote_good.png"
></a>
'.$rownew['
vote
'].'
<a href=
"?quotes-vote-'.$rownew['id'].'-m-new"
> <img border=
"0"
src=
"include/images/quotes/vote_bad.png"
/></a> <a href=
"?quotes-del-'.$rownew['id'].'-p-new"
>
'.$xadmindel.'
</a></div></td>
</tr>
<tr>
<td colspan=
"3"
>
'.$postquote.'
</td>
</tr>
</table>
<hr>';
}
break
;
##########################################################
# SEND SEND SEND SEND SEND SEND SEND SEND SEND SEND SEND
##########################################################
case
'send'
:
$expl
= '<form name=
"send"
method=
"post"
action=
""
>
<input name=
"setname"
type=
"text"
id=
"setname"
value=
"'.$username.'"
>
<p>
<textarea name=
"setquote"
id=
"setquote"
cols=
"'.$formwidth.'"
rows=
"15"
></textarea>
</p>
<p>
<input name=
"setrulez"
type=
"checkbox"
id=
"setrulez"
value=
"1"
>
<a href=
"?quotes-regel"
>Regeln gelesen ?</a>
<input type=
"submit"
name=
"setsend"
id=
"setsend"
value=
"senden"
>
</p>
</form>';
break
;
##########################################################
# REGEL REGEL REGEL REGEL REGEL REGEL REGEL REGEL REGEL
##########################################################
case
'regel'
:
$getregel
= db_result(db_query(
"SELECT einstellung FROM prefix_quotes_set WHERE auswahl = 'regel'"
));
$expl
=
$getregel
;
break
;
##########################################################
# STATS STATS STATS STATS STATS STATS STATS STATS STATS
##########################################################
case
'stats'
:
$cquotes
= db_result(db_query(
"SELECT COUNT(id) FROM prefix_quotes"
));
$fquotes
= db_result(db_query(
"SELECT COUNT(id) FROM prefix_quotes WHERE freigeschaltet = 1"
));
$wquotes
= db_result(db_query(
"SELECT COUNT(id) FROM prefix_quotes WHERE freigeschaltet = 0"
));
$expl
= '<table width=
"100%"
>
<tr width=
"50%"
>
<td width=
"50%"
>Anzahl der Quotes:</td>
<td width=
"50%"
>
'.$cquotes.'
</td>
</tr>
<tr width=
"50%"
>
<td width=
"50%"
>davon freigeschaltet</td>
<td width=
"50%"
>
'.$fquotes.'
</td>
</tr>
<tr width=
"50%"
>
<td width=
"50%"
>davon in Warteschlange</td>
<td width=
"50%"
>
'.$wquotes.'
</td>
</tr>
</table>';
break
;
##########################################################
# VOTE VOTE VOTE VOTE VOTE VOTE VOTE VOTE VOTE VOTE VOTE
##########################################################
case
'vote'
:
$ipsperre
= db_query(
"SELECT * FROM prefix_quotes_log WHERE ip like '"
.
$getip
.
"' AND quoteid = '"
.
$getvid
.
"' AND tstamp < '"
.
$minusday
.
"'"
);
if
(isset(
$_SESSION
[
'bewquotes'
][
$getvid
],
$ipsperre
)) {
# zurück zur letzten Seite
wd (
'index.php?quotes-'
.
$getwd
.
''
,
'Sie haben bereits gevoted...'
,
'3'
);
$design
->footer(1);
}
else
{
# Vote-Form wird ausgeführt -
if
(
$getvote
==
'm'
) {
db_query(
"UPDATE `prefix_quotes` SET vote = vote -1 WHERE id = '"
.
$getvid
.
"' "
);
}
# Vote-Form wird ausgeführt +
if
(
$getvote
==
'p'
) {
db_query(
"UPDATE `prefix_quotes` SET vote = vote +1 WHERE id = '"
.
$getvid
.
"' "
);
}
# SESSION -> Cookie und IP in DB-Log speichern
$_SESSION
[
'bewquotes'
][
$getvid
] = TRUE;
db_query("INSERT INTO `prefix_quotes_log` (
`ip` ,`quoteid` ,`tstamp`)
VALUES (
'".$getip."'
,
'".$getvid."'
,
'".$time."'
);");
# zurück zur letzten Seite
wd (
'index.php?quotes-'
.
$getwd
.
''
,
'Vote wurde gespeichert...'
,
'3'
);
$design
->footer(1);
}
break
;
##########################################################
default
:
$expl
=
'ERROR : ein unbehandelter Fehler ist aufgetreten...'
;
break
;
}
##########################################################
# Wenn ID übergeben wird ID ID ID ID ID ID ID ID ID ID ID
##########################################################
if
(!
empty
(
$getpage
) &&
is_numeric
(
$getpage
)) {
$checkid
= db_result(db_query(
"SELECT COUNT(id) FROM prefix_quotes WHERE id = '"
.
$getpage
.
"'"
));
switch
(
$checkid
) {
# wenn id nicht vorhanden
case
'0'
:
wd (
'index.php?quotes'
,
'Dieser Quote existiert nicht (mehr)...'
,
'3'
);
$design
->footer(1);
break
;
# wenn id vorhanden
case
'1'
:
$qryid
= db_query(
"SELECT * FROM prefix_quotes WHERE id = '"
.
$getpage
.
"'"
);
while
(
$rowid
= db_fetch_assoc(
$qryid
)) {
$postquote
=
nl2br
(unescape(
$rowid
[
'quote'
]));
$expl
= '<table width=
"100%"
border=
"0"
>
<tr>
<td width=
"40%"
bgcolor=
"#CCCCCC"
>
<a href=
"?quotes-'.$rowid['id'].'"
>#
'.$rowid['
id
'].'
</a> </td>
<td width=
"20%"
bgcolor=
"#CCCCCC"
>von
'.$rowid['
user
'].'
</td>
<td bgcolor=
"#CCCCCC"
>
<div align=
"center"
><a href=
"?quotes-vote-'.$rowid['id'].'-p-new"
><img border=
"0"
src=
"include/images/quotes/vote_good.png"
/></a> </a>
'.$rowid['
vote
'].'
<a href=
"?quotes-vote-'.$rowid['id'].'-m-new"
> <img border=
"0"
src=
"include/images/quotes/vote_bad.png"
/></a></a></div></td>
</tr>
<tr>
<td colspan=
"3"
>
'.$postquote.'
</td>
</tr>
</table>';
}
break
;
# fehler
default
:
$expl
=
'ERROR : unbehandelter Fehler'
;
break
;
}
}
##########################################################
# Template erstellen
##########################################################
$tpl
->set(
'TOPMENU'
,
$topmenue
);
$tpl
->set(
'NEWMENU'
,
$newmenue
);
$tpl
->set(
'NEUMENU'
,
$sendmenue
);
$tpl
->set(
'REGLMENU'
,
$reglmenue
);
$tpl
->set(
'ADMINMEN'
,
$adminmenu
);
$tpl
->set(
'FORMWIDTH'
,
$formwidth
);
$tpl
->set(
'STATMENU'
,
$statsmenue
);
$tpl
->set(
'SITELINK'
,
$sites
);
$tpl
->set(
'EXPL'
,
$expl
);
$tpl
->set(
'X'
,
$xadmindel
);
$tpl
->out(0);
##########################################################
$design
->footer(1);
?>