Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Gästebuch 01.03.01
Forum Sefrengo.org > Downloads > Archiv > Module
Olaf
Modulname:
---------------------------------------------------------------------------
Gästebuch

Status:
---------------------------------------------------------------------------
stable

Bechreibung:
---------------------------------------------------------------------------
Das Gaestebuch bietet Besuchern der Webseite eine Nachricht zu hinterlassen. Es ist unter anderem einstellbar, was für Felder dem User zur Verfügung stehen sollen, wieviele Einträge pro Seite angezeigt werden sollen und ob es bei einem neuen Eintrag eine Email an den Administrator geben soll.
Das Modul kann auch als Kommentarmodul eingesetzt werden.

Features:
---------------------------------------------------------------------------
- Smileys lassen sich per JS eingeben
- XHTML-konformer Output
- Emailbenachtigung bei einem neuen Eintrag- Navigation
- Die Reihenfolge und Anzahl der Ausgabe kann konfiguriert werden
- Emailbenachtigung neu einem neuen Eintrag
- Smileys können nun als img dargestellt werden, Konfigurierbar
- CSS-Klassen für jedes Eingabefeld definiert
- die Formularfelder könne jetzt überprüft werden, Konfigurierbar
- Config normal/ erweitert/ versteckt überarbeitet
- ein zweites Kommentarfeld hinzugefügt (z.B. für Antworten)
- einzelne Template für Ort und das zweite Kommentarfeld hinzugefügt
- Separates Template für die Eingabemaske im Backend
- Fehlermeldung erweitert
- Captcha Spam-Schutz
- Spamschutz (es gibt eine Fehlermeldung wenn versucht wird eines der Badwords in der Nachricht anzugeben)

To-Do:
---------------------------------------------------------------------------

Autor(en):
---------------------------------------------------------------------------
Reto Haldemann v/o Mistral
Design: Olaf
Smiley-JS: wojewski, Olaf

Lizenz:
---------------------------------------------------------------------------
GPL

Benötigte Sefrengo Version:
---------------------------------------------------------------------------
= 01.03.01 inkl. Bugfix "API: GUI Pager" http://forum.sefrengo.org/index.php?showtopic=720&hl=

Installation:
---------------------------------------------------------------------------
Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Design->Module". Am unteren Ende des Bereichs befindet sich ein Uploadfeld. Wählen Sie hier die<br>gewünschte "*.cmsmod"- Datei aus. Mit einem Klick auf das Diskettensymbol <br>wird das Modul in das CMS importiert. Das Modul ist nun innerhalb des CMS<br>nutzbar.

Dokumentation:
---------------------------------------------------------------------------
- nicht vorhanden

Bemerkung:
---------------------------------------------------------------------------
Hallo zusammen.
Für die Smilyes müssen die Bilder mit dem Ordner 'smileys' ins Verzeichnis 'cms/mod' kopiert werden.<br>Wenn das default Layout verwendet wird muss auch noch die CSS-Datei importiert werden (gb.css).
Dort muss in der CSS-Regel 'form #gast .gb' euer Domain eingetragen werden, damit beim Eintrag erstellen die möglchen Smileys ausgegeben werden.

Changelog
---------------------------------------------------------------------------
Current versionnumber is 01.03.01 - released 16.03.2007
------------------------------------------------------------------------------------------------
+ Javascript für Smileys
^ CSS

Wojewski hatte sich ja was einfallen lassen die smileys über JS anzustoßen. Ich habs mal ins Modul reingepackt. Ich hoffe es klappt überall. Die CSS hat sich geändert!!!!

Ach so, ich häng mal noch nen Screen ran...
Klicken um den Anhang anzusehenKlicken um den Anhang anzusehen
FireFlyer
Möchte nochmal einen FR aufgreifen und zwar der zum moderieren des Gästebuches.
Ich muß gleich voraus schicken, daß ich beim php lernen bin und mich einfach nicht an die Sache traue.

Man kann doch ein verstecktes Feld bei der Eingabe im Gästebuch mitgeben, daß die Zahl "1" beinhaltet und in die DB (cms_content_external) schreibt z.B. unter der idtype "gb_mod" (für moderiert).
Die Zahl möchte ich aus dem Grund, damit ich bei der öffentlichen Ansicht nur Einträge mit der value "0" habe.

In der Konfiguration des Moduls unter dem Reiter "Administrativ" kann man ja dann auswählen, ob diese obere Routine angewandt werden soll.
Also: Moderation an/aus

Jetzt könnte man dies auch auf zwei arten lösen, um den Beitrag freizuschalten oder zu löschen.
1. Die Mail für neuen Eintrag einen Link mitgeben, der den Inhalt Value von "1" auf "0" schreibt, damit er sichtbar wird!
2. Die sichere Methode, da nicht jeder "mails bei eintrag" aktiviert hat, eine Liste ausgeben, bei der man den Beitrag löschen oder freigeben kann!

Wäre dankbar wenn mir jemand behilflich sein könnte! cool.gif

Gruß
FireFlyer
Olaf
ZITAT(FireFlyer @ Wed. 21. March 2007, 18:56) *
Ich muß gleich voraus schicken, daß ich beim php lernen bin und mich einfach nicht an die Sache traue.

Ach, dann warten wir einfach bis du dich traust rolleyes.gif

Im Ernst, ich trau mich auch nicht.
amk
was'n das für'n haufen angsthasen hier laugh.gif
speedweb
Hallo,
da habe ich mal was in diese richtung gemacht.
leider noch mit dem DEDI Gästebuch.

Ich habe das Komentarfeld dazu verwendet.
bei einem Eintrag erscheint ein Text der darauf hinweist dass der Beitrag erst nach kontrolle
zum lesen ist. Der administrator kann dann im Backend im Komentarfeld eine 1 eintragen damit der
Beitrag angezeigt wird oder den Eintrag löschen.

Wenn ein neues DB feld eingebaut werden würde wäre somit das ganze schon gelöst.
Nur habe ich im moment keine Zeit dazu Module zu erweitern die ich nicht benötige.
Vielleicht will das ja wer anders in angriff nehmen.
Ich kann dann die bisherigen änderungen auch bereitstellen (Code Snips)
Diese funktionieren in SF sicher auch.

Gruss Thomas
FireFlyer
wer würde denn sich mit mir das trauen.
Im Backend hat ich schon die neue Option "Moderiert" drin, jetzt geht es nur ans Eingemachte mit den Abfragen.
Is recht komplex das Modul, aber mit Hilfe (und was dazu lernen) könnte man das schaffen!

Freiwillige vor...
FireFlyer
@speedweb
ich hab das Gästebuch jetzt soweit auf Vordermann gebracht, daß nur noch die Verknüpfung zwischen DB-Feld gb_moderated und der Ausgabe programmiert werden muß.

Ich kann dir ja das bisherige Modul dann mal zukommen lassen. Bis jetzt ist das Feld noch sichtbar und kann jeden Wert annehmen.

P.S: Gästebuch 01.03.01 enthält in der Konfiguration eine falsche Beschriftung:

// Email an Admin
$mip_form['27']['desc'] = 'Smileys nicht als Bilder darstellen?';
$mip_form['27']['cat'] = 'chk';
$mip_form['27']['option_var']['0'] = 'MOD_VAR[27]';
$mip_form['27']['option_val']['0'] = $cms_mod['value']['27'];
$mip_form['27']['option_desc']['0'] = 'ja';
$mip_form['27']['option_val_select']['0'] = 'false';

muß heißen:

// Smileys als Bilder
$mip_form['27']['desc'] = 'Smileys nicht als Bilder darstellen?';
$mip_form['27']['cat'] = 'chk';
$mip_form['27']['option_var']['0'] = 'MOD_VAR[27]';
$mip_form['27']['option_val']['0'] = $cms_mod['value']['27'];
$mip_form['27']['option_desc']['0'] = 'ja';
$mip_form['27']['option_val_select']['0'] = 'false';
speedweb
Hallo,
sobald ich wieder ein wenig mehr Zeit habe kann ich mir den Rest mal ansehen.
Im grunde genommen muss da ja nicht mehr alzuviel gemacht werden.
- das neue Feld mit in die Abfrage nehmen
- die Kontrollschleife einbauen (vom Komentarfeld auf das neue DB Feld umstellen)
- Vielleicht einen Link generieren über den im E-Mail der Beitrag freigeschalten wird.

Gruss Thomas
FireFlyer
Konfiguration:
CODE
<?php
//
//0: Schriftart
//1: Schriftart Eingabefelder
//8: Anzahl der Eintraege
//9: Frontend-Template
//10: Final-Template
//11: Link fuer einen neuen Eintrag
//12: Link zum editieren
//13: Link zum loeschen
//14: Link zur URL
//15: Link zur eMail
//16: Backend-Template
//17: Template zur location
//18: Schriftart
//19: Schriftart Eingabefelder (nicht verwendet)
//20: Template für comment2
//21: Template fuer Eintrag erstellen Frontend
//22: Checkbox Mail senden
//23: Email-Adresse
//24: Email-Template
//25: Email-Betreff
//26: Checkbox Moderation
//27: Smileys als Bilder
//28: Reihenfolge der Ausgabe
//29: Formularfelder testen
//30: Fehlertext
//31: Schriftart Eingabefelde {but_send}
//32: Schriftart fuer Eingabefelde name
//33: Schriftart fuer Eingabefelde email
//34: Schriftart fuer Eingabefelde {homepage}
//35: Schriftart fuer Eingabefelde {location}
//36: Schriftart fuer Eingabefelde {comment}
//37: Schriftart fuer Eingabefelde {comment2}
//38: Template fuer Eintrag erstellen/bearbeiten Frontend
//39: Navitrennzeichen
//40: Navianzahl
//41: Navi TextPrev
//42: Navi TextNext
//43: Navi TextFirst
//44: Navi TextLast
//71 captchaimage verwenden
//73 txt captchaimage length (7)
//74 txt captchaimage width (7)
//75 txt captchaimage height (7)
//76 txt captchaimage attributes (7)
//77 txt captchaimage styleset (7)
//78 txtarea captchaimage template (7)
//91 Badwords
//92 Fehlermeldung bei Spamversuch mit Badwords

