So ich habe es mal angepasst, inclusive der Administration, ich hoffe es ist keine Fehler drin, da ich es nicht getestet habe!
Als Erstes in der
Datenbank/phpMyAdmin unter
SQL-Befehle in Datenbank ausführen beide folgende Befehle ausführen:
ALTER TABLE `ic1_gbook` ADD `plz` VARCHAR( 5 ) NOT NULL ;
ALTER TABLE `ic1_gbook` ADD `banner` VARCHAR( 100 ) NOT NULL ;
Dann folgende Dateien ersetzen:
include/contents/gbook.php
<?php
# Copyright by: Manuel
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
$title = $allgAr['title'].' :: Gästebuch';
$hmenu = 'Gästebuch';
$design = new design ( $title , $hmenu );
$design->header();
# time sperre in sekunden
$timeSperre = $allgAr['Gsperre'];
/*
gbook
id , name , mail , page , ip , time , txt, plz, banner
*/
switch($menu->get(1)) {
case 1 :
$tpl = new tpl ( 'gbook.htm' );
$ar = array (
'uname' => $_SESSION['authname'],
'SMILIES' => getsmilies(),
'ANTISPAM' => get_antispam ('gbook', 1),
'TXTL' => $allgAr['Gtxtl']
);
$tpl->set_ar_out($ar,3);
if (!isset($_SESSION['klicktime_gbook'])) { $_SESSION['klicktime_gbook'] = 0; }
break;
case 2 :
$dppk_time = time();
if (($_SESSION['klicktime_gbook'] + $timeSperre) < $dppk_time
AND isset($_POST['name'])
AND isset($_POST['txt'])
AND trim($_POST['name']) != ""
AND trim($_POST['txt']) != ""
AND chk_antispam ('gbook' )
AND strlen ($_POST['txt']) <= $allgAr['Gtxtl'] ) {
$txt = escape($_POST['txt'], 'textarea');
$name = escape($_POST['name'], 'string');
$mail = escape($_POST['mail'], 'string');
$page = escape($_POST['page'], 'string');
$plz = escape($_POST['plz'], 'string');
$banner = escape($_POST['banner'], 'string');
db_query("INSERT INTO prefix_gbook (`name`,`mail`,`page`,`time`,`ip`,`txt`,`plz`,`banner`) VALUES ('".$name."', '".$mail."', '".$page."', '".time()."', '".getip()."', '".$txt."', '".$plz."', '".$banner."')");
$_SESSION['klicktime_gbook'] = $dppk_time;
wd('index.php?gbook',$lang['insertsuccessful']);
} else {
echo '- '.$lang['donotpostsofast'];
echo '<br />- '.sprintf($lang['gbooktexttolong'], $allgAr['Gtxtl']);
echo '<br />- '.$lang['plsfilloutallfields'];
}
break;
case 'show' :
if ($allgAr['gbook_koms_for_inserts'] == 1) {
$id = escape($menu->get(2), 'integer');
if (chk_antispam('gbookkom') AND isset($_POST['name']) AND isset($_POST['text'])) {
$name = escape($_POST['name'], 'string');
$text = escape($_POST['text'], 'string');
db_query("INSERT INTO prefix_koms (name,text,uid,cat) VALUES ('".$name."', '".$text."', ".$id.", 'GBOOK')");
}
if ($menu->getA(3) == 'd' AND is_numeric($menu->getE(3)) AND has_right(-7, 'gbook')) {
$did = escape($menu->getE(3), 'integer');
db_query("DELETE FROM prefix_koms WHERE uid = ".$id." AND cat = 'GBOOK' AND id = ".$did);
}
$r = db_fetch_assoc(db_query("SELECT time, name, mail, page, plz, banner, txt as text, id FROM prefix_gbook WHERE id = ".$id));
$r['datum'] = date('d.m.Y', $r['time']);
if ($r['page'] != '') {
$r['page'] = get_homepage($r['page']);
$r['page'] = ' <a href="'.$r['page'].'" target="_blank"><img src="include/images/icons/page.gif" border="0" alt="Homepage '.$lang['from'].' '.$r['name'].'"></a>';
}
if ($r['mail'] != '') {
$r['mail'] = ' <a href="mailto:'.escape_email_to_show($r['mail']).'"><img src="include/images/icons/mail.gif" border="0" alt="E-Mail '.$lang['from'].' '.$r['name'].'"></a>';
}
if ($r['banner'] != '') {
$r['banner'] = ' <a href="'.$r['banner'].'"><img src="include/images/icons/button.image.gif" border="0" title="Link zum Banner"></a>';
}
if ($r['plz'] != '') {
$r['plz'] = ' PLZ: '.$r['plz'];
}
$tpl = new tpl ( 'gbook.htm' );
$r['ANTISPAM'] = get_antispam('gbookkom', 0);
$r['uname'] = $_SESSION['authname'];
$r['text'] = bbcode($r['text']);
$tpl->set_ar_out($r, 4);
$i = 1;
$erg = db_query("SELECT id, name, text FROM prefix_koms WHERE uid = ".$id." AND cat = 'GBOOK' ORDER BY id DESC");
$anz = db_num_rows($erg)+1;
while ($r1 = db_fetch_assoc($erg)) {
$r1['zahl'] = $anz - $i;
$r1['text'] = bbcode($r1['text']);
if (has_right(-7, 'gbook')) { $r1['text'] .= '<a href="index.php?gbook-show-'.$id.'-d'.$r1['id'].'"><img src="include/images/icons/del.gif" alt="'.$lang['delete'].'" border="0" title="'.$lang['delete'].'" /></a>'; }
$tpl->set_ar_out($r1, 5);
$i++;
}
$tpl->out(6);
}
break;
default :
$limit = $allgAr['gbook_posts_per_site']; // Limit
$page = ( $menu->getA(1) == 'p' ? escape($menu->getE(1), 'integer') : 1 );
$MPL = db_make_sites ($page , "" , $limit , "?gbook" , 'gbook' );
$anfang = ($page - 1) * $limit;
$tpl = new tpl ( 'gbook.htm' );
$ei1 = @db_query("SELECT COUNT(ID) FROM prefix_gbook");
$ein = @db_result($ei1,0);
$ar = array ('EINTRAGE' => $ein );
$tpl->set_ar_out($ar,0);
$erg = db_query("SELECT * FROM prefix_gbook ORDER BY time DESC LIMIT ".$anfang.",".$limit) or die (db_error());
while ($row = db_fetch_object($erg)) {
$page = '';
$mail = '';
if ($row->page) {
$row->page = get_homepage($row->page);
$page = ' <a href="'.$row->page.'" target="_blank"><img src="include/images/icons/page.gif" border="0" alt="Homepage '.$lang['from'].' '.$row->name.'"></a>';
}
if ($row->mail) {
$mail = ' <a href="mailto:'.escape_email_to_show($row->mail).'"><img src="include/images/icons/mail.gif" border="0" alt="E-Mail '.$lang['from'].' '.$row->name.'"></a>';
}
if ($row->banner) {
$banner = ' <a href="'.$row->banner.'"><img src="include/images/icons/button.image.gif" border="0" title="Link zum Banner"></a>';
}
if ($row->plz) {
$plz = ' PLZ: '.$row->plz;
}
$koms = '';
if ($allgAr['gbook_koms_for_inserts'] == 1) {
$koms = db_result(db_query("SELECT COUNT(*) FROM prefix_koms WHERE uid = ".$row->id." AND cat = 'GBOOK'"),0,0);
$koms = '<a href="index.php?gbook-show-'.$row->id.'">'.$koms.' '.$lang['comments'].'</a>';
}
$ar = array ( 'NAME' => $row->name,
'DATE' => date("d.m.Y",$row->time),
'koms' => $koms,
'MAIL' => $mail,
'ID' => $row->id,
'PAGE' => $page,
'TEXT' => BBCode($row->txt),
'BANNER' => $banner,
'PLZ' => $plz
);
$tpl->set_ar_out($ar,1);
}
$tpl->set_out('SITELINK', $MPL, 2 );
break;
}
//-----------------------------------------------------------|
$design->footer();
?>
include/templates/gbook.htm
<table width="100%">
<tr>
<td width="50%" align="right">
{EINTRAGE} {_lang_entries}
</td>
<td width="50%" align="center">
<a href="index.php?gbook-1">{_lang_insert}</a>
</td>
</tr>
</table>
<br>
{EXPLODE}
<table width="100%" cellpadding="4" cellspacing="0" border="0" class="rand">
<tr class="Cmite">
<td width="40%"><b>{NAME}</b></td>
<td width="30%">{MAIL}{PAGE}{BANNER}{PLZ}</td>
<td width="30%" align="right">{DATE}</td>
</tr>
<tr class="Cnorm">
<td colspan="3">{TEXT}</td>
</tr>
</table>
{koms}
<br />
<br />
{EXPLODE}
<br />
<br />
<div align="center">{SITELINK}</div>
{EXPLODE}
<!-- G ä S T E B U C H E N T E R F O R M U L A R -->
<script language="JavaScript" type="text/javascript">
<!--
var ErlaubteAnzahl={TXTL};
function checkg ( ) {
if ( document.form.txt.value.length > ErlaubteAnzahl ) {
alert('Du hast mehr als ' + ErlaubteAnzahl + ' Zeichen verwendet');
return false;
} else {
var fehler = '';
if ( document.form.txt.value.length == 0 ) {
fehler += 'Bitte einen Text eingeben';
}
if ( document.form.name.value.length == 0 ) {
if ( fehler != '' ) {
fehler += "\n";
}
fehler += 'Bitte einen Namen eingeben';
}
if ( fehler != '' ) {
alert ( fehler );
return false;
} else {
return true;
}
}
}
function RestlicheZeichenErmitteln(d)
{
Laenge=document.form.txt.value.length;
if(Laenge>ErlaubteAnzahl)
{
document.form.txt.value=document.form.txt.value.substring(0,ErlaubteAnzahl);
RestlicheZeichen=0;
}
else
{
RestlicheZeichen=ErlaubteAnzahl-Laenge;
}
document.form.Laenge.value=RestlicheZeichen;
}
//-->
</script>
<script type='text/javascript' src='include/includes/js/bbcode.js'></script>
<form action="index.php?gbook-2" onsubmit="return checkg()" method="POST" name="form">
<table width="100%" class="border" cellspacing="1" border="0" cellpadding="5">
<tr>
<td class="Chead" colspan="2"><b>{_lang_insert}</b></td>
</tr><tr>
<td class="Cmite" width="100"><b>{_lang_name}</b></td>
<td class="Cnorm"><input type="text" value="{uname}" tabindex="1" name="name"></td>
</tr><tr>
<td class="Cmite"><b>{_lang_mail}</b> *</td>
<td class="Cnorm"><input type="text" name="mail" tabindex="2"></td>
</tr><tr>
<td class="Cmite"><b>{_lang_homepage}</b> *</td>
<td class="Cnorm"><input type="text" name="page" tabindex="3"></td>
</tr><tr>
<td class="Cmite"><b>Postleitzahl</b></td>
<td class="Cnorm"><input type="text" name="plz" tabindex="3"></td>
</tr><tr>
<td class="Cmite"><b>Bannerlink</b></td>
<td class="Cnorm"><input type="text" name="banner" tabindex="3"></td>
</tr><tr>
<td class="Cmite" valign="top"><b>{_lang_message}</b><br><br>{SMILIES}</td>
<td class="Cnorm">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%">
<!-- BB Code START -->
<a href="javascript:simple('b')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.bold.gif" alt="b" title="{_lang_bold}" border="0"></a>
<a href="javascript:simple('i')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.italic.gif" alt="i" title="{_lang_italic}" border="0"></a>
<a href="javascript:simple('u')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.underline.gif" alt="u" title="{_lang_underlined}" border="0"></a>
<a href="javascript:simple('code')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.code.gif" alt="Code" title="{_lang_code}" border="0"></a>
<a href="javascript:simple_liste()"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.insertunorderedlist.gif" alt="{_lang_list}" title="{_lang_list}" border="0"></a>
<a href="javascript:simple('url')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.link.gif" alt="Url" title="{_lang_link}" border="0"></a>
<a href="javascript:simple('img')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.image.gif" alt="{_lang_picture}" title="{_lang_picture}" border="0"></a>
<!-- BB Code START -->
</td>
</tr><tr class="Cnorm">
<td width="100%"><textarea style="width: 98%" onblur="RestlicheZeichenErmitteln(this);" onchange="RestlicheZeichenErmitteln(this);" onfocus="RestlicheZeichenErmitteln(this);" onkeydown="RestlicheZeichenErmitteln(this);" onkeyup="RestlicheZeichenErmitteln(this);" cols="50" rows="10" tabindex="4" name="txt"></textarea><br />Noch <input size="3" name="Laenge" value="{TXTL}"> {_lang_signs}</td>
</tr>
</table></td>
</tr>{ANTISPAM}<tr class="Cdark">
<td></td><td><input type="submit" value="{_lang_formsub}" tabindex="5" accesskey="s"></td>
</tr></table></form>
{EXPLODE}
<table width="100%" cellpadding="4" cellspacing="0" border="0" class="rand">
<tr class="Cmite">
<td width="40%"><b>{name}</b></td>
<td width="30%">{mail}{page}{banner}{plz}</td>
<td width="30%" align="right">{datum}</td>
</tr>
<tr class="Cnorm">
<td colspan="3">{text}</td>
</tr>
</table>
<br />
<table width="100%" cellpadding="4" cellspacing="0" border="0" class="rand">
<tr class="Cnorm">
<td>
<form action="index.php?gbook-show-{id}" method="POST">
<fieldset>
<legend>{_lang_writecomment}</legend>
<input type="text" name="name" value="{uname}" /> {ANTISPAM} <input type="submit" value="{_lang_enter}"><br />
<textarea style="width: 98%" cols="50" rows="2" name="text"></textarea><br />
</fieldset>
</form>
<br />
{EXPLODE}
<span class="Cmite"># <b>{zahl}</b> von {name}</span>
<br />{text}<br /><br />
{EXPLODE}
</td>
</tr>
</table>
include/admin/gbook.php
<?php
# Copyright by: Manuel
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
defined ('admin') or die ( 'only admin access' );
$design = new design ( 'Admins Area', 'Admins Area', 2 );
$design->header();
##
###
####
##### A k t i o n e n
if ( !empty ($_GET['del']) ) {
$id = escape($_GET['del'], 'integer');
db_query("DELETE FROM `prefix_gbook` WHERE id = ".$id." LIMIT 1");
db_query("DELETE FROM prefix_koms WHERE uid = ".$id." AND cat = 'GBOOK'");
}
if (isset($_POST['sub'])) {
$name = escape($_POST['name'], 'string');
$mail = escape($_POST['mail'], 'string');
$page = escape($_POST['page'], 'string');
$text = escape($_POST['text'], 'string');
$banner = escape($_POST['banner'], 'string');
$plz = escape($_POST['plz'], 'string');
if (empty($_POST['gid'])) {
db_query("INSERT INTO prefix_gbook (name, mail, page, txt, banner, plz, time) VALUES ('".$name."','".$mail."','".$page."','".$text."','".$banner."','".$plz."', '".time()."')");
} else {
$gid = escape($_POST['gid'], 'integer');
db_query("UPDATE prefix_gbook SET name = '".$name."', mail = '".$mail."', page = '".$page."', txt = '".$text."', banner = '".$banner."', plz = '".$plz."' WHERE id = ".$gid);
}
}
$r = array ('name'=>'','mail'=>'','page'=>'','text'=>'','banner'=>'','plz'=>'','id'=>'');
if (isset($_GET['edit'])) {
$id = escape($_GET['edit'], 'integer');
$r = db_fetch_assoc(db_query("SELECT id, name, mail, page, banner, plz, txt as text FROM prefix_gbook WHERE id = ".$id));
}
$tpl = new tpl ('gbook', 1);
$tpl->set_ar_out($r,0);
$class = '';
$erg = db_query('SELECT name, mail, txt, id FROM `prefix_gbook` ORDER BY time DESC');
while ($r = db_fetch_assoc($erg) ) {
$class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite' );
$text = substr(preg_replace("/\015\012|\015|\012/", " ", htmlentities(strip_tags(stripslashes($r['txt'])))),0,75);
echo '<tr class="'.$class.'">';
echo '<td><a href="admin.php?gbook=0&edit='.$r['id'].'"><img src="include/images/icons/edit.gif" /></a></td>';
echo '<td><a href="javascript:delcheck('.$r['id'].')"><img src="include/images/icons/del.gif"></a></td>';
echo '<td><b><a href="mailto:'.$r['mail'].'">'.$r['name'].'</a></b> <span class="smalfont">';
echo $text.'</span></td>';
echo '</tr>';
}
$tpl->out(1);
$design->footer();
?>
include/admin/templates/gbook.htm
<script language="JavaScript" type="text/javascript">
<!--
function delcheck ( DELID ) {
var frage = confirm ( "Willst du diesen Eintrag wirklich löschen?" );
if ( frage == true ) {
document.location.href="admin.php?gbook&del="+DELID;
}
}
//-->
</script>
<table width="100%" border="0" cellpadding="2" cellspacing="1" class="border">
<tr class="Chead">
<td colspan="2"><b>Gbook</b></td>
</tr><tr>
<td width="40%" valign="top" class="Cnorm">
<form action="admin.php?gbook" method="POST">
<input type="hidden" name="gid" value="{id}" />
<table width="100%" border="0" cellpadding="2" cellspacing="1" class="border">
<tr>
<td class="Cmite">Name</td>
<td class="Cnorm"><input size="40" name="name" value="{name}" /></td>
</tr><tr>
<td class="Cmite">eMail</td>
<td class="Cnorm"><input size="40" name="mail" value="{mail}" /></td>
</tr><tr>
<td class="Cmite">Page</td>
<td class="Cnorm"><input size="40" name="page" value="{page}" /></td>
</tr><tr>
<td class="Cmite">Banner</td>
<td class="Cnorm"><input size="40" name="banner" value="{banner}" /></td>
</tr><tr>
<td class="Cmite">PLZ</td>
<td class="Cnorm"><input size="40" name="plz" value="{plz}" /></td>
</tr><tr>
<td class="Cmite">Text</td>
<td class="Cnorm"><textarea cols="40" rows="6" name="text">{text}</textarea></td>
</tr><tr>
<td class="Cmite"></td>
<td class="Cnorm"><input type="submit" value="Absenden" name="sub"></td>
</tr>
</table>
</form>
</td>
<td width="60%" valign="top" class="Cmite">
<table width="100%" border="0" cellpadding="5" cellspacing="0">
{EXPLODE}
</table>
</td>
</tr>
</table>
Die Ausgabe des Banners habe ich erstmal als Link und die Postleitzahl als Hover über dem Button eingebunden! Das kann natürlich auch verändert werden!
Feedback ob alles funzt wäre nett!
Zuletzt modifiziert von Lord|Schirmer am 03.05.2010 - 13:02:59