Gästebuch kommentierbar
Gästebuch kommentierbar
Hallo,
da ich denke dass meine Modifikation der Gästebuchlösung auch für andere User interessant ist poste ich diese jetzt nochmals im allgemeinen Conpresso Forum.
Artikel können jetzt auch kommentiert werden. Das ganze funktioniert folgendermaßen:
1. Eine neue Rubrik namens pinboard erstellen (kann auch anders heißen, dann muss allerdings das weiter unten beschriebene Script entsprechend angepasst werden.
2. Template "pinboard" erstellen:
Den folgenden Code in das Textfeld "Seite 1" kopieren. Detail-Seite und Javascript können leer bleiben.
<table width="555" border="0" cellspacing="0" cellpadding="4"
align="center">
<tr>
<td class="text"><%cpAuthor%> schrieb am <%cpDate%></td>
</tr>
<tr>
<td class="text"><%cpText2%></td>
</tr>
<%ifText3%>
<tr>
<td class="text"><%cpText3%></td>
</tr>
<%/ifText3%>
<tr>
<td align="right" class="text">
<a href="pinboard.php?action=newcomment&artid=<%cpID%>"
class="more">Diesen Artikel
kommentieren</a><br />
<a href="pinboard.php?action=new"
class="more"> Neuer Artikel</a>
</td>
</tr>
</table>
Das Template kann natürlich individuell an das jeweilige Seitenlayout angepasst werden.
3. Individuelle Rubrikeinstellungen anpassen:
Bei Titel, Artikel-Text und Fortsetzungstext jeweils "editieren" und "Seite 1" anhaken.
Zusätzlich "Seite 1" bei Autor, E-Mail und Datumsformat anhaken. In das Textfeld bei Datumsformat "d.m.Y" eingeben.
"max. Artikelanzahl" nicht vergessen und die übrigen Einstellungen nach Belieben vornehmen.
4. Eine Datei pinboard.php erstellen, die den folgenden Code beinhaltet, und in das Rubrikverzeichnis pinboard kopieren.
Bitte beachten: Falls das Rubrikverzeichnis respektive das Template anders heißen sollen, müssen in dieser Datei diverse Variablen und Links angepasst werden.
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap: */
define('CPO', true);
if (file_exists("../_cfg/const.php")) require("../_cfg/const.php");
else require("../_cfg/const.php.dist");
require(CPO_BASEDIR."_include/category_rubric.inc.php");
require(CPO_BASEDIR."_include/var_category.php");
$Artikel_header = 'kontakt_gbuch';
$Rubric_header_view = 0;
isset($_GET['action']) ? $g_action=$_GET['action'] : $g_action='';
if ($g_action == 'new') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=newsave"; ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Eintrag erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Mitteilung:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newcomment') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=commentsave"; ?>">
<input type="hidden" name="artid" value="<?php echo $_GET['artid'] ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Kommentar erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Mitteilung:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlspecialchars($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlspecialchars($_POST['gbmail']);
$gbtext = nl2br(htmlspecialchars($_POST['gbtext']));
// Feldwerte vorbelegen
$titel = 'Eintrag von '.$gbautor;
$kategorie = 'pinboard';
$template = 'pinboard';
$idx = 'zzzzzz';
$datum = time();
$verfallsdatum = mktime(23,59,0,12,31,2036);
$c_datum = date("Y-m-d H:i:s",time());
$t_datum = date("YmdHis",time());
$random = rand(1000,9999);
$sort_id = $datum.$random;
$article_nr = substr($changer,0,2).$t_datum.$random;
$query = "INSERT INTO ".$dbPrefix."_news ";
$query .= "(artikel_archiv,article_nr,auth,auth_backup,commentary,kategorie,search,template,titel,titel_link,titel_target,untertitel,untertitel_link,untertitel_target,text_1,text_1_target,html_1,text_2,text_2_target,html_2,text_3,text_3_target,html_3,bild,bild_link,bild_target,";
$query .= "datei_name,datei_desc,datei_prolog,link_1,link_text_1,link_target_1,link_2,link_text_2,link_target_2,link_3,link_text_3,link_target_3,datum,verfallsdatum,pub_datum,autor,email,initial,mehr,more_target,idx,freigabe,freigabe_name,freigabe_datum,last_modify,c_time,changer,sort_id) VALUES ";
$query .= "(0,'".$article_nr."','','','','".$kategorie."',0,'".$template."','".$titel."','','','','','','','',0,'".$gbtext."','',0,'','',0,'','','',";
$query .= "'','','','','','','','','','','','',".$datum.",".$verfallsdatum.",".$datum.",'".$gbautor."','".$gbmail."','','','','".$idx."',0,'".$changer."',".$datum.",0,'".$c_datum."','".$changer."',".$sort_id.")";
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Eintrag im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
if ($g_action == 'commentsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
//Bisherige Kommentare aus der Datenbank laden
$query = "SELECT text_3 FROM ".$dbPrefix."_news WHERE nr = ".$_POST['artid'];
$db->query($query);
$db->next_record();
$comments = $db->v('text_3');
$comments = stripslashes($comments);
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlspecialchars($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlspecialchars($_POST['gbmail']);
$gbtext = '<strong>Kommentar von: <a href="mailto:'.$gbmail.'">'.$gbautor.'</a> am '.date('d.m.Y', time()).'</strong><br />'.nl2br(htmlspecialchars($_POST['gbtext']));
$gbtext = addslashes($comments.'<p>'.$gbtext.'</p>');
// Fortsetzungstext des betreffenden Artikels updaten
$query = 'UPDATE '.$dbPrefix.'_news ';
$query .='SET text_3 = "'.$gbtext.'" ';
$query .='WHERE nr = '.$_POST['artid'];
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Kommentar im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
header("Location: ../pinboard/index.php");
?>
5. Zuletzt das Script pinboard.php im Browser aufrufen und den ersten Beitrag erstellen. Fertig.
Viel Spaß damit
Gruß Volker
da ich denke dass meine Modifikation der Gästebuchlösung auch für andere User interessant ist poste ich diese jetzt nochmals im allgemeinen Conpresso Forum.
Artikel können jetzt auch kommentiert werden. Das ganze funktioniert folgendermaßen:
1. Eine neue Rubrik namens pinboard erstellen (kann auch anders heißen, dann muss allerdings das weiter unten beschriebene Script entsprechend angepasst werden.
2. Template "pinboard" erstellen:
Den folgenden Code in das Textfeld "Seite 1" kopieren. Detail-Seite und Javascript können leer bleiben.
<table width="555" border="0" cellspacing="0" cellpadding="4"
align="center">
<tr>
<td class="text"><%cpAuthor%> schrieb am <%cpDate%></td>
</tr>
<tr>
<td class="text"><%cpText2%></td>
</tr>
<%ifText3%>
<tr>
<td class="text"><%cpText3%></td>
</tr>
<%/ifText3%>
<tr>
<td align="right" class="text">
<a href="pinboard.php?action=newcomment&artid=<%cpID%>"
class="more">Diesen Artikel
kommentieren</a><br />
<a href="pinboard.php?action=new"
class="more"> Neuer Artikel</a>
</td>
</tr>
</table>
Das Template kann natürlich individuell an das jeweilige Seitenlayout angepasst werden.
3. Individuelle Rubrikeinstellungen anpassen:
Bei Titel, Artikel-Text und Fortsetzungstext jeweils "editieren" und "Seite 1" anhaken.
Zusätzlich "Seite 1" bei Autor, E-Mail und Datumsformat anhaken. In das Textfeld bei Datumsformat "d.m.Y" eingeben.
"max. Artikelanzahl" nicht vergessen und die übrigen Einstellungen nach Belieben vornehmen.
4. Eine Datei pinboard.php erstellen, die den folgenden Code beinhaltet, und in das Rubrikverzeichnis pinboard kopieren.
Bitte beachten: Falls das Rubrikverzeichnis respektive das Template anders heißen sollen, müssen in dieser Datei diverse Variablen und Links angepasst werden.
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap: */
define('CPO', true);
if (file_exists("../_cfg/const.php")) require("../_cfg/const.php");
else require("../_cfg/const.php.dist");
require(CPO_BASEDIR."_include/category_rubric.inc.php");
require(CPO_BASEDIR."_include/var_category.php");
$Artikel_header = 'kontakt_gbuch';
$Rubric_header_view = 0;
isset($_GET['action']) ? $g_action=$_GET['action'] : $g_action='';
if ($g_action == 'new') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=newsave"; ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Eintrag erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Mitteilung:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newcomment') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=commentsave"; ?>">
<input type="hidden" name="artid" value="<?php echo $_GET['artid'] ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Kommentar erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Mitteilung:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlspecialchars($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlspecialchars($_POST['gbmail']);
$gbtext = nl2br(htmlspecialchars($_POST['gbtext']));
// Feldwerte vorbelegen
$titel = 'Eintrag von '.$gbautor;
$kategorie = 'pinboard';
$template = 'pinboard';
$idx = 'zzzzzz';
$datum = time();
$verfallsdatum = mktime(23,59,0,12,31,2036);
$c_datum = date("Y-m-d H:i:s",time());
$t_datum = date("YmdHis",time());
$random = rand(1000,9999);
$sort_id = $datum.$random;
$article_nr = substr($changer,0,2).$t_datum.$random;
$query = "INSERT INTO ".$dbPrefix."_news ";
$query .= "(artikel_archiv,article_nr,auth,auth_backup,commentary,kategorie,search,template,titel,titel_link,titel_target,untertitel,untertitel_link,untertitel_target,text_1,text_1_target,html_1,text_2,text_2_target,html_2,text_3,text_3_target,html_3,bild,bild_link,bild_target,";
$query .= "datei_name,datei_desc,datei_prolog,link_1,link_text_1,link_target_1,link_2,link_text_2,link_target_2,link_3,link_text_3,link_target_3,datum,verfallsdatum,pub_datum,autor,email,initial,mehr,more_target,idx,freigabe,freigabe_name,freigabe_datum,last_modify,c_time,changer,sort_id) VALUES ";
$query .= "(0,'".$article_nr."','','','','".$kategorie."',0,'".$template."','".$titel."','','','','','','','',0,'".$gbtext."','',0,'','',0,'','','',";
$query .= "'','','','','','','','','','','','',".$datum.",".$verfallsdatum.",".$datum.",'".$gbautor."','".$gbmail."','','','','".$idx."',0,'".$changer."',".$datum.",0,'".$c_datum."','".$changer."',".$sort_id.")";
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Eintrag im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
if ($g_action == 'commentsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
//Bisherige Kommentare aus der Datenbank laden
$query = "SELECT text_3 FROM ".$dbPrefix."_news WHERE nr = ".$_POST['artid'];
$db->query($query);
$db->next_record();
$comments = $db->v('text_3');
$comments = stripslashes($comments);
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlspecialchars($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlspecialchars($_POST['gbmail']);
$gbtext = '<strong>Kommentar von: <a href="mailto:'.$gbmail.'">'.$gbautor.'</a> am '.date('d.m.Y', time()).'</strong><br />'.nl2br(htmlspecialchars($_POST['gbtext']));
$gbtext = addslashes($comments.'<p>'.$gbtext.'</p>');
// Fortsetzungstext des betreffenden Artikels updaten
$query = 'UPDATE '.$dbPrefix.'_news ';
$query .='SET text_3 = "'.$gbtext.'" ';
$query .='WHERE nr = '.$_POST['artid'];
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Kommentar im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
header("Location: ../pinboard/index.php");
?>
5. Zuletzt das Script pinboard.php im Browser aufrufen und den ersten Beitrag erstellen. Fertig.
Viel Spaß damit
Gruß Volker
- semf
- Modul-Entwickler
- Beiträge: 1853
- Registriert: 01.01.1970 01:00
- Wohnort: Gütersloh-Friedrichsdorf
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 40 Mal
- Kontaktdaten:
Re: Gästebuch kommentierbar
hallo vurt,
ich bin gerade dabei, das gästebuch an einen webauftritt anzupassen. dabei ist mir aufgefallen, das eine leere eingabe auch gespeichert wird! ich habe die abschnitte 'newsave' und 'commentsave' ungefähr so abegändert:
<!-- schnipp -->
if ($g_action == 'commentsave') {
//Kommentartext auslesen
$commenttext = $_POST['gbtext'];
if (!empty ($commenttext)) {
speicher Kommentar ....
}
<!-- schnapp -->
ich bin gerade dabei, das gästebuch an einen webauftritt anzupassen. dabei ist mir aufgefallen, das eine leere eingabe auch gespeichert wird! ich habe die abschnitte 'newsave' und 'commentsave' ungefähr so abegändert:
<!-- schnipp -->
if ($g_action == 'commentsave') {
//Kommentartext auslesen
$commenttext = $_POST['gbtext'];
if (!empty ($commenttext)) {
speicher Kommentar ....
}
<!-- schnapp -->
Viel Erfolg!
Module ConPresso 4.x
Latest News
Tell-a-friend
Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend
Modul-Download
Module ConPresso 4.x
Latest News
Tell-a-friend
Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend
Modul-Download
Re: Gästebuch kommentierbar
Hi semf,
Du hast recht. Ich habe diese Möglichkeit jetzt abgefangen. Zusätzlich kann man inzwischen dem Eintrag auch einen Titel verpassen. Dazu verwende ich den Conpresso Untertitel. Folgende Modifikationen sind dafür notwendig.
1. Template:
<table width="555" border="0" cellspacing="3" cellpadding="4"
align="center" class="artikelbox">
<tr>
<td class="pinboardtitle1"><%cpAuthor%> schrieb am
<%cpDate%></td>
</tr>
<tr>
<td class="pinboardtitle2"><strong><%cpSubtitle%></strong></td>
</tr>
<tr>
<td class="pinboardtext"><%cpText2%></td>
</tr>
<%ifText3%>
<tr>
<td class="commentbox"><%cpText3%></td>
</tr>
<%/ifText3%>
<tr>
<td align="right" class="text">
<a href="pinboard.php?action=newcomment&artid=<%cpID%>"
class="more">Diesen Artikel
kommentieren</a><br />
<a href="pinboard.php?action=new"
class="more"> Neuer Artikel</a>
</td>
</tr>
</table>
2. pinboard.php
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap: */
define('CPO', true);
if (file_exists("../_cfg/const.php")) require("../_cfg/const.php");
else require("../_cfg/const.php.dist");
require(CPO_BASEDIR."_include/category_rubric.inc.php");
require(CPO_BASEDIR."_include/var_category.php");
$Artikel_header = 'Pinboard - Neuer Eintrag';
$Rubric_header_view = 0;
isset($_GET['action']) ? $g_action=$_GET['action'] : $g_action='';
if ($g_action == 'new') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=newsave"; ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Eintrag erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" value="<?php echo $SID_email ?>" class="i2"></td>
</tr>
<tr>
<td align="right">Titel:</td>
<td><input type="text" name="gbtitle" size="60" maxlength="50" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Mitteilung:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
<//tr>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newcomment') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=commentsave"; ?>">
<input type="hidden" name="artid" value="<?php echo $_GET['artid'] ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Kommentar erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" value="<?php echo $SID_email ?>" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Kommentar:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlspecialchars($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlspecialchars($_POST['gbmail']);
$gbtext = nl2br(htmlspecialchars($_POST['gbtext']));
$_POST['gbtitle'] != '' ? $gbtitle = htmlspecialchars($_POST['gbtitle']) : $gbtitle = 'Ohne Titel';
// Feldwerte vorbelegen
$titel = 'Eintrag von '.$gbautor;
$kategorie = 'pinboard';
$template = 'pinboard';
$idx = 'zzzzzz';
$datum = time();
$verfallsdatum = mktime(23,59,0,12,31,2036);
$c_datum = date("Y-m-d H:i:s",time());
$t_datum = date("YmdHis",time());
$random = rand(1000,9999);
$sort_id = $datum.$random;
$article_nr = substr($changer,0,2).$t_datum.$random;
if ($gbtext != '')
{
$query = "INSERT INTO ".$dbPrefix."_news ";
$query .= "(artikel_archiv,article_nr,auth,auth_backup,commentary,kategorie,search,template,titel,titel_link,titel_target,untertitel,untertitel_link,untertitel_target,text_1,text_1_target,html_1,text_2,text_2_target,html_2,text_3,text_3_target,html_3,bild,bild_link,bild_target,";
$query .= "datei_name,datei_desc,datei_prolog,link_1,link_text_1,link_target_1,link_2,link_text_2,link_target_2,link_3,link_text_3,link_target_3,datum,verfallsdatum,pub_datum,autor,email,initial,mehr,more_target,idx,freigabe,freigabe_name,freigabe_datum,last_modify,c_time,changer,sort_id) VALUES ";
$query .= "(0,'".$article_nr."','','','','".$kategorie."',0,'".$template."','".$titel."','','','".$gbtitle."','','','','',0,'".$gbtext."','',0,'','',0,'','','',";
$query .= "'','','','','','','','','','','','',".$datum.",".$verfallsdatum.",".$datum.",'".$gbautor."','".$gbmail."','','','','".$idx."',0,'".$changer."',".$datum.",0,'".$c_datum."','".$changer."',".$sort_id.")";
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Eintrag im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "From: conpresso@theater-suendenfall.de\n";
$xtra .= "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
else
{
header("Location: ../pinboard/pinboard.php?action=new");
exit;
}
}
if ($g_action == 'commentsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
//Bisherige Kommentare aus der Datenbank laden
$query = "SELECT text_3 FROM ".$dbPrefix."_news WHERE nr = ".$_POST['artid'];
$db->query($query);
$db->next_record();
$comments = $db->v('text_3');
$comments = stripslashes($comments);
if ($_POST['gbtext'] != '')
{
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlspecialchars($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlspecialchars($_POST['gbmail']);
$gbtext = '<strong>Kommentar von: <a href="mailto:'.$gbmail.'">'.$gbautor.'</a> am '.date('d.m.Y', time()).'</strong><br />'.nl2br(htmlspecialchars($_POST['gbtext']));
$gbtext = addslashes($comments.'<p>'.$gbtext.'</p>');
// Fortsetzungstext des betreffenden Artikels updaten
$query = 'UPDATE '.$dbPrefix.'_news ';
$query .='SET text_3 = "'.$gbtext.'" ';
$query .='WHERE nr = '.$_POST['artid'];
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Kommentar im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "From: conpresso@theater-suendenfall.de\n";
$xtra .= "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
else {
header("Location: ../pinboard/pinboard.php?action=newcomment&artid=".$_POST['artid']);
exit;
}
}
header("Location: ../pinboard/index.php");
?>
3. Rubrikeinstellungen:
Untertitel: Editierbar, Seite 1
Prinzipiell wäre damit auch eine Art einfaches Forum möglich, wenn man das Template so anpasst, dass auf Seite 1 nur Titel und Untertitel und auf der Detailseite dann der gesamte Eintrag mit Kommentaren angezeigt wird.
Gruss Volker
Beitrag bearbeitet (13.07.04 14:58)
Du hast recht. Ich habe diese Möglichkeit jetzt abgefangen. Zusätzlich kann man inzwischen dem Eintrag auch einen Titel verpassen. Dazu verwende ich den Conpresso Untertitel. Folgende Modifikationen sind dafür notwendig.
1. Template:
<table width="555" border="0" cellspacing="3" cellpadding="4"
align="center" class="artikelbox">
<tr>
<td class="pinboardtitle1"><%cpAuthor%> schrieb am
<%cpDate%></td>
</tr>
<tr>
<td class="pinboardtitle2"><strong><%cpSubtitle%></strong></td>
</tr>
<tr>
<td class="pinboardtext"><%cpText2%></td>
</tr>
<%ifText3%>
<tr>
<td class="commentbox"><%cpText3%></td>
</tr>
<%/ifText3%>
<tr>
<td align="right" class="text">
<a href="pinboard.php?action=newcomment&artid=<%cpID%>"
class="more">Diesen Artikel
kommentieren</a><br />
<a href="pinboard.php?action=new"
class="more"> Neuer Artikel</a>
</td>
</tr>
</table>
2. pinboard.php
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap: */
define('CPO', true);
if (file_exists("../_cfg/const.php")) require("../_cfg/const.php");
else require("../_cfg/const.php.dist");
require(CPO_BASEDIR."_include/category_rubric.inc.php");
require(CPO_BASEDIR."_include/var_category.php");
$Artikel_header = 'Pinboard - Neuer Eintrag';
$Rubric_header_view = 0;
isset($_GET['action']) ? $g_action=$_GET['action'] : $g_action='';
if ($g_action == 'new') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=newsave"; ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Eintrag erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" value="<?php echo $SID_email ?>" class="i2"></td>
</tr>
<tr>
<td align="right">Titel:</td>
<td><input type="text" name="gbtitle" size="60" maxlength="50" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Mitteilung:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
<//tr>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newcomment') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=commentsave"; ?>">
<input type="hidden" name="artid" value="<?php echo $_GET['artid'] ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Kommentar erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" value="<?php echo $SID_email ?>" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Kommentar:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlspecialchars($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlspecialchars($_POST['gbmail']);
$gbtext = nl2br(htmlspecialchars($_POST['gbtext']));
$_POST['gbtitle'] != '' ? $gbtitle = htmlspecialchars($_POST['gbtitle']) : $gbtitle = 'Ohne Titel';
// Feldwerte vorbelegen
$titel = 'Eintrag von '.$gbautor;
$kategorie = 'pinboard';
$template = 'pinboard';
$idx = 'zzzzzz';
$datum = time();
$verfallsdatum = mktime(23,59,0,12,31,2036);
$c_datum = date("Y-m-d H:i:s",time());
$t_datum = date("YmdHis",time());
$random = rand(1000,9999);
$sort_id = $datum.$random;
$article_nr = substr($changer,0,2).$t_datum.$random;
if ($gbtext != '')
{
$query = "INSERT INTO ".$dbPrefix."_news ";
$query .= "(artikel_archiv,article_nr,auth,auth_backup,commentary,kategorie,search,template,titel,titel_link,titel_target,untertitel,untertitel_link,untertitel_target,text_1,text_1_target,html_1,text_2,text_2_target,html_2,text_3,text_3_target,html_3,bild,bild_link,bild_target,";
$query .= "datei_name,datei_desc,datei_prolog,link_1,link_text_1,link_target_1,link_2,link_text_2,link_target_2,link_3,link_text_3,link_target_3,datum,verfallsdatum,pub_datum,autor,email,initial,mehr,more_target,idx,freigabe,freigabe_name,freigabe_datum,last_modify,c_time,changer,sort_id) VALUES ";
$query .= "(0,'".$article_nr."','','','','".$kategorie."',0,'".$template."','".$titel."','','','".$gbtitle."','','','','',0,'".$gbtext."','',0,'','',0,'','','',";
$query .= "'','','','','','','','','','','','',".$datum.",".$verfallsdatum.",".$datum.",'".$gbautor."','".$gbmail."','','','','".$idx."',0,'".$changer."',".$datum.",0,'".$c_datum."','".$changer."',".$sort_id.")";
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Eintrag im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "From: conpresso@theater-suendenfall.de\n";
$xtra .= "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
else
{
header("Location: ../pinboard/pinboard.php?action=new");
exit;
}
}
if ($g_action == 'commentsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
//Bisherige Kommentare aus der Datenbank laden
$query = "SELECT text_3 FROM ".$dbPrefix."_news WHERE nr = ".$_POST['artid'];
$db->query($query);
$db->next_record();
$comments = $db->v('text_3');
$comments = stripslashes($comments);
if ($_POST['gbtext'] != '')
{
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlspecialchars($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlspecialchars($_POST['gbmail']);
$gbtext = '<strong>Kommentar von: <a href="mailto:'.$gbmail.'">'.$gbautor.'</a> am '.date('d.m.Y', time()).'</strong><br />'.nl2br(htmlspecialchars($_POST['gbtext']));
$gbtext = addslashes($comments.'<p>'.$gbtext.'</p>');
// Fortsetzungstext des betreffenden Artikels updaten
$query = 'UPDATE '.$dbPrefix.'_news ';
$query .='SET text_3 = "'.$gbtext.'" ';
$query .='WHERE nr = '.$_POST['artid'];
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Kommentar im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "From: conpresso@theater-suendenfall.de\n";
$xtra .= "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
else {
header("Location: ../pinboard/pinboard.php?action=newcomment&artid=".$_POST['artid']);
exit;
}
}
header("Location: ../pinboard/index.php");
?>
3. Rubrikeinstellungen:
Untertitel: Editierbar, Seite 1
Prinzipiell wäre damit auch eine Art einfaches Forum möglich, wenn man das Template so anpasst, dass auf Seite 1 nur Titel und Untertitel und auf der Detailseite dann der gesamte Eintrag mit Kommentaren angezeigt wird.
Gruss Volker
Beitrag bearbeitet (13.07.04 14:58)
Re: Gästebuch kommentierbar
Habe gerade festgestellt, dass es bei Verwendungen bestimmter Sonderzeichen zu Fehlern bei den Datenbankabragen kommen kann.
Mit dieser pinboard.php sollte das Problem behoben sein:
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap: */
define('CPO', true);
if (file_exists("../_cfg/const.php")) require("../_cfg/const.php");
else require("../_cfg/const.php.dist");
require(CPO_BASEDIR."_include/category_rubric.inc.php");
require(CPO_BASEDIR."_include/var_category.php");
$Artikel_header = 'Pinboard - Neuer Eintrag';
$Rubric_header_view = 0;
isset($_GET['action']) ? $g_action=$_GET['action'] : $g_action='';
if ($g_action == 'new') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=newsave"; ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Eintrag erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" value="<?php echo $SID_email ?>" class="i2"></td>
</tr>
<tr>
<td align="right">Titel:</td>
<td><input type="text" name="gbtitle" size="60" maxlength="50" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Mitteilung:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
<//tr>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newcomment') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=commentsave"; ?>">
<input type="hidden" name="artid" value="<?php echo $_GET['artid'] ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Kommentar erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" value="<?php echo $SID_email ?>" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Kommentar:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlentities($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlentities($_POST['gbmail']);
$gbtext = nl2br(htmlentities($_POST['gbtext']));
$_POST['gbtitle'] != '' ? $gbtitle = htmlentities($_POST['gbtitle']) : $gbtitle = 'Ohne Titel';
// Feldwerte vorbelegen
$titel = 'Eintrag von '.$gbautor;
$kategorie = 'pinboard';
$template = 'pinboard';
$idx = 'zzzzzz';
$datum = time();
$verfallsdatum = mktime(23,59,0,12,31,2036);
$c_datum = date("Y-m-d H:i:s",time());
$t_datum = date("YmdHis",time());
$random = rand(1000,9999);
$sort_id = $datum.$random;
$article_nr = substr($changer,0,2).$t_datum.$random;
if ($gbtext != '')
{
$query = "INSERT INTO ".$dbPrefix."_news ";
$query .= "(artikel_archiv,article_nr,auth,auth_backup,commentary,kategorie,search,template,titel,titel_link,titel_target,untertitel,untertitel_link,untertitel_target,text_1,text_1_target,html_1,text_2,text_2_target,html_2,text_3,text_3_target,html_3,bild,bild_link,bild_target,";
$query .= "datei_name,datei_desc,datei_prolog,link_1,link_text_1,link_target_1,link_2,link_text_2,link_target_2,link_3,link_text_3,link_target_3,datum,verfallsdatum,pub_datum,autor,email,initial,mehr,more_target,idx,freigabe,freigabe_name,freigabe_datum,last_modify,c_time,changer,sort_id) VALUES ";
$query .= "(0,'".$article_nr."','','','','".$kategorie."',0,'".$template."','".$titel."','','','".$gbtitle."','','','','',0,'".$gbtext."','',0,'','',0,'','','',";
$query .= "'','','','','','','','','','','','',".$datum.",".$verfallsdatum.",".$datum.",'".$gbautor."','".$gbmail."','','','','".$idx."',0,'".$changer."',".$datum.",0,'".$c_datum."','".$changer."',".$sort_id.")";
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Eintrag im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "From: conpresso@theater-suendenfall.de\n";
$xtra .= "Content-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit \n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
else
{
header("Location: ../pinboard/pinboard.php?action=new");
exit;
}
}
if ($g_action == 'commentsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
//Bisherige Kommentare aus der Datenbank laden
$query = "SELECT text_3 FROM ".$dbPrefix."_news WHERE nr = ".$_POST['artid'];
$db->query($query);
$db->next_record();
$comments = $db->v('text_3');
$comments = stripslashes($comments);
if ($_POST['gbtext'] != '')
{
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlentities($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlentities($_POST['gbmail']);
$gbtext = "<strong>Kommentar von: <a href='mailto:".$gbmail."'>".$gbautor."</a> am ".date('d.m.Y', time())."</strong><br />".nl2br(htmlentities($_POST['gbtext']));
$gbtext = $comments.'<p>'.$gbtext.'</p>';
// Fortsetzungstext des betreffenden Artikels updaten
$query = 'UPDATE '.$dbPrefix.'_news ';
$query .='SET text_3 = "'.$gbtext.'" ';
$query .='WHERE nr = "'.$_POST['artid'].'" ';
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Kommentar im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "From: conpresso@theater-suendenfall.de\n";
$xtra .= "Content-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit \n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
else {
header("Location: ../pinboard/pinboard.php?action=newcomment&artid=".$_POST['artid']);
exit;
}
}
header("Location: ../pinboard/index.php");
?>
Mit dieser pinboard.php sollte das Problem behoben sein:
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap: */
define('CPO', true);
if (file_exists("../_cfg/const.php")) require("../_cfg/const.php");
else require("../_cfg/const.php.dist");
require(CPO_BASEDIR."_include/category_rubric.inc.php");
require(CPO_BASEDIR."_include/var_category.php");
$Artikel_header = 'Pinboard - Neuer Eintrag';
$Rubric_header_view = 0;
isset($_GET['action']) ? $g_action=$_GET['action'] : $g_action='';
if ($g_action == 'new') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=newsave"; ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Eintrag erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" value="<?php echo $SID_email ?>" class="i2"></td>
</tr>
<tr>
<td align="right">Titel:</td>
<td><input type="text" name="gbtitle" size="60" maxlength="50" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Mitteilung:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
<//tr>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newcomment') {
# --- HEADER ---
require(CPO_BASEDIR.$directory."/_inc_header.php");
?>
<form name="form" method="post" action="<?php echo $_SERVER['../PHP_SELF']."?action=commentsave"; ?>">
<input type="hidden" name="artid" value="<?php echo $_GET['artid'] ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td align="center"><b>Einen neuen Kommentar erstellen</b></td>
</tr>
<tr>
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center" bgcolor="#FFFFFF">
<tr>
<td align="right">Name:</td>
<td><input type="text" name="gbautor" size="60" maxlength="50" value="<?php echo $SID_autor ?>" class="i2"></td>
</tr>
<tr>
<td align="right">E-Mail:</td>
<td><input type="text" name="gbmail" size="60" maxlength="50" value="<?php echo $SID_email ?>" class="i2"></td>
</tr>
<tr>
<td align="right" valign="top">Kommentar:</td>
<td><textarea name="gbtext" cols="70" rows="20" class="i2"></textarea></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value=" Abschicken ">
<input type="reset" name="reset" value=" Zurücksetzen ">
</td>
</tr>
</table>
</form>
<?php
# --- FOOTER ---
require("_inc_footer.php");
exit;
}
if ($g_action == 'newsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlentities($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlentities($_POST['gbmail']);
$gbtext = nl2br(htmlentities($_POST['gbtext']));
$_POST['gbtitle'] != '' ? $gbtitle = htmlentities($_POST['gbtitle']) : $gbtitle = 'Ohne Titel';
// Feldwerte vorbelegen
$titel = 'Eintrag von '.$gbautor;
$kategorie = 'pinboard';
$template = 'pinboard';
$idx = 'zzzzzz';
$datum = time();
$verfallsdatum = mktime(23,59,0,12,31,2036);
$c_datum = date("Y-m-d H:i:s",time());
$t_datum = date("YmdHis",time());
$random = rand(1000,9999);
$sort_id = $datum.$random;
$article_nr = substr($changer,0,2).$t_datum.$random;
if ($gbtext != '')
{
$query = "INSERT INTO ".$dbPrefix."_news ";
$query .= "(artikel_archiv,article_nr,auth,auth_backup,commentary,kategorie,search,template,titel,titel_link,titel_target,untertitel,untertitel_link,untertitel_target,text_1,text_1_target,html_1,text_2,text_2_target,html_2,text_3,text_3_target,html_3,bild,bild_link,bild_target,";
$query .= "datei_name,datei_desc,datei_prolog,link_1,link_text_1,link_target_1,link_2,link_text_2,link_target_2,link_3,link_text_3,link_target_3,datum,verfallsdatum,pub_datum,autor,email,initial,mehr,more_target,idx,freigabe,freigabe_name,freigabe_datum,last_modify,c_time,changer,sort_id) VALUES ";
$query .= "(0,'".$article_nr."','','','','".$kategorie."',0,'".$template."','".$titel."','','','".$gbtitle."','','','','',0,'".$gbtext."','',0,'','',0,'','','',";
$query .= "'','','','','','','','','','','','',".$datum.",".$verfallsdatum.",".$datum.",'".$gbautor."','".$gbmail."','','','','".$idx."',0,'".$changer."',".$datum.",0,'".$c_datum."','".$changer."',".$sort_id.")";
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Eintrag im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "From: conpresso@theater-suendenfall.de\n";
$xtra .= "Content-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit \n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
else
{
header("Location: ../pinboard/pinboard.php?action=new");
exit;
}
}
if ($g_action == 'commentsave') {
// Name und EMail-Adresse des Conpresso-Admins ermitteln
$db = new DB;
$query = "SELECT user,email FROM ".$dbPrefix."_user WHERE admin = 4";
$db->query($query);
$db->next_record();
$changer = strtolower($db->v('user'));
$sendto = $db->v('email');
//Bisherige Kommentare aus der Datenbank laden
$query = "SELECT text_3 FROM ".$dbPrefix."_news WHERE nr = ".$_POST['artid'];
$db->query($query);
$db->next_record();
$comments = $db->v('text_3');
$comments = stripslashes($comments);
if ($_POST['gbtext'] != '')
{
// Formularwerte einlesen
$_POST['gbautor'] != '' ? $gbautor = htmlentities($_POST['gbautor']) : $gbautor = 'unbekannt';
$gbmail = htmlentities($_POST['gbmail']);
$gbtext = "<strong>Kommentar von: <a href='mailto:".$gbmail."'>".$gbautor."</a> am ".date('d.m.Y', time())."</strong><br />".nl2br(htmlentities($_POST['gbtext']));
$gbtext = $comments.'<p>'.$gbtext.'</p>';
// Fortsetzungstext des betreffenden Artikels updaten
$query = 'UPDATE '.$dbPrefix.'_news ';
$query .='SET text_3 = "'.$gbtext.'" ';
$query .='WHERE nr = "'.$_POST['artid'].'" ';
$db->query($query);
// Infomail an Conpresso-Admin senden
$subject = "Neuer Kommentar im PinBoard ...";
$body = $subject."<br><br>";
$body .= "Name: ".$gbautor."<br><br>";
$body .= "E-Mail: ".$gbmail."<br><br>";
$body .= "Inhalt:<br>".$gbtext;
$xtra = "From: conpresso@theater-suendenfall.de\n";
$xtra .= "Content-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit \n";
$xtra .= "X-Mailer: PHP ".phpversion();
mail($sendto, $subject, $body, $xtra);
}
else {
header("Location: ../pinboard/pinboard.php?action=newcomment&artid=".$_POST['artid']);
exit;
}
}
header("Location: ../pinboard/index.php");
?>
Re: Gästebuch kommentierbar
Der Gästebuchcode funktioniert, bis auf, dass es nicht den Namen des Erstellers bzw. das Datum anzeigt. Woran kannes liegen. Gibt es eine Option, wo nur ein Redakteur oder der Admin, die Einträge freischalten darf. So will ich das Gästebuch sauber halten!
Re: Gästebuch kommentierbar
wenn Du Dich an die Anleitung oben hältst, dann sollte alles wie gewünscht funktionieren -tut es zumindest bei mir .
D.h. Du verwendest ein Template, das dem Beispiel oben entspricht und Du passt die Rubrikeinstellungen so an, wie oben angegeben.
Gruss VOlker
D.h. Du verwendest ein Template, das dem Beispiel oben entspricht und Du passt die Rubrikeinstellungen so an, wie oben angegeben.
Gruss VOlker
Re: Gästebuch kommentierbar
Ok, jetzt funzt es. Habe allerdings noch Klammern um den Autor.
Wie mache ich das mit den Einträgen manuel freischalten?
Wie mache ich das mit den Einträgen manuel freischalten?
Re: Gästebuch kommentierbar
Hallo Dani,
1. Was die Klammern betrifft: Werden von conpresso generiert. Welche Datei Du hierfür ändern musst, weiß ich nicht. Da wirst Du Dir den Sourcecode anschauen müssen. Prinzipiell könntest Du stattdessen auch andere Felder der Artikeltabelle (cpo_news) verwenden. Dann musst Du das Script pinboard.php bzw. das darin enthaltene SQL-Query und das Template entsprechend ändern.
2. Für das manuelle Freischalten gilt prinzipiell dasselbe. Das Feld heißt soweit ich weiß Freigabe. Dorthin schreibt Conpresso verschiedene Werte für die verschiedenen Status der Artikel. Leider weiß ich jetzt nicht aus dem Stehgreif heraus, was die verschiedenen Werte genau bedeuten. Das musst Du ausprobieren und dann wiederum das Script pinboard.php anpassen.
3. Was Deine Fragen per Mail betrifft: Den "Neuer Artikel Link kann man auch ganz unten auf der Seite platzieren. Dazu mußt Du Ihn aus dem Template entfernen und an richtiger Stelle in den category-footer setzen.
4. Ganz prinzipiell: Solltest Du Dir bzgl. des Konzeptes von Conpresso mal die Administrator Doku zu Gemüte führen. Dann hätten sich einige Deiner Fragen von selbst erledigt. Da ich die Features die Du Dir wünscht nicht benötige, werde ich Dir hier keine Komplettlösung servieren, zumal mir Dein fordernder Ton nicht ganz so gut gefällt.
Viel Erfolg
VOlker
1. Was die Klammern betrifft: Werden von conpresso generiert. Welche Datei Du hierfür ändern musst, weiß ich nicht. Da wirst Du Dir den Sourcecode anschauen müssen. Prinzipiell könntest Du stattdessen auch andere Felder der Artikeltabelle (cpo_news) verwenden. Dann musst Du das Script pinboard.php bzw. das darin enthaltene SQL-Query und das Template entsprechend ändern.
2. Für das manuelle Freischalten gilt prinzipiell dasselbe. Das Feld heißt soweit ich weiß Freigabe. Dorthin schreibt Conpresso verschiedene Werte für die verschiedenen Status der Artikel. Leider weiß ich jetzt nicht aus dem Stehgreif heraus, was die verschiedenen Werte genau bedeuten. Das musst Du ausprobieren und dann wiederum das Script pinboard.php anpassen.
3. Was Deine Fragen per Mail betrifft: Den "Neuer Artikel Link kann man auch ganz unten auf der Seite platzieren. Dazu mußt Du Ihn aus dem Template entfernen und an richtiger Stelle in den category-footer setzen.
4. Ganz prinzipiell: Solltest Du Dir bzgl. des Konzeptes von Conpresso mal die Administrator Doku zu Gemüte führen. Dann hätten sich einige Deiner Fragen von selbst erledigt. Da ich die Features die Du Dir wünscht nicht benötige, werde ich Dir hier keine Komplettlösung servieren, zumal mir Dein fordernder Ton nicht ganz so gut gefällt.
Viel Erfolg
VOlker
Re: Gästebuch kommentierbar
Sorry es tut mir leid. Ich lasse es lieber. Ich bekomm es nicht hin.
Tschaui
Tschaui
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Re: Gästebuch kommentierbar
Nun habe ich auch mal Volkers Gästebuch in einen Webauftritt eingebaut und finde das Konzept recht gelungen!
Glückwunsch!
Nun zu den anstehenden Fragen:
Die Klammern um den Autor
werden in _include/template_first_header.php gesetzt.
Einfach den Teil
durch
ersetzen.
Und damit die Einträge freigegeben werden müssen, muß nur die Freigabe auf "2" gestellt werden, also
geändert werden in
Ich finde aber Gästebücher, die ein Freigabe erfordern, langweilig ;o) ...
daher bleibt das bei mir auf "0"
Glückwunsch!
Nun zu den anstehenden Fragen:
Die Klammern um den Autor
werden in _include/template_first_header.php gesetzt.
Einfach den Teil
Code: Alles auswählen
// ------------------------------------------------------------------------------------------
// Autor
$cpContent["Author"] = '';
if ( $feld_autor == 1 )
{
$cpContent["Author"] .= '<span class="datum">';
if ( $db_email != '' && ( $feld_email == 1 )) {
$cpContent["Author"] .= '[<A HREF="mailto:'.$db_email.'" class="al">'.$db_autor.'</A>]';
} else {
$cpContent["Author"] .= '['.$db_autor.']';
}
$cpContent["Author"] .= "</span>";
}
Code: Alles auswählen
// -------------------------------------------------------------------------------------------
// Autor
$cpContent["Author"] = '';
if ( $feld_autor == 1 )
{
$cpContent["Author"] .= '<span class="datum">';
if ( $db_email != '' && ( $feld_email == 1 )) {
$cpContent["Author"] .= '<A HREF="mailto:'.$db_email.'" class="al">'.$db_autor.'</A>';
} else {
$cpContent["Author"] .= $db_autor;
}
$cpContent["Author"] .= "</span>";
}
Und damit die Einträge freigegeben werden müssen, muß nur die Freigabe auf "2" gestellt werden, also
Code: Alles auswählen
... '".$idx."',0,'".$changer."' ...
Code: Alles auswählen
... '".$idx."',2,'".$changer."' ...
daher bleibt das bei mir auf "0"
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Re: Gästebuch kommentierbar
...nur damit niemand denkt, dass ich mich hier mit falschen Federn schmücke:
Die Gästebuchlösung ist nicht von mir (das Orginal findet sich auch hier im Forum), ich habe nur die Möglichkeit hinzugefügt, Einträge zu kommentieren.
Gruss Volker
Die Gästebuchlösung ist nicht von mir (das Orginal findet sich auch hier im Forum), ich habe nur die Möglichkeit hinzugefügt, Einträge zu kommentieren.
Gruss Volker
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Re: Gästebuch kommentierbar
Ooops... ja sorry... stammt von hier
-> http://www.conpresso.de/conpresso/phoru ... =401&t=401
Also auch Danke an Martin! ;o)
Auto-Edit: Link veraltet - neuer Link: http://community.conpresso.de/viewtopic.php?t=1163#5691
-> http://www.conpresso.de/conpresso/phoru ... =401&t=401
Also auch Danke an Martin! ;o)
Auto-Edit: Link veraltet - neuer Link: http://community.conpresso.de/viewtopic.php?t=1163#5691
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ich muss jetzt diesen etwas älteren Thread wieder hoch holen. Ich hatte ursprünglich die Gästebuch-Einträge so eingestellt, dass sie nur dann erscheinen, wenn man sie freischaltet. Kommischerweise erscheinen die mittlerweile, obwohl im Backend das Symbol auf nicht freigeschalten steht?
Wer kann helfen?
Code poste ich später, da grad kein FTP-Tool zur Hand.
Wer kann helfen?
Code poste ich später, da grad kein FTP-Tool zur Hand.