//configmode
$mip_form['99']['desc'] = 'Konfigurationsmodus';
$mip_form['99']['cat'] = 'option';
$mip_form['99']['size'] = '1';
$mip_form['99']['option_desc'][] = 'Normal';
$mip_form['99']['option_val'][] = '';
$mip_form['99']['option_desc'][] = 'Ausgeblendet';
$mip_form['99']['option_val'][] = 'hidden';
$mip_form['99']['cms_var'] = 'MOD_VAR[99]';
$mip_form['99']['cms_val'] = $cms_mod['value']['99'];
$mip_form['99']['flag'] = 'reload';
mip_formsp($mip_form['99']);//configmode

//hidden config
if($cms_mod['value']['99'] == 'hidden'){
foreach($cms_mod['value'] AS $ke=>$va){
if($ke != '99'){
?>
<input name="MOD_VAR[<?php echo $ke; ?>]" type="hidden" value="<?php echo htmlentities($va, ENT_COMPAT, 'UTF-8');?>">
<?php
}
}
}
//normal config (not hidden config)
else if($cms_mod['value']['99'] == '' || $cms_mod['value']['99'] == 'advanced'){

// Schriftart
$mip_form['0']['desc'] = 'CSS '.$mod_lang['gen_font'];
$mip_form['0']['cat'] = 'app_css';
$mip_form['0']['output_cat'] = 'option';
$mip_form['0']['cms_var'] = 'MOD_VAR[0]';
$mip_form['0']['cms_val'] = $cms_mod['value']['0'];
$mip_form['0']['cms_val_default'] = 'font2';
$mip_form['0']['flag'] = 'class_only';

// Schriftart fuer Eingabefelder
$mip_form['1']['desc'] = 'CSS für die Formulareinträge';
$mip_form['1']['cat'] = 'app_css';
$mip_form['1']['output_cat'] = 'option';
$mip_form['1']['cms_var'] = 'MOD_VAR[1]';
$mip_form['1']['cms_val'] = $cms_mod['value']['1'];
$mip_form['1']['cms_val_default'] = 'font1';
$mip_form['1']['flag'] = 'class_only';

// Navigation template vorwaerts aktiv
$mip_form['39']['cat'] = 'txt';
$mip_form['39']['desc'] = 'Trennzeichen für die Navigation';
$mip_form['39']['cms_var'] = 'MOD_VAR[39]';
$mip_form['39']['cms_val'] = $cms_mod['value']['39'];
$mip_form['39']['cms_val_default'] = ' | ';

// Navigation Anzahl Navipunkte
$mip_form['40']['cat'] = 'txt';
$mip_form['40']['desc'] = 'Anzahl Navipunkte vor und nach der aktuellen Seite';
$mip_form['40']['cms_var'] = 'MOD_VAR[40]';
$mip_form['40']['cms_val'] = $cms_mod['value']['40'];
$mip_form['40']['cms_val_default'] = '3';

// Navigation text_prev
$mip_form['41']['cat'] = 'txt';
$mip_form['41']['desc'] = 'Template für vorherige Seite';
$mip_form['41']['cms_var'] = 'MOD_VAR[41]';
$mip_form['41']['cms_val'] = $cms_mod['value']['41'];
$mip_form['41']['cms_val_default'] = '‹';

// Navigation text_next
$mip_form['42']['cat'] = 'txt';
$mip_form['42']['desc'] = 'Template für naechste Seite';
$mip_form['42']['cms_var'] = 'MOD_VAR[42]';
$mip_form['42']['cms_val'] = $cms_mod['value']['42'];
$mip_form['42']['cms_val_default'] = '›';

// Navigation text_first
$mip_form['43']['cat'] = 'txt';
$mip_form['43']['desc'] = 'Template für erste Seite';
$mip_form['43']['cms_var'] = 'MOD_VAR[43]';
$mip_form['43']['cms_val'] = $cms_mod['value']['43'];
$mip_form['43']['cms_val_default'] = '«';

// Navigation text_last
$mip_form['44']['cat'] = 'txt';
$mip_form['44']['desc'] = 'Template für letzte Seite';
$mip_form['44']['cms_var'] = 'MOD_VAR[44]';
$mip_form['44']['cms_val'] = $cms_mod['value']['44'];
$mip_form['44']['cms_val_default'] = '»';

// Anzahl der Eintraege
$mip_form['8']['cat'] = 'option';
$mip_form['8']['desc'] = 'Anzahl Einträge pro Seite';
$mip_form['8']['cms_var'] = 'MOD_VAR[8]';
$mip_form['8']['cms_val'] = $cms_mod['value']['8'];
$mip_form['8']['cms_val_default'] = '10';
$mip_form['8']['option_desc']['0'] = '5';
$mip_form['8']['option_val']['0'] = '5';
$mip_form['8']['option_desc']['1'] = '10';
$mip_form['8']['option_val']['1'] = '10';
$mip_form['8']['option_desc']['2'] = '15';
$mip_form['8']['option_val']['2'] = '15';
$mip_form['8']['option_desc']['3'] = '20';
$mip_form['8']['option_val']['3'] = '20';
$mip_form['8']['option_desc']['4'] = '25';
$mip_form['8']['option_val']['4'] = '25';
$mip_form['8']['option_desc']['5'] = '50';
$mip_form['8']['option_val']['5'] = '50';
$mip_form['8']['option_desc']['6'] = '100';
$mip_form['8']['option_val']['6'] = '100';
$mip_form['8']['option_desc']['7'] = 'alle';
$mip_form['8']['option_val']['7'] = '0';


// ----------------------------------------------------------------------------
// Frontend-Template
$mip_form['9']['cat'] = 'txtarea';
$mip_form['9']['type'] = 'long';
$mip_form['9']['rows'] = '7';
$mip_form['9']['desc'] = '<small>Templatevariablen: {number}, {name}, {email}, {homepage}, {location}, {comment}, {comment2}, {created}, {newentry}<br>Admin-Variablen: {lastmodified}, {ip}, {editentry}, {deleteentry}</small><br>Frontend:';
$mip_form['9']['cms_var'] = 'MOD_VAR[9]';
$mip_form['9']['cms_val'] = $cms_mod['value']['9'];
$mip_form['9']['cms_val_default'] = '<div class="gb">
<div class="gbnum">#{number}</div>
<p class="gbhead">am {created} Uhr schrieb {name} {location} {email} {homepage}</p>
<p class="gbcomm">{comment}</p>
{comment2}
</div>
';

// Backend-Template
$mip_form['16']['cat'] = 'txtarea';
$mip_form['16']['type'] = 'long';
$mip_form['16']['rows'] = '7';
$mip_form['16']['desc'] = 'Backend:';
$mip_form['16']['cms_var'] = 'MOD_VAR[16]';
$mip_form['16']['cms_val'] = $cms_mod['value']['16'];
$mip_form['16']['cms_val_default'] = '<div class="gb">
<div class="gbnum">#{number}</div>
<p class="gbhead">am {created} Uhr schrieb {name} {location} {email} {homepage}</p>
<p class="gbcomm">{comment}</p>
{comment2}
<p class="gbcomm">Created: {created}<br />Lastmodified: {lastmodified}<br />IP: {ip}</p>
{editentry} {deleteentry}
</div>
';

// Smileys als Bilder
$mip_form['27']['desc'] = 'Smileys nicht als Bilder darstellen?';
$mip_form['27']['cat'] = 'chk';
$mip_form['27']['option_var']['0'] = 'MOD_VAR[27]';
$mip_form['27']['option_val']['0'] = $cms_mod['value']['27'];
$mip_form['27']['option_desc']['0'] = 'ja';
$mip_form['27']['option_val_select']['0'] = 'false';


// ----------------------------------------------------------------------------
// Final-Template
$mip_form['10']['cat'] = 'txtarea';
$mip_form['10']['type'] = 'long';
$mip_form['10']['rows'] = '7';
$mip_form['10']['desc'] = '<small>Mögliche Templatevariablen: {newentry}, {comments}, {navi}';
$mip_form['10']['cms_var'] = 'MOD_VAR[10]';
$mip_form['10']['cms_val'] = $cms_mod['value']['10'];
$mip_form['10']['cms_val_default'] = '<div id="gast">
{newentry}
<p class="gbhead">{navi}</p>
{comments}
<p class="gbhead">{navi}</p>
{newentry}
</div>';

// Ausgabenreihenfolge
$mip_form['28']['cat'] = 'option';
$mip_form['28']['desc'] = 'Reihenfolge der Ausgabe';
$mip_form['28']['cms_var'] = 'MOD_VAR[28]';
$mip_form['28']['cms_val'] = $cms_mod['value']['28'];
$mip_form['28']['cms_val_default'] = 'SORT_DESC';
$mip_form['28']['option_desc']['0'] = 'vorwärts';
$mip_form['28']['option_val']['0'] = 'SORT_ASC';
$mip_form['28']['option_desc']['1'] = 'rückwärts';
$mip_form['28']['option_val']['1'] = 'SORT_DESC';

// ----------------------------------------------------------------------------
// Link fuer einen neuen Eintrag
$mip_form['11']['cat'] = 'txtarea';
$mip_form['11']['type'] = 'long';
$mip_form['11']['rows'] = '1';
$mip_form['11']['desc'] = 'Link für einen neuen Eintrag<br><small>Mögliche Templatevariable: {url}</small>';
$mip_form['11']['cms_var'] = 'MOD_VAR[11]';
$mip_form['11']['cms_val'] = $cms_mod['value']['11'];
$mip_form['11']['cms_val_default'] = '<p class="gbneu"><a href="{url}">Eintrag hinzufügen</a></p>';

// Link zum editieren
$mip_form['12']['cat'] = 'txtarea';
$mip_form['12']['type'] = 'long';
$mip_form['12']['rows'] = '1';
$mip_form['12']['desc'] = 'Link zum editieren eines Eintrags<br><small>Mögliche Templatevariable: {url}</small>';
$mip_form['12']['cms_var'] = 'MOD_VAR[12]';
$mip_form['12']['cms_val'] = $cms_mod['value']['12'];
$mip_form['12']['cms_val_default'] = '<a href="{url}">Eintrag bearbeiten</a>';

// Link zum loeschen
$mip_form['13']['cat'] = 'txtarea';
$mip_form['13']['type'] = 'long';
$mip_form['13']['rows'] = '1';
$mip_form['13']['desc'] = 'Link zum löschen eines Eintrags<br><small>Mögliche Templatevariable: {url}</small>';
$mip_form['13']['cms_var'] = 'MOD_VAR[13]';
$mip_form['13']['cms_val'] = $cms_mod['value']['13'];
$mip_form['13']['cms_val_default'] = '<a href="{url}">Eintrag löschen</a>';

// Link zur URL
$mip_form['14']['cat'] = 'txtarea';
$mip_form['14']['type'] = 'long';
$mip_form['14']['rows'] = '1';
$mip_form['14']['desc'] = 'Link zur Homepage des Users<br><small>Mögliche Templatevariable: {url}</small>';
$mip_form['14']['cms_var'] = 'MOD_VAR[14]';
$mip_form['14']['cms_val'] = $cms_mod['value']['14'];
$mip_form['14']['cms_val_default'] = ' | <a href="http://{url}">Homepage</a>';

// Link zur eMail
$mip_form['15']['cat'] = 'txtarea';
$mip_form['15']['type'] = 'long';
$mip_form['15']['rows'] = '1';
$mip_form['15']['desc'] = 'Link für eMail-senden<br><small>Mögliche Templatevariable: {url}</small>';
$mip_form['15']['cms_var'] = 'MOD_VAR[15]';
$mip_form['15']['cms_val'] = $cms_mod['value']['15'];
$mip_form['15']['cms_val_default'] = ' | <a href="mailto:{url}">eMail</a>';

// Template zur location
$mip_form['17']['cat'] = 'txtarea';
$mip_form['17']['type'] = 'long';
$mip_form['17']['rows'] = '1';
$mip_form['17']['desc'] = 'Template für den Ort<br><small>Mögliche Templatevariable: {loc}</small>';
$mip_form['17']['cms_var'] = 'MOD_VAR[17]';
$mip_form['17']['cms_val'] = $cms_mod['value']['17'];
$mip_form['17']['cms_val_default'] = 'aus {loc}';

// Template zur comment2
$mip_form['20']['cat'] = 'txtarea';
$mip_form['20']['type'] = 'long';
$mip_form['20']['rows'] = '1';
$mip_form['20']['desc'] = 'Template für den Kommentar2<br><small>Mögliche Templatevariable: {com2}</small>';
$mip_form['20']['cms_var'] = 'MOD_VAR[20]';
$mip_form['20']['cms_val'] = $cms_mod['value']['20'];
$mip_form['20']['cms_val_default'] = '<p class="gbantw"><strong>Antwort:</strong><br />{com2}</p>';

// ----------------------------------------------------------------------------
// Schriftart
$mip_form['18']['desc'] = 'CSS '.$mod_lang['gen_font'];
$mip_form['18']['cat'] = 'app_css';
$mip_form['18']['output_cat'] = 'option';
$mip_form['18']['cms_var'] = 'MOD_VAR[18]';
$mip_form['18']['cms_val'] = $cms_mod['value']['18'];
$mip_form['18']['cms_val_default'] = 'font1';
$mip_form['18']['flag'] = 'class_only';

// Schriftart fuer Eingabefelde {but_send}
$mip_form['31']['desc'] = 'CSS für die Eingabefelder {but_send}';
$mip_form['31']['cat'] = 'app_css';
$mip_form['31']['output_cat'] = 'option';
$mip_form['31']['cms_var'] = 'MOD_VAR[31]';
$mip_form['31']['cms_val'] = $cms_mod['value']['31'];
$mip_form['31']['cms_val_default'] = 'font1';
$mip_form['31']['flag'] = 'class_only';

// Schriftart fuer Eingabefelde name
$mip_form['32']['desc'] = 'CSS für die Eingabefelder {name}';
$mip_form['32']['cat'] = 'app_css';
$mip_form['32']['output_cat'] = 'option';
$mip_form['32']['cms_var'] = 'MOD_VAR[32]';
$mip_form['32']['cms_val'] = $cms_mod['value']['32'];
$mip_form['32']['cms_val_default'] = 'font1';
$mip_form['32']['flag'] = 'class_only';

// Schriftart fuer Eingabefelde email
$mip_form['33']['desc'] = 'CSS für die Eingabefelder {email}';
$mip_form['33']['cat'] = 'app_css';
$mip_form['33']['output_cat'] = 'option';
$mip_form['33']['cms_var'] = 'MOD_VAR[33]';
$mip_form['33']['cms_val'] = $cms_mod['value']['33'];
$mip_form['33']['cms_val_default'] = 'font1';
$mip_form['33']['flag'] = 'class_only';

// Schriftart fuer Eingabefelde {homepage}
$mip_form['34']['desc'] = 'CSS für die Eingabefelder {homepage}';
$mip_form['34']['cat'] = 'app_css';
$mip_form['34']['output_cat'] = 'option';
$mip_form['34']['cms_var'] = 'MOD_VAR[34]';
$mip_form['34']['cms_val'] = $cms_mod['value']['34'];
$mip_form['34']['cms_val_default'] = 'font1';
$mip_form['34']['flag'] = 'class_only';

// Schriftart fuer Eingabefelde {location}
$mip_form['35']['desc'] = 'CSS für die Eingabefelder {location}';
$mip_form['35']['cat'] = 'app_css';
$mip_form['35']['output_cat'] = 'option';
$mip_form['35']['cms_var'] = 'MOD_VAR[35]';
$mip_form['35']['cms_val'] = $cms_mod['value']['35'];
$mip_form['35']['cms_val_default'] = 'font1';
$mip_form['35']['flag'] = 'class_only';

// Schriftart fuer Eingabefelde {comment}
$mip_form['36']['desc'] = 'CSS für die Eingabefelder {comment}';
$mip_form['36']['cat'] = 'app_css';
$mip_form['36']['output_cat'] = 'option';
$mip_form['36']['cms_var'] = 'MOD_VAR[36]';
$mip_form['36']['cms_val'] = $cms_mod['value']['36'];
$mip_form['36']['cms_val_default'] = 'font1';
$mip_form['36']['flag'] = 'class_only';

// Schriftart fuer Eingabefelde {comment}
$mip_form['37']['desc'] = 'CSS für die Eingabefelder {comment2}';
$mip_form['37']['cat'] = 'app_css';
$mip_form['37']['output_cat'] = 'option';
$mip_form['37']['cms_var'] = 'MOD_VAR[37]';
$mip_form['37']['cms_val'] = $cms_mod['value']['37'];
$mip_form['37']['cms_val_default'] = 'font1';
$mip_form['37']['flag'] = 'class_only';

// Template fuer Eintrag erstellen Frontend
$mip_form['21']['cat'] = 'txtarea';
$mip_form['21']['type'] = 'long';
$mip_form['21']['rows'] = '7';
$mip_form['21']['desc'] = '<small>Mögliche Templatevariablen: {name}, {email}, {homepage}, {location}, {comment}, {comment2}, {captcha}, {but_abort}, {but_send}<br>{smileys}, {smileys2} (nur Backend)</small><br>Frontend:';
$mip_form['21']['cms_var'] = 'MOD_VAR[21]';
$mip_form['21']['cms_val'] = $cms_mod['value']['21'];
$mip_form['21']['cms_val_default'] = '<div id="gast">
<div class="gb">
{failure}<br /><label for="name">Name*</label>{name}<br />
<label for="email">eMail*</label>{email}<br />
<label for="url">Homepage</label>{homepage}<br />
<label for="location">Wohnort</label>{location}<br />
<label for="comment">Kommentar*</label>{comment}<br />
<label for="moderated">moderiert*</label>{moderated}<br />
<p>* = Pflichtfelder</p>
{smileys}
{but_send}
</div>
</div>
';

// Template fuer Eintrag erstellen/bearbeiten backend
$mip_form['38']['cat'] = 'txtarea';
$mip_form['38']['type'] = 'long';
$mip_form['38']['rows'] = '7';
$mip_form['38']['desc'] = 'Backend:';
$mip_form['38']['cms_var'] = 'MOD_VAR[38]';
$mip_form['38']['cms_val'] = $cms_mod['value']['38'];
$mip_form['38']['cms_val_default'] = '<div id="gast">
<div class="gb">
{failure}<br /><label for="name">Name:</label>{name}<br />
<label for="email">eMail:</label>{email}<br />
<label for="url">Homepage:</label>{homepage}<br />
<label for="location">Wohnort:</label>{location}<br />
<label for="comment">Kommentar:</label>{comment}<br />
{smileys}
<label for="comment2">Antwort:</label>{comment2}<br />
{smileys2}
{but_send}
</div>
</div>
';


//Formularfelder testen
$mip_form['29']['desc'] = 'Folgende Formularfelder testen';
$mip_form['29']['cat'] = 'option';
$mip_form['29']['flag'] = 'multiple';
$mip_form['29']['size'] = '5';
$mip_form['29']['cms_var'] = 'MOD_VAR[29]';
$mip_form['29']['cms_val'] = $cms_mod['value']['29'];
$mip_form['29']['cms_val_default'] = 'name,email,comment';
$mip_form['29']['option_desc'][] = 'name';
$mip_form['29']['option_val'][] = 'name';
$mip_form['29']['option_desc'][] = 'email';
$mip_form['29']['option_val'][] = 'email';
$mip_form['29']['option_desc'][] = 'homepage';
$mip_form['29']['option_val'][] = 'url';
$mip_form['29']['option_desc'][] = 'location';
$mip_form['29']['option_val'][] = 'location';
$mip_form['29']['option_desc'][] = 'comment';
$mip_form['29']['option_val'][] = 'comment';
$mip_form['29']['option_desc'][] = 'comment2';
$mip_form['29']['option_val'][] = 'com2';
// Fehlertext
$mip_form['30']['cat'] = 'txtarea';
$mip_form['30']['type'] = 'long';
$mip_form['30']['rows'] = '1';
$mip_form['30']['desc'] = 'Text wenn ein Formularfeld nicht korrekt ausgefüllt wurde.';
$mip_form['30']['cms_var'] = 'MOD_VAR[30]';
$mip_form['30']['cms_val'] = $cms_mod['value']['30'];
$mip_form['30']['cms_val_default'] = '<p><strong>Folgende Felder wurden nicht korrekt ausgefüllt:<br />{field}</strong></p>';


// ----------------------------------------------------------------------------
// Moderation
$mip_form['26']['desc'] = 'Moderation?';
$mip_form['26']['cat'] = 'chk';
$mip_form['26']['option_var']['0'] = 'MOD_VAR[26]';
$mip_form['26']['option_val']['0'] = $cms_mod['value']['26'];
$mip_form['26']['option_desc']['0'] = 'ja';
$mip_form['26']['option_val_select']['0'] = 'true';

// Email an Admin
$mip_form['22']['desc'] = 'Email bei neuem Eintrag?';
$mip_form['22']['cat'] = 'chk';
$mip_form['22']['option_var']['0'] = 'MOD_VAR[22]';
$mip_form['22']['option_val']['0'] = $cms_mod['value']['22'];
$mip_form['22']['option_desc']['0'] = 'ja';
$mip_form['22']['option_val_select']['0'] = 'true';

// Email-Adresse
$mip_form['23']['desc'] = 'Empfänger-Adresse';
$mip_form['23']['cat'] = 'txt';
$mip_form['23']['cms_var'] = 'MOD_VAR[23]';
$mip_form['23']['cms_val'] = $cms_mod['value']['23'];
$mip_form['23']['cms_val_default'] = $cfg_client['newsfrom'];

// Email-Template
$mip_form['24']['cat'] = 'txtarea';
$mip_form['24']['type'] = 'long';
$mip_form['24']['rows'] = '7';
$mip_form['24']['desc'] = 'Email-Template:';
$mip_form['24']['cms_var'] = 'MOD_VAR[24]';
$mip_form['24']['cms_val'] = $cms_mod['value']['24'];
$mip_form['24']['cms_val_default'] = "Name: {name}
eMail: {email}
Homepage: {homepage}
Wohnort: {location}
Eintrag: {comment}
Erstellt: {created}
IP: {ip}
Link: {link}";

// Email-Betreff
$mip_form['25']['desc'] = 'Email-Betreff ';
$mip_form['25']['cat'] = 'txt';
$mip_form['25']['cms_var'] = 'MOD_VAR[25]';
$mip_form['25']['cms_val'] = $cms_mod['value']['25'];
$mip_form['25']['cms_val_default'] = 'neuer Gaestebuch-Eintrag';

// ----------------------------------------------------------------------------
//Captchaimage styleset
$mip_form['71']['cat'] = 'option';
$mip_form['71']['desc'] = 'Captcha verwenden';
$mip_form['71']['size'] = '1';
$mip_form['71']['option_desc'][] = 'Nein';
$mip_form['71']['option_val'][] = 'false';
$mip_form['71']['option_desc'][] = 'Ja';
$mip_form['71']['option_val'][] = 'true';
$mip_form['71']['cms_val_default'] = 'false';
$mip_form['71']['cms_var'] = 'MOD_VAR[71]';
$mip_form['71']['cms_val'] = $cms_mod['value']['71'];

//Captchaimage length
$mip_form['73']['cat'] = 'txt';
$mip_form['73']['desc'] = 'Captcha-Code Länge <small>(Anzahl der einzugebenen Zeichen)</small>';
$mip_form['73']['cms_var'] = 'MOD_VAR[73]';
$mip_form['73']['cms_val'] = $cms_mod['value']['73'];
$mip_form['73']['cms_val_default'] = '4';

//Captchaimage width
$mip_form['74']['cat'] = 'txt';
$mip_form['74']['desc'] = 'Captcha-Code Bildbreite <small>(in Pixeln)</small>';
$mip_form['74']['cms_var'] = 'MOD_VAR[74]';
$mip_form['74']['cms_val'] = $cms_mod['value']['74'];
$mip_form['74']['cms_val_default'] = '100';

//Captchaimage height
$mip_form['75']['cat'] = 'txt';
$mip_form['75']['desc'] = 'Captcha-Code Bildhöhe <small>(in Pixeln)</small>';
$mip_form['75']['cms_var'] = 'MOD_VAR[75]';
$mip_form['75']['cms_val'] = $cms_mod['value']['75'];
$mip_form['75']['cms_val_default'] = '30';
$mip_form['75']['tab'] = '0';

//Captchaimage attributes
$mip_form['76']['cat'] = 'txt';
$mip_form['76']['desc'] = 'Captcha-Code optionale, zusätzliche Imagetag-Attribute';
$mip_form['76']['cms_var'] = 'MOD_VAR[76]';
$mip_form['76']['cms_val'] = $cms_mod['value']['76'];
$mip_form['76']['cms_val_default'] = '';
$mip_form['76']['tab'] = '0';

//Captchaimage styleset
$mip_form['77']['cat'] = 'option';
$mip_form['77']['desc'] = 'Captcha-Code Bilddesign';
$mip_form['77']['size'] = '1';
$mip_form['77']['option_desc'][] = 'throwCHARS';
$mip_form['77']['option_val'][] = '';
$mip_form['77']['option_desc'][] = 'binCLEAR';
$mip_form['77']['option_val'][] = '1';
$mip_form['77']['option_desc'][] = 'psychoPIXEL';
$mip_form['77']['option_val'][] = '2';
$mip_form['77']['cms_var'] = 'MOD_VAR[77]';
$mip_form['77']['cms_val'] = $cms_mod['value']['77'];

//Template Captchaimage
$mip_form['78']['desc'] = 'Template Capturebild<br>
<small>Mögliche Templatevariablen: {image}, {textfield}, {hiddentoken}</small>';
$mip_form['78']['cat'] = 'txtarea';
$mip_form['78']['rows'] = '1';
$mip_form['78']['type'] = 'long';
$mip_form['78']['cms_var'] = 'MOD_VAR[78]';
$mip_form['78']['cms_val'] = $cms_mod['value']['78'];
$mip_form['78']['cms_val_default'] = '{image} {textfield}{hiddentoken}';


// ----------------------------------------------------------------------------

// Badword Liste
$mip_form['91']['desc'] = 'Badwords:';
$mip_form['91']['cat'] = 'txtarea';
$mip_form['91']['type'] = 'long';
$mip_form['91']['rows'] = '7';
$mip_form['91']['cms_var'] = 'MOD_VAR[91]';
$mip_form['91']['cms_val'] = $cms_mod['value']['91'];
$mip_form['91']['cms_val_default'] = 'Nice Site, Good Work, xxx';

// Badword Fehlermeldung
$mip_form['92']['cat'] = 'txtarea';
$mip_form['92']['type'] = 'long';
$mip_form['92']['rows'] = '1';
$mip_form['92']['desc'] = 'Fehlermeldung:';
$mip_form['92']['cms_var'] = 'MOD_VAR[92]';
$mip_form['92']['cms_val'] = $cms_mod['value']['92'];
$mip_form['92']['cms_val_default'] = 'Spam Versuch';

// ----------------------------------------------------------------------------


mip_forms_tabpane_beginp();
mip_forms_tabitem_beginp('Allgemein');

echo '<p><strong>Einstellungen die Ausgabe der Einträge</strong></p>';
mip_formsp($mip_form['0']); // Schriftart
mip_formsp($mip_form['1']); // Schriftart Eingabefelder
mip_formsp($mip_form['27']); // Smileys als Bilder
mip_formsp($mip_form['29']); // Formularfelder testen
mip_formsp($mip_form['30']); // Fehlertext


echo '<br /><p><strong>Navigation</strong></p>';
mip_formsp($mip_form['8']); // Anzahl der Eintraege
mip_formsp($mip_form['28']); // Reihenfolge der Ausgabe
mip_formsp($mip_form['39']); // Trennzeichen
mip_formsp($mip_form['40']); // Navianzahl
mip_formsp($mip_form['41']); // Trennzeichen
mip_formsp($mip_form['42']);
mip_formsp($mip_form['43']);
mip_formsp($mip_form['44']);

echo '<br /><p><strong>Einstellungen für Eintrag erstellen / bearbeiten</strong></p>';
mip_formsp($mip_form['18']); // Schriftart
//mip_formsp($mip_form['19']); // Schriftart Eingabefelder
mip_formsp($mip_form['31']); // Schriftart Eingabefelde {but_send}
mip_formsp($mip_form['32']); // Schriftart fuer Eingabefelde name
mip_formsp($mip_form['33']); // Schriftart fuer Eingabefelde email
mip_formsp($mip_form['34']); // Schriftart fuer Eingabefelde {homepage}
mip_formsp($mip_form['35']); // Schriftart fuer Eingabefelde {location}
mip_formsp($mip_form['36']); // Schriftart fuer Eingabefelde {comment}
mip_formsp($mip_form['37']); // Schriftart fuer Eingabefelde {comment2}

mip_forms_tabitem_endp();
mip_forms_tabitem_beginp('Template');

echo '<p><strong>Verbindungs - Template</strong></p>';
mip_formsp($mip_form['10']); // Final-Template

echo '<br /><p><strong>Einstellungen die Ausgabe der Einträge</strong></p>';
mip_formsp($mip_form['9']); // Frontend-Template
mip_formsp($mip_form['16']); // Backend-Template

echo '<br /><p><strong>Einstellungen für Eintrag erstellen / bearbeiten</strong></p>';
mip_formsp($mip_form['21']); // Template fuer Eintrag erstellen Frontend
mip_formsp($mip_form['38']); // Template fuer Eintrag erstellen/bearbeiten Backend

mip_forms_tabitem_endp();
mip_forms_tabitem_beginp('Links');
echo '<p><strong>Links</strong></p>';
mip_formsp($mip_form['11']); // Link fuer einen neuen Eintrag
mip_formsp($mip_form['12']); // Link zum editieren
mip_formsp($mip_form['13']); // Link zum loeschen
mip_formsp($mip_form['14']); // Link zur URL
mip_formsp($mip_form['15']); // Link zur eMail
mip_formsp($mip_form['17']); // Template zur location
mip_formsp($mip_form['20']); // Template für comment2 (nicht verwendet)

mip_forms_tabitem_endp();
mip_forms_tabitem_beginp('Administrativ');
echo '<p><strong>Moderation</strong></p>';
mip_formsp($mip_form['26']); // Moderation
echo '<p><strong>E-Mail</strong></p>';
mip_formsp($mip_form['22']); // Checkbox Mail senden
mip_formsp($mip_form['23']); // Email-Adresse
mip_formsp($mip_form['24']); // Email-Template
mip_formsp($mip_form['25']); // Email-Betreff

mip_forms_tabitem_endp();
mip_forms_tabitem_beginp('Sonstiges');

echo '<p><strong>Captcha</strong></p>';
mip_formsp($mip_form['71']);//captcha verwenden
mip_formsp($mip_form['73']);//txt captchaimage length
mip_formsp($mip_form['74']);//txt captchaimage width
mip_formsp($mip_form['75']);//txt captchaimage height
mip_formsp($mip_form['76']);//txt captchaimage attributes
mip_formsp($mip_form['77']);//txt captchaimage styleset
mip_formsp($mip_form['78']);//txt captchaimage styleset

echo '<br><p><strong>Anti-Spam: BAD WORD LIST</strong></p>';
//BAD-WORD LIST
mip_formsp($mip_form['91']); //Badwords
mip_formsp($mip_form['92']); //Fehlermeldung bei Spamversuch mit Badwords


mip_forms_tabitem_endp();
mip_forms_tabpane_endp();

// ----------------------------------------------------------------------------
}
unset($mip_form);

?>



Frontendausgabe:
CODE
<CMSPHP>
$is_dev = false;
</CMSPHP>


<CMSPHP:CACHE>

//Alle Variablen, die nur innerhalb des gecachten PHPs sichtbar sind, auch für dynamisches PHP zur Verfügung stellen
echo '<CMSPHP>';
if (is_array($cms_mod['value'])) {
foreach($cms_mod['value'] AS $k => $v){
echo '$mvars["'.$k.'"] = "'. addslashes($v) .'";'."\n";
}}
echo '</CMSPHP>';
</CMSPHP:CACHE>

<CMSPHP>

if($is_dev) {
include "D:/sefrengo/module eigene/Gaestebuch/1.3/Gaestebuch_output.php";
} else {


//
//0: Schriftart
//1: Schriftart Eingabefelder
//8: Anzahl der Eintraege
//9: Frontend-Template
//10: Final-Template
//11: Link fuer einen neuen Eintrag
//12: Link zum editieren
//13: Link zum loeschen
//14: Link zur URL
//15: Link zur eMail
//16: Backend-Template
//17: Template zur location
//18: Schriftart
//19: Schriftart Eingabefelder (nicht verwendet)
//20: Template für comment2
//21: Template fuer Eintrag erstellen Frontend
//22: Checkbox Mail senden
//23: Email-Adresse
//24: Email-Template
//25: Email-Betreff
//26: Checkbox Moderation
//27: Smileys als Bilder
//28: Reihenfolge der Ausgabe
//29: Formularfelder testen
//30: Fehlertext
//31: Schriftart Eingabefelde {but_send}
//32: Schriftart fuer Eingabefelde name
//33: Schriftart fuer Eingabefelde email
//34: Schriftart fuer Eingabefelde {homepage}
//35: Schriftart fuer Eingabefelde {location}
//36: Schriftart fuer Eingabefelde {comment}
//37: Schriftart fuer Eingabefelde {comment2}
//38: Template fuer Eintrag erstellen/bearbeiten Frontend
//39: Navitrennzeichen
//40: Navianzahl
//41: Navi TextPrev
//42: Navi TextNext
//43: Navi TextFirst
//44: Navi TextLast
//71 captchaimage verwenden
//73 txt captchaimage length (7)
//74 txt captchaimage width (7)
//75 txt captchaimage height (7)
//76 txt captchaimage attributes (7)
//77 txt captchaimage styleset (7)
//78 txtarea captchaimage template (7)
//91 Badwords
//92 Fehlermeldung bei Spamversuch mit Badwords

// zur Fehlersuche
//if(isset($test))
//{
// $mod['test'] = "true";
//}

if ( !function_exists('gaestebuch_checkInput') ) {
function gaestebuch_checkInput($check_string) {
global $name, $email, $url, $location, $comment, $comment2, $moderated;

$returnvalue ="";
//'required' => '/(\s|\S)/',
if( (! preg_match('/(\s|\S)/', $name)) && (substr_count($check_string,"name") >= 1 ) ){
$returnvalue .= "Name, ";
}
if( (! preg_match('/(\s|\S)/', $url)) && (substr_count($check_string,"url") >= 1 ) ){
$returnvalue .= "Homepage, ";
}
if( (! preg_match('/(\s|\S)/', $location)) && (substr_count($check_string,"location") >= 1 ) ){
$returnvalue .= "Wohnort, ";
}
if( (! preg_match('/(\s|\S)/', $comment)) && (substr_count($check_string,"comment") >= 1 ) ){
$returnvalue .= "Kommentar, ";
}
if( (! preg_match('/(\s|\S)/', $comment2)) && (substr_count($check_string,"com2") >= 1 ) ){
$returnvalue .= "Antwort, ";
}
if( (! preg_match('/(\s|\S)/', $moderated)) && (substr_count($check_string,"moderated") >= 1 ) ){
$returnvalue .= "Moderiert, ";
}

if (substr_count($check_string,"email") >= 1 ) {
//'email' => '/^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/',
if(! preg_match('/^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/', $email) ){
$returnvalue .= "eMail, ";
}
} else {
//'emailOrEmpty' => '/(^$)|(^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$)/'
if(! preg_match('/(^$)|(^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$)/', $email)) {
$returnvalue .= "eMail, ";
}
}
return $returnvalue;
} // end function
} // end if exist

if ( !function_exists('gaestebuch_renderSmileys') ) {
function gaestebuch_renderSmileys($text,$url) {

// the list of codes to be interpreted
$search = array(
'/( :\)| :-\)|:smile:)/i',
'/( :\/| :-\/|:undecided:)/i',
'/( ;\)| ;-\)|:wink:)/i',
'/( biggrin.gif| :-D|:cheesy:)/i',
'/( :\(| :-\(|:frown:)/i',
'/( :\'\(| :\'-\(|:cry:)/i',
'/( ohmy.gif| :-o|:shocked:)/i',
'/( 8\)| 8-\)|:cool:)/i',
'/( ::\)|rolleyes.gif)/i',
'/( tongue.gif| :-P|:tongue:)/i',
'/( :X| :-X|:sealed:)/i');

// the related <img> html elements
$prefix = ' <img src="'.$url.'/';
$suffix = '" alt="" border="0" /> ';
$replace = array(
$prefix.'smile.gif'.$suffix,
$prefix.'undecided.gif'.$suffix,
$prefix.'winkgrin.gif'.$suffix,
$prefix.'cheesy.gif'.$suffix,
$prefix.'frown.gif'.$suffix,
$prefix.'cry.gif'.$suffix,
$prefix.'shocked.gif'.$suffix,
$prefix.'cool.gif'.$suffix,
$prefix.'rolleyes.gif'.$suffix,
$prefix.'tongue.gif'.$suffix,
$prefix.'sealed.gif'.$suffix);

// process the text
return preg_replace($search, $replace, $text);
}
}

if ( !function_exists('gaestebuch_set_captcha_vals') ) {
function gaestebuch_set_captcha_vals($length = 4, $width = 100, $height = 30, $attributes = '', $styleset = '', $template = '{image} {textfield}{hiddentoken}') {
global $captchavals;
$captchavals['length'] = $length;
$captchavals['width'] = $width;
$captchavals['height'] = $height;
$captchavals['attributes'] = $attributes;
$captchavals['styleset'] = $styleset;
$captchavals['template'] = $template;
}
}

if ( !function_exists('gaestebuch_checkCaptcha') ) {
function gaestebuch_checkCaptcha() {
// required api
$request_object =& sf_factoryGetObject('HTTP', 'WebRequest');
$captcha_object =& sf_factoryGetObject('GUI', 'CaptchaImage');
$mod['action'] = $request_object->getVal('action');
$mod['test_captcha'] = $request_object->getVal('gb_captcha');
if ($captcha_object->validateByCharseqAndRequestFieldname($mod['test_captcha'],'gb_captcha','post'))
{
return '';
} else {
return "Captcha, ";
};

}
}

// ********************************************************************************
***************
// neuen Eintrag testen
if(${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id']} == 'save') {
//Werte holen
$sf_wr =& $GLOBALS['sf_factory']->getObject('HTTP', 'WebRequest');
$name = $sf_wr->getVal('name');
$url = $sf_wr->getVal('url');
$location = $sf_wr->getVal('location');
$comment = $sf_wr->getVal('comment');
$comment2 = $sf_wr->getVal('comment2');
$moderated = $sf_wr->getVal('moderated');

if (!((($sess->name == 'sefrengo') || ($sess->name == 'cms')) || ($view == 'edit')))
{
// Eingaben ueberpruefen
$gb['InputFailure'] = gaestebuch_checkInput($mvars['29']);

if ($mvars['71'] == 'true')
{
// Captcha ueberpruefen
$gb['InputFailure'] .= gaestebuch_checkCaptcha();
}
}

// den gesamten Content nach verdächtigem durchforsten und dann abbrechen
$value1035 = "MOD_VALUE[91]";
$badStrings = explode(",",$value1035);
array_walk($badStrings , create_function('&$temp', '$temp = trim($temp);'));
foreach($badStrings as $v2)
{
if(eregi($v2,$comment)){
$gb['InputFailure'] .= "<br>MOD_VALUE[92], ";
break;
}
}
unset($v2, $badStrings);

}


// ********************************************************************************
***************
// Eingabeformular fuer neuen Eintrag
if((${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id']} == 'edit') || ($gb['InputFailure'] != "")) {
// Eintrag zum editieren aus der Datenbank suchen
if ($gb_entry) {
$sql = "SELECT * FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1' AND typenumber='$gb_entry'";
$db->query($sql);
while ($db->next_record()) {
if ($db->f('idtype') == 'gb_name') $gb_temp['name'] = htmlentities($db->f('value'), ENT_COMPAT, 'UTF-8');
if ($db->f('idtype') == 'gb_email') $gb_temp['email'] = htmlentities($db->f('value'), ENT_COMPAT, 'UTF-8');
if ($db->f('idtype') == 'gb_url') $gb_temp['url'] = htmlentities($db->f('value'), ENT_COMPAT, 'UTF-8');
if ($db->f('idtype') == 'gb_location') $gb_temp['location'] = htmlentities($db->f('value'), ENT_COMPAT, 'UTF-8');
if ($db->f('idtype') == 'gb_comment') $gb_temp['comment'] = htmlentities($db->f('value'), ENT_COMPAT, 'UTF-8');
if ($db->f('idtype') == 'gb_comment2') $gb_temp['comment2'] = htmlentities($db->f('value'), ENT_COMPAT, 'UTF-8');
if ($db->f('idtype') == 'gb_moderated') $gb_temp['moderated'] = htmlentities($db->f('value'), ENT_COMPAT, 'UTF-8');

}
}
// fals die Eingaben nicht i.O. waren
if ($gb['InputFailure'] != "")
{
if ($name) $gb_temp['name'] = $name;
if ($email) $gb_temp['email'] = $email;
if ($url) $gb_temp['url'] = $url;
if ($location) $gb_temp['location'] = $location;
if ($comment) $gb_temp['comment'] = $comment;
if ($comment2) $gb_temp['comment2'] = $comment2;
if ($moderated) $gb_temp['moderated'] = $moderated;


}


//if ($mvars['19'] != '') $gb_temp['span'] = ' class='.$mvars['19'];
if ($mvars['31'] != '') $gb_temp['span_but'] = ' class='.$mvars['31'];
if ($mvars['32'] != '') $gb_temp['span_name'] = ' class='.$mvars['32'];
if ($mvars['33'] != '') $gb_temp['span_email'] = ' class='.$mvars['33'];
if ($mvars['34'] != '') $gb_temp['span_url'] = ' class='.$mvars['34'];
if ($mvars['35'] != '') $gb_temp['span_location'] = ' class='.$mvars['35'];
if ($mvars['36'] != '') $gb_temp['span_comment'] = ' class='.$mvars['36'];
if ($mvars['37'] != '') $gb_temp['span_comment2'] = ' class='.$mvars['37'];
if ($mvars['26'] != '') $gb_temp['span_moderated'] = ' class='.$mvars['26'];

if ($mvars['71'] == 'true')
{

$captcha_object =& sf_factoryGetObject('GUI', 'CaptchaImage');
gaestebuch_set_captcha_vals($mvars['73'], $mvars['74'], $mvars['75'], $mvars['76'], $mvars['77'], $mvars['78']);
$captcha_object->setCaptchaTemplate($captchavals['template']);
$gb_temp['captcha'] = $captcha_object->getCaptchaHtml('gb_captcha',
$captchavals['length'],
null,
$captchavals['attributes'],
$captchavals['styleset'],
$captchavals['width'],
$captchavals['height']);
} else {
$gb_temp['captcha'] = '';
}


if (($sess->name == 'sefrengo') || ($sess->name == 'cms'))
{
if($view == 'edit') {
$final_temp = $mvars['38'];
} else {
$final_temp = $mvars['21'];
}
} else {
$final_temp = $mvars['21'];
}
$final_temp = str_replace('{name}', "<input type=\"text\" name=\"name\" id=\"name\" value=\"".$gb_temp['name']."\"".$gb_temp['span_name']." />", $final_temp);
$final_temp = str_replace('{email}', "<input type=\"text\" name=\"email\" id=\"email\" value=\"".$gb_temp['email']."\"".$gb_temp['span_email']." />", $final_temp);
$final_temp = str_replace('{homepage}', "<input type=\"text\" name=\"url\" id=\"url\" value=\"".$gb_temp['url']."\"".$gb_temp['span_url']." />", $final_temp);
$final_temp = str_replace('{location}', "<input type=\"text\" name=\"location\" id=\"location\" value=\"".$gb_temp['location']."\"".$gb_temp['span_location']." />", $final_temp);
$final_temp = str_replace('{comment}', "<textarea name=\"comment\" id=\"comment\" cols=\"35\" rows=\"10\"".$gb_temp['span_comment'].">".$gb_temp['comment']."</textarea>", $final_temp);
$final_temp = str_replace('{comment2}', "<textarea name=\"comment2\" id=\"comment2\" cols=\"35\" rows=\"10\"".$gb_temp['span_comment2'].">".$gb_temp['comment2']."</textarea>", $final_temp);
$final_temp = str_replace('{moderated}', "<input type=\"text\" name=\"moderated\" id=\"moderated\" value=\"".$gb_temp['moderated']."\"".$gb_temp['span_moderated']." />", $final_temp);
$final_temp = str_replace('{captcha}', $gb_temp['captcha'], $final_temp);
if($mvars['27'] != "false" ) { // olaf smileys ausgeben wenn true
$final_temp = str_replace('{smileys}', " <div class=\"smileys\">
<a href=\"java script:setsmile(1)\"><img src=\"./cms/mod/smileys/smile.gif\"
alt=\"\" /></a> <a href=\"java script:setsmile(2)\"><img src=
\"./cms/mod/smileys/undecided.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile(3)\"><img src=\"./cms/mod/smileys/winkgrin.gif\" alt=
\"\" /></a> <a href=\"java script:setsmile(4)\"><img src=
\"./cms/mod/smileys/cheesy.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile(5)\"><img src=\"./cms/mod/smileys/frown.gif\" alt=
\"\" /></a> <a href=\"java script:setsmile(6)\"><img src=
\"./cms/mod/smileys/cry.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile(7)\"><img src=\"./cms/mod/smileys/shocked.gif\" alt=
\"\" /></a> <a href=\"java script:setsmile(8)\"><img src=
\"./cms/mod/smileys/cool.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile(9)\"><img src=\"./cms/mod/smileys/rolleyes.gif\" alt=
\"\" /></a> <a href=\"java script:setsmile(10)\"><img src=
\"./cms/mod/smileys/tongue.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile(11)\"><img src=\"./cms/mod/smileys/sealed.gif\" alt=
\"\" /></a>
</div>
&lt;script type=\"text/javascript\">
<!--
function setsmile(smiliecode) {
var comment;
var smiliestring;
switch (smiliecode) {
case 1:
smiliestring = \" :-) \";
break;
case 2:
smiliestring = \" :-/ \";
break;
case 3:
smiliestring = \";-) \";
break;
case 4:
smiliestring = \" :-D \";
break;
case 5:
smiliestring = \" :-( \";
break;
case 6:
smiliestring = \" :cry: \";
break;
case 7:
smiliestring = \" :-o \";
break;
case 8:
smiliestring = \" 8-) \";
break;
case 9:
smiliestring = \" :smile.gif \";
break;
case 10:
smiliestring = \" :-P \";
break;
case 11:
smiliestring = \" :-X \";
break;
default:
smiliestring = \"\";
break;
}
comment = document.getElementById(\"comment\");
comment.value = comment.value + smiliestring;
}
//-->
</script>", $final_temp);
$final_temp = str_replace('{smileys2}', " <div class=\"smileys\">
<a href=\"java script:setsmile2(1)\"><img src=\"./cms/mod/smileys/smile.gif\"
alt=\"\" /></a> <a href=\"java script:setsmile2(2)\"><img src=
\"./cms/mod/smileys/undecided.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile2(3)\"><img src=\"./cms/mod/smileys/winkgrin.gif\" alt=
\"\" /></a> <a href=\"java script:setsmile2(4)\"><img src=
\"./cms/mod/smileys/cheesy.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile2(5)\"><img src=\"./cms/mod/smileys/frown.gif\" alt=
\"\" /></a> <a href=\"java script:setsmile2(6)\"><img src=
\"./cms/mod/smileys/cry.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile2(7)\"><img src=\"./cms/mod/smileys/shocked.gif\" alt=
\"\" /></a> <a href=\"java script:setsmile2(8)\"><img src=
\"./cms/mod/smileys/cool.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile2(9)\"><img src=\"./cms/mod/smileys/rolleyes.gif\" alt=
\"\" /></a> <a href=\"java script:setsmile2(10)\"><img src=
\"./cms/mod/smileys/tongue.gif\" alt=\"\" /></a> <a href=
\"java script:setsmile2(11)\"><img src=\"./cms/mod/smileys/sealed.gif\" alt=
\"\" /></a>
</div>
&lt;script type=\"text/javascript\">
<!--
function setsmile2(smiliecode) {
var comment;
var smiliestring;
switch (smiliecode) {
case 1:
smiliestring = \" :-) \";
break;
case 2:
smiliestring = \" :-/ \";
break;
case 3:
smiliestring = \";-) \";
break;
case 4:
smiliestring = \" :-D \";
break;
case 5:
smiliestring = \" :-( \";
break;
case 6:
smiliestring = \" :cry: \";
break;
case 7:
smiliestring = \" :-o \";
break;
case 8:
smiliestring = \" 8-) \";
break;
case 9:
smiliestring = \" :smile.gif \";
break;
case 10:
smiliestring = \" :-P \";
break;
case 11:
smiliestring = \" :-X \";
break;
default:
smiliestring = \"\";
break;
}
comment2 = document.getElementById(\"comment2\");
comment2.value = comment2.value + smiliestring;
}
//-->
</script>", $final_temp);
} else {
$final_temp = str_replace('{smileys}', "", $final_temp);
$final_temp = str_replace('{smileys2}', "", $final_temp);
} // olaf Ende smileys
$final_temp = str_replace('{but_send}', "<input type=\"submit\" value=\"eintragen\"".$gb_temp['span_but']." />", $final_temp);
$final_temp = str_replace('{but_abort}', "<a href=\"".$con_side[$idcatside]['link']."\">Zurück</a>", $final_temp);
if ($gb['InputFailure'] != "") {
// $final_temp = str_replace('{failure}',$mvars['30'].substr($gb['InputFailure'],0,-2), $final_temp);
$final_temp = str_replace('{failure}',str_replace('{field}',substr($gb['InputFailure'],0,-2), $mvars['30']), $final_temp);
} else {
$final_temp = str_replace('{failure}',"", $final_temp);
}
$final_temp = "<form id=\"gb".$cms_mod['container']['id']."_".$cms_mod['modul']['id']."\" action=\"".$con_side[$idcatside]['link']."\" method=\"post\">\n<div id=\"gb".$cms_mod['container']['id']."\">\n<input type=\"hidden\" name=\"gb".$cms_mod['container']['id']."_".$cms_mod['modul']['id']."\" value=\"save\" />\n<input type=\"hidden\" name=\"gb_entry\" value=\"$gb_entry\" />\n".$final_temp."\n</div>\n</form>";
if ($mvars['18'] != '') eval(' ?><span class='.$mvars['18'].'>'.$final_temp.'</span>');
else eval(' ?>'.$final_temp);

}


// ********************************************************************************
***************
// neuen Eintrag in die Datenbank schreiben
if((${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id']} == 'save') && ( $gb['InputFailure'] == "")) {
if ($mod['test'] == "true") {echo "<hr>Kontrolle:".implode(',',$_POST)."--> gb_entry".$gb_entry."<br>";}
if(!$gb_entry) {
// neue Eintragsnummer suchen (hoechste + 1)
$sql = "SELECT MAX(typenumber) AS typenumber FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1'";
$db->query($sql);
$db->next_record();
if ($db->affected_rows()) $typenumber = $db->f('typenumber') + 1;
else $typenumber = 1;
} else {
$sql = "SELECT * FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1' AND typenumber='$gb_entry'";
$db->query($sql);
while ($db->next_record()) {
if ($db->f('idtype') == 'gb_name') $gb_temp2['name'] = 1;
if ($db->f('idtype') == 'gb_email') $gb_temp2['email'] = 1;
if ($db->f('idtype') == 'gb_url') $gb_temp2['url'] = 1;
if ($db->f('idtype') == 'gb_location') $gb_temp2['location'] = 1;
if ($db->f('idtype') == 'gb_comment') $gb_temp2['comment'] = 1;
if ($db->f('idtype') == 'gb_comment2') $gb_temp2['comment2'] = 1;
if ($db->f('idtype') == 'gb_moderated') $gb_temp2['moderated'] = 1;
}
$typenumber = $gb_entry;
}

// Name schreiben
if ($name) {
set_magic_quotes_gpc($name);
if($gb_temp2['name'] == 1) {
unset($gb_temp);
$sql = "UPDATE $cms_db[content_external] SET value='$name', lastmodified='".time()."', author='".$auth->auth['uid']."' WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_name' AND typenumber='$gb_entry'";
$db->query($sql);
if ($db->affected_rows()) $gb_temp='true';
else $gb_change='true';
} else {
$sql = "INSERT INTO $cms_db[content_external] (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES ('".$con_side[$idcatside]['idsidelang']."', '".$cms_mod['container']['id']."', '".$cms_mod['modul']['id']."', 'gb_name', '$typenumber', '$name', '".$auth->auth['uid']."', '".time()."', '".time()."')";
$db->query($sql);
$gb_change='true';
}
} else {
if($gb_temp2['name'] == 1) {
$sql = "DELETE FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_name' AND typenumber='$gb_entry'";
$db->query($sql);
}
}

// eMail-Adresse schreiben
if ($email) {
set_magic_quotes_gpc($email);
if($gb_temp2['email'] == 1) {
unset($gb_temp);
$sql = "UPDATE $cms_db[content_external] SET value='$email', lastmodified='".time()."', author='".$auth->auth['uid']."', typenumber='$gb_entry' WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_email' AND typenumber='$gb_entry'";
if ($mod['test'] == "true") {echo "<hr>SQL:".$sql."<br>";}
$db->query($sql);
if ($db->affected_rows()) { $gb_temp='true'; if ($mod['test'] == "true") {echo "<hr>dg_temp -> true<br>";} }
else {$gb_change='true'; if ($mod['test'] == "true") {echo "<hr>gd_change -> true<br>";} }
} else {
$sql = "INSERT INTO $cms_db[content_external] (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES ('".$con_side[$idcatside]['idsidelang']."', '".$cms_mod['container']['id']."', '".$cms_mod['modul']['id']."', 'gb_email', '$typenumber', '$email', '".$auth->auth['uid']."', '".time()."', '".time()."')";
$db->query($sql);
$gb_change='true';
}
} else {
if($gb_temp2['email'] == 1) {
$sql = "DELETE FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_email' AND typenumber='$gb_entry'";
$db->query($sql);
}
}

// url schreiben
if ($url) {

set_magic_quotes_gpc($url);
$url = str_replace('http://','',$url);
if($gb_temp2['url'] == 1) {
unset($gb_temp);
$sql = "UPDATE $cms_db[content_external] SET value='$url', lastmodified='".time()."', author='".$auth->auth['uid']."' WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_url' AND typenumber='$gb_entry'";
$db->query($sql);
if ($db->affected_rows()) $gb_temp='true';
else $gb_change='true';
} else {
$sql = "INSERT INTO $cms_db[content_external] (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES ('".$con_side[$idcatside]['idsidelang']."', '".$cms_mod['container']['id']."', '".$cms_mod['modul']['id']."', 'gb_url', '$typenumber', '$url', '".$auth->auth['uid']."', '".time()."', '".time()."')";
$db->query($sql);
$gb_change='true';
}
} else {
if($gb_temp2['url'] == 1) {
$sql = "DELETE FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_url' AND typenumber='$gb_entry'";
$db->query($sql);
}
}

// Wohnort schreiben
if ($location) {
set_magic_quotes_gpc($location);
if($gb_temp2['location'] == 1) {
unset($gb_temp);
$sql = "UPDATE $cms_db[content_external] SET value='$location', lastmodified='".time()."', author='".$auth->auth['uid']."' WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_location' AND typenumber='$gb_entry'";
$db->query($sql);
if ($db->affected_rows()) $gb_temp='true';
else $gb_change='true';
} else {
$sql = "INSERT INTO $cms_db[content_external] (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES ('".$con_side[$idcatside]['idsidelang']."', '".$cms_mod['container']['id']."', '".$cms_mod['modul']['id']."', 'gb_location', '$typenumber', '$location', '".$auth->auth['uid']."', '".time()."', '".time()."')";
$db->query($sql);
$gb_change='true';
}
} else {
if($gb_temp2['location'] == 1) {
$sql = "DELETE FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_location' AND typenumber='$gb_entry'";
$db->query($sql);
}
}

// Kommentar schreiben
if ($comment) {
set_magic_quotes_gpc($comment);
if($gb_temp2['comment'] == 1) {
unset($gb_temp);
$sql = "UPDATE $cms_db[content_external] SET value='$comment', lastmodified='".time()."', author='".$auth->auth['uid']."' WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_comment' AND typenumber='$gb_entry'";
$db->query($sql);
if ($db->affected_rows()) $gb_temp='true';
else $gb_change='true';
} else {
$sql = "INSERT INTO $cms_db[content_external] (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES ('".$con_side[$idcatside]['idsidelang']."', '".$cms_mod['container']['id']."', '".$cms_mod['modul']['id']."', 'gb_comment', '$typenumber', '$comment', '".$auth->auth['uid']."', '".time()."', '".time()."')";
$db->query($sql);
$gb_change='true';
}
} else {
if($gb_temp2['comment'] == 1) {
$sql = "DELETE FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_comment' AND typenumber='$gb_entry'";
$db->query($sql);
}
}

// Kommentar schreiben
if ($comment2) {
set_magic_quotes_gpc($comment2);
if($gb_temp2['comment2'] == 1) {
unset($gb_temp);
$sql = "UPDATE $cms_db[content_external] SET value='$comment2', lastmodified='".time()."', author='".$auth->auth['uid']."' WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_comment2' AND typenumber='$gb_entry'";
$db->query($sql);
if ($db->affected_rows()) $gb_temp='true';
else $gb_change='true';
} else {
$sql = "INSERT INTO $cms_db[content_external] (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES ('".$con_side[$idcatside]['idsidelang']."', '".$cms_mod['container']['id']."', '".$cms_mod['modul']['id']."', 'gb_comment2', '$typenumber', '$comment2', '".$auth->auth['uid']."', '".time()."', '".time()."')";
$db->query($sql);
$gb_change='true';
}
} else {
if($gb_temp2['comment2'] == 1) {
$sql = "DELETE FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_comment2' AND typenumber='$gb_entry'";
$db->query($sql);
}
}

// IP-Adresse schreiben
if ($gb_change) {
if(!$gb_entry) {
$sql = "INSERT INTO $cms_db[content_external] (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES ('".$con_side[$idcatside]['idsidelang']."', '".$cms_mod['container']['id']."', '".$cms_mod['modul']['id']."', 'gb_ip', '$typenumber', '".getenv('REMOTE_ADDR')."', '".$auth->auth['uid']."', '".time()."', '".time()."')";
$db->query($sql);
}
}
// Moderation schreiben
if ($moderated) {
set_magic_quotes_gpc($moderated);
if($gb_temp2['moderated'] == 1) {
unset($gb_temp);
$sql = "UPDATE $cms_db[content_external] SET value='$moderated', lastmodified='".time()."', author='".$auth->auth['uid']."' WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_moderated' AND typenumber='$gb_entry'";
$db->query($sql);
if ($db->affected_rows()) $gb_temp='true';
else $gb_change='true';
} else {
$sql = "INSERT INTO $cms_db[content_external] (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES ('".$con_side[$idcatside]['idsidelang']."', '".$cms_mod['container']['id']."', '".$cms_mod['modul']['id']."', 'gb_moderated', '$typenumber', '$moderated', '".$auth->auth['uid']."', '".time()."', '".time()."')";
$db->query($sql);
$gb_change='true';
}
} else {
if($gb_temp2['moderated'] == 1) {
$sql = "DELETE FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype='gb_moderated' AND typenumber='$gb_entry'";
$db->query($sql);
}
}



unset($typenumber);
unset($gb_entry);
unset($gb_temp);
unset(${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id']});
// E-Mail schreiben wenn gewuenscht
if($mvars['22'] == "true" && strchr($mvars['23'],'@')){
$mailbody = str_replace('{name}',$name,$mvars['24']);
$mailbody = str_replace('{email}',$email,$mailbody);
$mailbody = str_replace('{homepage}',$url,$mailbody);
$mailbody = str_replace('{location}',$location,$mailbody);
$mailbody = str_replace('{comment}',stripslashes($comment),$mailbody);
$mailbody = str_replace('{comment2}',stripslashes($comment2),$mailbody);
$mailbody = str_replace('{created}',date("d.m.Y h:i"),$mailbody);
$mailbody = str_replace('{ip}',getenv('REMOTE_ADDR'),$mailbody);
$mailbody = str_replace('{link}',$cfg_client['htmlpath'].$con_side[$idcatside]['link'],$mailbody);
$mailbody = str_replace('<br />',"\n",$mailbody);
mail($mvars['23'], $mvars['25'], $mailbody, "From: Gaestebuch<".$mvars['23'].">\nX-Mailer: PHP/" . phpversion(). "\n");
unset($mailbody);
}
}

// ********************************************************************************
***************
// wenn "del" als aktion uebergeben wird und wir noch im edit-modus sind
if(${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id']} == 'delete' && $cms_side['edit']) {
$sql = "DELETE FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1' AND typenumber='$gb_entry'";
$db->query($sql);
$sql = "UPDATE $cms_db[content_external] SET typenumber=typenumber-1 WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1' AND typenumber>'$gb_entry'";
$db->query($sql);
unset(${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id']});
}

// ********************************************************************************
***************
// Gaestebuch anzeigen
if(!${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id']}) {
// Navigationstemplate
$gb['navi_forward_on'] = $mvars['2'];
$gb['navi_forward_off'] = $mvars['3'];
$gb['navi_backward_on'] = $mvars['4'];
$gb['navi_backward_off'] = $mvars['5'];
$gb['navi_numeric_on'] = $mvars['6'];
$gb['navi_numeric_off'] = $mvars['7'];

// Startposition festlegen
$gb['navi_position'] = (is_numeric(${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id'].'_pos'}) && ${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id'].'_pos'} > 0) ? ${'gb'.$cms_mod['container']['id'].'_'.$cms_mod['modul']['id'].'_pos'} : 1;

// Eintraege zaehlen
$sql = "SELECT DISTINCT typenumber FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1'";
$db->query($sql);

//Anzahl aller moeglichen Artikel
$gb['side_score'] = $db->num_rows();

// Seitennavigation bauen
if ($mvars['8'] > '0')
{
$base_url = "gb".$cms_mod['container']['id']."_".$cms_mod['modul']['id']."_pos";
$pager =& sf_factoryGetObject('GUI', 'Pager');
$pager->setTotalItems($gb['side_score']);
$pager->setItemsPerPage($mvars['8']);
$pager->setDelta($mvars['40']);
$pager->setCurrentPage($gb['navi_position']);
$pager->setSpacesBeforeSeparator(0);
$pager->setSeparator($mvars['39']);
$pager->setTextPrev($mvars['41']);
$pager->setTextNext($mvars['42']);
$pager->setTextFirst($mvars['43']);
$pager->setTextLast($mvars['44']);
$pager->setUrlVar($base_url);
$pager->generate();

$final['navi'] = $pager->getLinks();
} else {
$final['navi'] = "";
}

// Eintraege in Array schreiben
if ($mvars['28'] == "SORT_DESC") {
// start = anzEintraege - startSeite - anzAnzeigen + 1
$gb['begin_search'] = $gb['side_score'] - ($gb['navi_position']-1)*$mvars['8'] - $mvars['8'] + 1;
$gb['end_search'] = $gb['side_score'] - ($gb['navi_position']-1)*$mvars['8'];
} else {
$gb['begin_search'] = ($gb['navi_position']-1)*$mvars['8'] + 1;
$gb['end_search'] = ($gb['navi_position']-1)*$mvars['8'] + $mvars['8'];
}

if ($mod['test'] == "true") {echo "<hr>Kontrolle Navigation: Anz ".$gb['side_score']."<br>Start: ".$gb['begin_search']."<br>Ende: ".$gb['end_search']."<br>[28]:".$mvars['28']."<br>[8]:".$mvars['8']."<br>";}

if ($mvars['8'] == '0') {
$sql = "SELECT * FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1' ORDER BY lastmodified DESC";
} else {
//$sql = "SELECT * FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1' AND typenumber BETWEEN '".$gb['begin_search']."' AND '".$gb['end_search']."' ORDER BY lastmodified ".$mvars['28'];
$sql = "SELECT * FROM $cms_db[content_external] WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."' AND container='".$cms_mod['container']['id']."' AND number='".$cms_mod['modul']['id']."' AND idtype!='1' AND typenumber BETWEEN '".$gb['begin_search']."' AND '".$gb['end_search']."' ORDER BY lastmodified DESC";
}
$db->query($sql);
while ($db->next_record()) {
//if ($mod['test'] == "true") {echo "<br>Eintraege: Nr:".$db->f('typenumber')." Creat:".$db->f('created')." Last:".$db->f('lastmodified')." value: ".$db->f('value')." Type: ".$db->f('idtype');}
$gb['typenumber'][] = $db->f('typenumber');
if ($db->f('idtype') == 'gb_name') $gb[$db->f('typenumber')]['name'] = $db->f('value');
if ($db->f('idtype') == 'gb_email' && $mvars['15'] != '') $gb[$db->f('typenumber')]['email'] = str_replace('{url}', htmlspecialchars($db->f('value'), ENT_COMPAT, 'UTF-8'), $mvars['15']);
if ($db->f('idtype') == 'gb_url' && $mvars['14'] != '') $gb[$db->f('typenumber')]['url'] = str_replace('{url}', htmlspecialchars($db->f('value'), ENT_COMPAT, 'UTF-8'), $mvars['14']);
if ($db->f('idtype') == 'gb_location' && $mvars['17'] != '') $gb[$db->f('typenumber')]['location'] = str_replace('{loc}', htmlspecialchars($db->f('value'), ENT_COMPAT, 'UTF-8'), $mvars['17']);
if ($db->f('idtype') == 'gb_comment') $gb[$db->f('typenumber')]['comment'] = $db->f('value');
if ($db->f('idtype') == 'gb_comment2' && $mvars['20'] != '') $gb[$db->f('typenumber')]['comment2'] = str_replace('{com2}', htmlspecialchars($db->f('value'), ENT_COMPAT, 'UTF-8'), $mvars['20']);
if ($db->f('idtype') == 'gb_moderated') $gb[$db->f('typenumber')]['moderated'] = $db->f('value');
if ($db->f('idtype') == 'gb_ip') {
$gb[$db->f('typenumber')]['ip'] = $db->f('value');
$gb[$db->f('typenumber')]['created'] = date($cfg_cms['FormatDate'].' '.$cfg_cms['FormatTime'], $db->f('created'));
}
if (!$gb[$db->f('typenumber')]['lastmodified']) $gb[$db->f('typenumber')]['lastmodified'] = date($cfg_cms['FormatDate'].' '.$cfg_cms['FormatTime'], $db->f('lastmodified'));
}

// Template erstellen
$final['newentry'] = str_replace('{url}', $con_side[$idcatside]['link']."&gb".$cms_mod['container']['id']."_".$cms_mod['modul']['id']."=edit", $mvars['11']);

// Eintraege erstellen
if (is_array($gb['typenumber'])) {
$gb['typenumber'] = array_unique($gb['typenumber']);
if ( $mvars['28'] == 'SORT_DESC') {
array_multisort ($gb['typenumber'], SORT_NUMERIC, SORT_DESC);
} else {
array_multisort ($gb['typenumber'], SORT_NUMERIC, SORT_ASC);
}
foreach($gb['typenumber'] as $gb['number']=>$i) {
$final['editentry'] = str_replace('{url}', $con_side[$idcatside]['link']."&gb".$cms_mod['container']['id']."_".$cms_mod['modul']['id']."=edit&gb_entry=".$i, $mvars['12']);
$final['deleteentry'] = str_replace('{url}', $con_side[$idcatside]['link']."&gb".$cms_mod['container']['id']."_".$cms_mod['modul']['id']."=delete&gb_entry=".$i, $mvars['13']);
if ($mvars['1'] != '') {
$gb_temp['span'] = '<span class='.$mvars['1'].'">';
$gb_temp['span2'] = '</span>';
} else {
$gb_temp['span'] = '';
$gb_temp['span2'] = '';
}

if ($cms_side['edit']) $comment_temp = $mvars['16'];
else $comment_temp = $mvars['9'];
$comment_temp = str_replace('{name}', $gb_temp['span'].htmlspecialchars($gb[$i]['name'], ENT_COMPAT, 'UTF-8').$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{email}', $gb_temp['span'].$gb[$i]['email'].$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{homepage}', $gb_temp['span'].$gb[$i]['url'].$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{location}', $gb_temp['span'].htmlspecialchars($gb[$i]['location'], ENT_COMPAT, 'UTF-8').$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{comment}', $gb_temp['span'].str_replace("<br />","<br />", nl2br(htmlspecialchars($gb[$i]['comment'], ENT_COMPAT, 'UTF-8'))).$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{comment2}', $gb_temp['span'].str_replace("<br />","<br />", nl2br($gb[$i]['comment2'])).$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{moderated}', $gb_temp['span'].htmlspecialchars($gb[$i]['moderated'], ENT_COMPAT, 'UTF-8').$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{ip}', $gb_temp['span'].$gb[$i]['ip'].$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{created}', $gb_temp['span'].$gb[$i]['created'].$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{lastmodified}', $gb_temp['span'].$gb[$i]['lastmodified'].$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{newentry}', $gb_temp['span'].$final['newentry'].$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{number}', $gb_temp['span'].$i.$gb_temp['span2'], $comment_temp);
if ($cms_side['edit']) {
$comment_temp = str_replace('{editentry}', $gb_temp['span'].$final['editentry'].$gb_temp['span2'], $comment_temp);
$comment_temp = str_replace('{deleteentry}', $gb_temp['span'].$final['deleteentry'].$gb_temp['span2'], $comment_temp);
} else {
$comment_temp = str_replace('{editentry}', '', $comment_temp);
$comment_temp = str_replace('{deleteentry}', '', $comment_temp);
}
if($mvars['27'] != "false" ) {
$comment_temp = gaestebuch_renderSmileys($comment_temp,'cms/mod/smileys');
}
if ($mvars['0'] != '') $final['comments'] .= '<span class="'.$mvars['0'].'">'.$comment_temp.'</span>';
else $final['comments'] .= $comment_temp;
}
}

// Final-Template erstellen
$final_temp = str_replace('{newentry}', $final['newentry'], $mvars['10']);
$final_temp = str_replace('{comments}', $final['comments'], $final_temp);
$final_temp = str_replace('{navi}', $final['navi'], $final_temp);
$final_temp = str_replace('{navi_forward}', $final['navi_forward'], $final_temp);
$final_temp = str_replace('{navi_backward}', $final['navi_backward'], $final_temp);
eval(' ?>'.$final_temp);
}
unset($gb, $gb_temp, $comment_temp, $final_temp, $final, $gb_temp2, $mod, $gb_change, $base_url, $captcha_object);

} //end $is_dev
unset($is_dev);
</CMSPHP>


Unter Administrativ ist jetzt die neue Checkbox für die Moderation und es wird auch der Wert vom Formular unter "moderiert" übernommen.
Jetz sollte das Feld vesteckt werden und immer mit dem Inhalt "1" gefüllt werden.

Dies müsste die Formularstelle sein:
CODE
$final_temp = str_replace('{moderated}', "<input type=\"text\" name=\"moderated\" id=\"moderated\" value=\"".$gb_temp['moderated']."\"".$gb_temp['span_moderated']." />", $final_temp);


wenn ich da den type von text auf hidden und value auf "1" ändere wird in der DB nichts gespeichert. Warum?

Vorarbeit für die Eingabe wäre somit dann fertig!

Dann mein Problem mit der Abfrage.
Jetzt sollte verglichen werden (denke ähnlich wie Captcha), falls moderation gewünscht wurde, ob in dem Feld eine "0" steht und damit im Frontend angezeigt wird. Vorraussetzung ist dafür, dass im backend (Beitrag edit: (also freischalten) value von "1" auf "0" geändert wird!

Falls nicht moderiert werden soll, kann man ja den inhalt von value mit "1" ausgeben!

Gruß
FireFlyer
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.