Gandalf hat geschrieben:Leider klappt die Anzeige aber nur beim Editieren und nicht beim Kommentieren, da die Variable Titel geleert wird. Ich blende aber das Feld (Titel) beim kommentieren aus.
Ich hatte das mit der Nummer vor allem zu Kontrollzwecken eingefügt und habe mir dann nicht mehr viel dabei gedacht. Aber du hast recht, der Titel würde da echt Sinn machen.
Suche mal in mod_guestbook/_include/guestbook.inc.php:
Code: Alles auswählen
$hidden_action = 'comment';
$db_nr = $_REQUEST['nr'];
und füge danach ein:
Code: Alles auswählen
//Daten aus DB holen
$db = new DB;
$query = "SELECT rubric_id, commentary, verfallsdatum, idx, "
."email, autor, pub_datum, titel, initial, freigabe, changer, c_time "
."FROM ".CPO_NEWS." WHERE nr = '".$db_nr."' ";
DEBUG(1, $query, __FILE__, __LINE__);
$db->query($query);
$db->next_record();
//Wenn Artikel nicht vorhanden
if ($db->num_rows()<=0) {
$views = array('index');
break;
}
$db_idx = $db->v('idx');
$db_email = $db->v('email');
$db_autor = $db->v('autor');
$db_changer = $db->v('changer');
$db_c_time = $db->v('c_time');
$db_verfallsdatum = $db->v('verfallsdatum');
$db_commentary = $db->v('commentary');
$db_titel = $db->v('titel');
$db_initial = $db->v('initial');
$db_freigabe = $db->v('freigabe');
$db_rubric_id = $db->v('rubric_id');
if (count(explode('#', $db_titel))>=2) {
$db_titel = substr($db_titel, strpos($db_titel, '#')+1);
}
//$data['email'] = $db_email;
//$data['autor'] = $db_autor;
//$data['titel'] = $db_titel;
Das Problem dabei ist nur, dass dadurch sämtliche Daten aus der Tabelle CPO_NEWS in das Formular eingetragen werden. D.h. es stehen Daten des zu kommentierenden Artikels drin.
Edit:
Blödsinn, ich hatte da in den oben stehenden Code noch etwas drinn stehen, was da keinen Sinn hat. Dies ist jetzt auskommentiert. Es wird jetzt nichts ins Formular eingetragen.
Du kanns ja einige Zeilen auskommentieren bzw. löschen, damit nur der Titel ausgegeben wird. Das ist eben die vollständige Variante der Abfrage der Daten aus der Tabelle CPO_NEWS.
Und wenn das Kommentar gesendet wurde und noch Felder im Formular leer sind, gibt es $db_titel dann wieder nicht. Dazu müsstes du dann den Code von oben inklusive
$db_nr = $_REQUEST['nr']; noch nach der folgenden Zeile einfügen:
Code: Alles auswählen
if(!empty($_REQUEST['nr']) && $_REQUEST['hidden_action']=='comment') {
Villeicht denke ich mir ja noch eine bessere Möglichkeit für die nächste Gästebuch-Version aus. Aber danke für die Anregung. Kannst ja deine weiteren Erfahrungen mit diesen Modifikationen später mal posten.
Gandalf hat geschrieben:Wo wir gerade dabei sind: Ich habe das Feld "Titel" umbenannt in "Betreff", demnach soll auch bei leerem Inhalt die korrekte Meldung erscheinen: "Bitte was in das Feld Betreff eintragen". Es erscheint noch "Bitte was in das Feld Titel eintragen". Auch hier suche ich mir den Wolf in den Sourcen, kleiner Tipp wäre nett.
Suche in mod_guestbook/_include/guestbook.inc.php:
Füge danach ein:
Mal sehen, ob ich sowas ähnliches wie du dir gewünscht hast in eine nächste Version des Gästebuchs einfüge. Den Titel auch bei Kommentaren zugänglich zu machen ist Sinnvoll.
Und ich könnte in die Moduleinstellungen ein Feld einfügen, wo man Aliase von den Eingabefeldern aus der Tabelle CPO_NEWS eintragen kann.
Dadurch werden dann eben die Felder "Author", "Titel", "Email" und andere bei der Meldung eine andere Bezeichnung erhalten.
Danke für die Anregungen.
Gruß Matthias V
P.S.
Weiter unten habe ich eine bearbeitete guestbook.inc.php angehängt, die alles korrekt erledigt.