ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Gästebuch kommentierbar
Gehe zu Seite 1, 2  Weiter
 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> ConPresso 3.x
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
vurt
ConPresso-Newbie


Anmeldungsdatum: 01.01.1970
Beiträge: 18

BeitragVerfasst am: 13.07.2004 11:29    Titel: Gästebuch kommentierbar Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
semf
Modul-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1853
Wohnort: Gütersloh-Friedrichsdorf

BeitragVerfasst am: 13.07.2004 12:52    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

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:



if ($g_action == 'commentsave') {

//Kommentartext auslesen
$commenttext = $_POST['gbtext'];

if (!empty ($commenttext)) {

speicher Kommentar ....

}




_________________
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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
vurt
ConPresso-Newbie


Anmeldungsdatum: 01.01.1970
Beiträge: 18

BeitragVerfasst am: 13.07.2004 13:57    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

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:5Cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
vurt
ConPresso-Newbie


Anmeldungsdatum: 01.01.1970
Beiträge: 18

BeitragVerfasst am: 14.07.2004 15:00    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

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");
?>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dani
ConPresso-User


Anmeldungsdatum: 01.01.1970
Beiträge: 38

BeitragVerfasst am: 11.10.2004 14:20    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

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!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dani
ConPresso-User


Anmeldungsdatum: 01.01.1970
Beiträge: 38

BeitragVerfasst am: 12.10.2004 15:29    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

Wäre schön, wenn jemand ne Lösung parat hätte!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Volker Hartmann
Gast





BeitragVerfasst am: 12.10.2004 15:33    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

wenn Du Dich an die Anleitung oben hältst, dann sollte alles wie gewünscht funktionieren -tut es zumindest bei mir Wink.
D.h. Du verwendest ein Template, das dem Beispiel oben entspricht und Du passt die Rubrikeinstellungen so an, wie oben angegeben.

Gruss VOlker

Nach oben
Dani
ConPresso-User


Anmeldungsdatum: 01.01.1970
Beiträge: 38

BeitragVerfasst am: 12.10.2004 17:18    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

Ok, jetzt funzt es. Habe allerdings noch Klammern um den Autor.

Wie mache ich das mit den Einträgen manuel freischalten?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Volker Hartmann
Gast





BeitragVerfasst am: 13.10.2004 15:34    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

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

Nach oben
Dani
ConPresso-User


Anmeldungsdatum: 01.01.1970
Beiträge: 38

BeitragVerfasst am: 13.10.2004 21:27    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

Sorry es tut mir leid. Ich lasse es lieber. Ich bekomm es nicht hin.
Tschaui
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7010

BeitragVerfasst am: 17.10.2004 16:47    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

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
Code:
// ------------------------------------------------------------------------------------------
// Autor
$cpContent["Author"] = '';
if ( $feld_autor == 1 )
{
$cpContent["Author"] .= '';
if ( $db_email != '' && ( $feld_email == 1 )) {
$cpContent["Author"] .= '['.$db_autor.']';
} else {
$cpContent["Author"] .= '['.$db_autor.']';
}
$cpContent["Author"] .= "
";
}

durch
Code:
// -------------------------------------------------------------------------------------------
// Autor
$cpContent["Author"] = '';
if ( $feld_autor == 1 )
{
$cpContent["Author"] .= '';
if ( $db_email != '' && ( $feld_email == 1 )) {
$cpContent["Author"] .= ''.$db_autor.'';
} else {
$cpContent["Author"] .= $db_autor;
}
$cpContent["Author"] .= "
";
}

ersetzen.

Und damit die Einträge freigegeben werden müssen, muß nur die Freigabe auf "2" gestellt werden, also
Code:
... '".$idx."',0,'".$changer."' ...

geändert werden in
Code:
... '".$idx."',2,'".$changer."' ...


Ich finde aber Gästebücher, die ein Freigabe erfordern, langweilig ;o) ...
daher bleibt das bei mir auf "0"


_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Volker Hartmann
Gast





BeitragVerfasst am: 17.10.2004 23:48    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

...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

Nach oben
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7010

BeitragVerfasst am: 18.10.2004 00:33    Titel: Re: Gästebuch kommentierbar Antworten mit Zitat

Ooops... ja sorry... stammt von hier
-> http://www.conpresso.de/conpresso/phorum/read.php?f=5&i=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
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dani1978
Gast





BeitragVerfasst am: 18.11.2005 20:30    Titel: Antworten mit Zitat

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.
Nach oben
Dani1978
Gast





BeitragVerfasst am: 21.11.2005 15:35    Titel: Antworten mit Zitat

Kann mir jemand weiterhelfen. Liegt die Entsperrung der Freischaltung eventuell am ehemaligen Datumsproblem von Conpresso.
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> ConPresso 3.x Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen