Modul 4.4.x Comments v0.0.1
Verfasst: Sa 29. Mai 2004, 10:16
hab mich mal hingesetzt und was geschrieben wobei ich mir dachte ich brauchs mal. leider hab ich momentan keine verwendung dafür. ist zwar nicht perfekt aber funktioniert ganz gut.
sobald man das erste mal die konfiguration aufruft wird die tabelle con_comments angelegt und ein eintrag in der con_sequence als zähler vorgenommen.
ich hab bewusst keinerlei textformatierungen reingebaut. das soll jedem selbst überlassen bleiben.
im backend hat man die möglichkeit einträge zu löschen.
die kommentare werden der idart des artikels zugeordnet. sie sind client und sprachabhängig.
es fehlt noch die möglichkeit einträge online und offline zu schalten -> dafür wäre das feld status vorgesehen.
ebenso eine konfigurierbare möglichkeit wieviele einträge angezeigt werden sollen und eine blätter funktion etc...
verbesserungsvorschläge willkommen...
Beschreibung:
Input:
Output:
sobald man das erste mal die konfiguration aufruft wird die tabelle con_comments angelegt und ein eintrag in der con_sequence als zähler vorgenommen.
ich hab bewusst keinerlei textformatierungen reingebaut. das soll jedem selbst überlassen bleiben.
im backend hat man die möglichkeit einträge zu löschen.
die kommentare werden der idart des artikels zugeordnet. sie sind client und sprachabhängig.
es fehlt noch die möglichkeit einträge online und offline zu schalten -> dafür wäre das feld status vorgesehen.
ebenso eine konfigurierbare möglichkeit wieviele einträge angezeigt werden sollen und eine blätter funktion etc...
verbesserungsvorschläge willkommen...
Beschreibung:
Code: Alles auswählen
# Comments v0.0.1
# Autor: Martin Horwath
# Date: 24.04.2004
# Requires: Contenido 4.4.4
Code: Alles auswählen
/**
* Comments v0.0.1
*
* INPUT
*
* @autor Martin Horwath <horwath@dayside.net>
* @copyright dayside.net 2004
*/
// configuration
$cfg["tab"]["comments"] = $cfg['sql']['sqlprefix']."_comments"; // for syntax reasons only
if($db->query("SELECT * FROM ".$cfg["tab"]["comments"]." WHERE idclient =".$client." AND idlang = ".$lang)) {
// do something table exists
echo "Works...";
} else {
echo "error-> table: ".$cfg["tab"]["comments"]." does not exist<br>";
// init table creation
$sql= "CREATE TABLE ".$cfg["tab"]["comments"]." (
idcomments INT(10) NOT NULL default '0',
idclient INT(10) NOT NULL default '0',
idlang INT(10) NOT NULL default '0',
idart INT(10) NOT NULL default '0',
text text NOT NULL default '',
name varchar(64) NOT NULL,
email varchar(64) NOT NULL default '',
status INT(10) NOT NULL default '0',
created datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (idcomments) )";
if ($db->query($sql)) {
// table successfully created
echo "init-> created table: ".$cfg["tab"]["comments"]."<br>";
} else {
echo "error-> table: ".$cfg["tab"]["comments"]."<br>";
}
$sql= "INSERT INTO ".$cfg["tab"]["sequence"]." (seq_name,nextid) VALUES ('".$cfg["tab"]["comments"]."','0')";
if ($db->query($sql)) {
// value successfully insert
echo "init-> value insert into ".$cfg["tab"]["sequence"]." - ".$cfg["tab"]["comments"]."<br>";
} else {
echo "error-> value: ".$cfg["tab"]["sequence"]." - ".$cfg["tab"]["comments"]."<br>";
}
}
Code: Alles auswählen
<?
/**
* Comments v0.0.1
*
* OUTPUT
*
* @autor Martin Horwath <horwath@dayside.net>
* @copyright dayside.net 2004
*/
// configuration
$cfg["tab"]["comments"] = $cfg['sql']['sqlprefix']."_comments"; // for syntax reasons only
$clink = "front_content.php?&idcat=$idcat&idart=$idart&lang=$lang&client=$client";
if ($cmode == "delete" && $edit) {
$sql = "DELETE FROM ".$cfg["tab"]["comments"]." WHERE idcomments = $commentid";
if ($db->query($sql)) {
echo "Deleted<br>";
} else {
echo "Delete failed<br>";
}
unset($cmode);
}
if (trim($commentname) == "" && trim($commentemail) == "" && trim($commenttext) == "" && $cmode == "add" ) unset($cmode); // do nothing
if ($cmode == "add") {
// check if all entries are correct otherwise show form
if (trim($commentname) == "") {
echo "Bitte einen Namen eingeben.<br>";
$cmode = "form";
}
if (trim($commentemail) != "") {
if (!preg_match("/^[\w-]+((\.|\+)[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/i",$commentemail)) {
echo "Bitte geben Sie eine korrekte Email Adresse an.<br>";
$cmode = "form";
}
}
if (trim($commenttext) == "") {
echo "Sie haben kein Kommentar geschrieben.<br>";
$cmode = "form";
}
if ($cmode == "add") {
$sql = "INSERT INTO ".$cfg["tab"]["comments"]." (idcomments,idclient,idlang,idart,text,name,email,status,created) VALUES ('".$db->nextid($cfg["tab"]["comments"])."','".$client."','".$lang."','".$idart."','".$commenttext."','".$commentname."','".$commentemail."','1','".date("Y-m-d H:i:s")."')";
if ($db->query($sql)) {
echo "Created<br>";
} else {
echo "Creation failed<br>";
}
unset($cmode); // show all comments
}
}
if (!$cmode) { // show comments
if($db->query("SELECT * FROM ".$cfg["tab"]["comments"]." WHERE idclient =".$client." AND idlang = ".$lang." AND idart = ".$idart."")) {
$clinkform = $clink."&cmode=form";
if ($edit) {
$clinkform = $sess->url($clinkform);
}
echo '<a href="'.$clinkform.'">Kommentar hinzufügen</a><br>';
while ($db->next_record()) {
if ($db->f("email") != "") {
$comment['header'] = '<a href="mailto:'.$db->f("email").'">%s</a>';
} else {
$comment['header'] = '%s';
}
$comment['header'] = sprintf($comment['header'],$db->f("name"));
$comment['header'] .= " schrieb am ".$db->f("created");
$comment['text'] = $db->f("text");
echo "<p><b>".$comment['header']."</b><br>\n".$comment['text']."</p>\n";
if ($edit) {
$clinkdelete = $sess->url($clink."&cmode=delete&commentid=".$db->f("idcomments"));
echo '<br><a href="'.$clinkdelete.'">Delete</a>';
}
echo "<hr size=\"1\">\n";
}
} else {
echo "<!-- comments init failed - table does not exist //-->";
}
} else { // show form
if ($cmode == "form") {
echo ("<form name=\"comments\" method=\"post\" action=\"$clink\">");
echo ("<table cellpadding=\"0\" cellspacing=\"0\">");
echo ("<tr>");
echo ("<td width=\"120\"><p>Name:</p></td>");
echo ("<td><input type=\"text\" name=\"commentname\" size=\"30\" value=\"$commentname\"></td>");
echo ("</tr>");
echo ("<tr>");
echo ("<td><p>Email:</p></td>");
echo ("<td><input type=\"text\" name=\"commentemail\" size=\"30\" value=\"$commentemail\"></td>");
echo ("</tr>");
echo ("</table>");
echo ("<input type=text size=\"60\" name=\"commenttext\" value=\"$commenttext\">");
echo ("<input type=\"hidden\" name=\"cmode\" value=\"add\">");
echo ("<input type=\"submit\" name=\"submit\" value=\"Absenden\">");
echo ("</form>");
}
}
?>