Vorschlag für vpComment (basierend auf vpGuestbook 1.9)
Verfasst: Di 31. Jan 2006, 18:45
Habe das vpGuestbook 1.9 umgebaut. Ziel war folgendes:
1. Guestbook muss nicht eine eigene Kategorie haben, sondern kann in allen Seiten integriert werden.
2. Einträge können nur gemacht werden, wenn man sich einloggt. Der Login funktioniert via dem Login-Modul vom Beispiel-Mandant c4.6.4. Das Eingabeformular wird nur angezeigt, wenn man eingeloggt ist. Das ganze Anmelde- und Abmeldeverfahren wird durch das Newsletter-Modul von HerrB gemacht (latürnich auch im Beispiel-Mandanten vorhanden)
3. Beim ersten Eintrag kann man ein Pseudonym als Namen eingeben. Dieses Pseudonym wird dann in der Tabelle con_frontendusers abgelegt. Das entsprechende Feld MUSS SELBER ERSTELLT WERDEN. Z.B. mit:Anschliessend wird geprüft, ob das Pseudo schon vorhanden ist. Dieses Pseudo wird dann jeweils auch als "Name" in der Tabelle "con_vpguestbook" abgelegt. Logischer wäre die UID, bringt aber Probleme, wenn der user seinen account wieder löscht (Dann hätte ich das Pseudo nicht mehr zum ausgeben..).
4. Wenn ein Eintrag abgesendet wurde wird auch jeweils die letzte Seite der Kommentare aufgerufen. Ähm, ja, die Einträge werden natürlich "ORDER BY date" ausgegeben, sonst macht das lesen ja keinen Spass.
DIES IST ALPHA-CODE - VERWENDUNG AUF EINGENE GEFAHR
Bitte: testen, testen, testen
@Dodger77: ich habe das nur nicht in Deinen Thread gepostet, damit dann nicht Fragen zu diesem Code mit Fragen zum vpGuestbook 1.9 vermischt werden. Hoffe, Du hast da nichts dagegen. Und, Dankeschön für Deinen Code. Ich habe jetzt hoffentlich nicht nur Fehler eingebaut...
Bitte beachten: Dieser Code benötigt die Dateien vom vpGuestbook. Also:
- class.ExtendedTemplate.php
- Ordner smilies mit Inhalt
- vpguestbook_ausgabe.html sowie
- vpguestbook_eintrag.html
- vpGuestbook.pdf ist sicher auch nützlich (Wenn sich schon mal jemand die Zeit für eine Beschreibung nimmt...)
mehr dazu unter http://contenido.org/forum/viewtopic.php?p=61620#61620
Hier der Code für den INPUT
und Code für den OUTPUT im übernächsten Beitrag.
1. Guestbook muss nicht eine eigene Kategorie haben, sondern kann in allen Seiten integriert werden.
2. Einträge können nur gemacht werden, wenn man sich einloggt. Der Login funktioniert via dem Login-Modul vom Beispiel-Mandant c4.6.4. Das Eingabeformular wird nur angezeigt, wenn man eingeloggt ist. Das ganze Anmelde- und Abmeldeverfahren wird durch das Newsletter-Modul von HerrB gemacht (latürnich auch im Beispiel-Mandanten vorhanden)
3. Beim ersten Eintrag kann man ein Pseudonym als Namen eingeben. Dieses Pseudonym wird dann in der Tabelle con_frontendusers abgelegt. Das entsprechende Feld MUSS SELBER ERSTELLT WERDEN. Z.B. mit:
Code: Alles auswählen
ALTER TABLE con_frontendusers ADD pseudonym varchar(60) NOT NULL default '';
4. Wenn ein Eintrag abgesendet wurde wird auch jeweils die letzte Seite der Kommentare aufgerufen. Ähm, ja, die Einträge werden natürlich "ORDER BY date" ausgegeben, sonst macht das lesen ja keinen Spass.
DIES IST ALPHA-CODE - VERWENDUNG AUF EINGENE GEFAHR
Bitte: testen, testen, testen
@Dodger77: ich habe das nur nicht in Deinen Thread gepostet, damit dann nicht Fragen zu diesem Code mit Fragen zum vpGuestbook 1.9 vermischt werden. Hoffe, Du hast da nichts dagegen. Und, Dankeschön für Deinen Code. Ich habe jetzt hoffentlich nicht nur Fehler eingebaut...
Bitte beachten: Dieser Code benötigt die Dateien vom vpGuestbook. Also:
- class.ExtendedTemplate.php
- Ordner smilies mit Inhalt
- vpguestbook_ausgabe.html sowie
- vpguestbook_eintrag.html
- vpGuestbook.pdf ist sicher auch nützlich (Wenn sich schon mal jemand die Zeit für eine Beschreibung nimmt...)
mehr dazu unter http://contenido.org/forum/viewtopic.php?p=61620#61620
Hier der Code für den INPUT
Code: Alles auswählen
/******************************************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : vpComment-Alpha 0.1
* Basierend auf : vpGuestbook 1.9
* Author : Ingo van Peeren
* Copyright : Ingo van Peeren (ingo@van-peeren.de)
* Created : 2005-03-14
* Modified : 2006-01-31 by Thomas Thut
* Detail : Der INPUT-Teil von Ausgabe und Eingabe
* von vpGuestbook zusammengelegt in
* ein Modul
******************************************************************/
$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";
$db = new DB_Contenido;
$sql = "CREATE TABLE IF NOT EXISTS `".$cfg["tab"]["vpguestbook"]."` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(60) NOT NULL default '',
`email` varchar(80) NOT NULL default '',
`url` varchar(80) NOT NULL default '',
`entry` text NOT NULL,
`image` varchar(255) NOT NULL default '',
`comment` text NOT NULL,
`iphost` varchar(60) NOT NULL default '',
`user1` varchar(255) NOT NULL default '',
`user2` varchar(255) NOT NULL default '',
`user3` varchar(255) NOT NULL default '',
`active` int(1) NOT NULL default '1',
`client` int(10) NOT NULL default '0',
`lang` int(10) NOT NULL default '0',
`art` int(10) NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `client` (`client`),
KEY `lang` (`lang`),
KEY `art` (`art`)
) TYPE=MyISAM;";
$db->query($sql);
$hier = getcwd ();
if ($cfgClient[$client][tpl][path])
{chdir($cfgClient[$client][tpl][path]);}
else
{chdir($cfgClient[$client][path][frontend]."templates/");}
$handle = opendir(".");
while ($file = readdir($handle)) {
if (is_dir($file)) $dirlist[] = $file;
if (is_file($file)) $filelist[] = $file;
}
closedir($handle);
chdir($hier);
if ($filelist){
asort($filelist);
$filelist2 = $filelist;
}
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";
echo "<tr valign=\"top\"><td>Ausgabe mandantenspezifisch: ";
echo "</td><td><input type=\"checkbox\" name=\"CMS_VAR[1]\" value=\"1\" ";
if("CMS_VALUE[1]"== 1) {echo "checked=\"checked\" ";}
echo ">";
echo "</td></tr>";
echo "<tr valign=\"top\"><td>Ausgabe sprachspezifisch: ";
echo "</td><td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"1\" ";
if("CMS_VALUE[2]"== 1) {echo "checked=\"checked\" ";}
echo ">";
echo "</td></tr>";
echo "<tr><td>Templatedatei Ausgabe: ";
echo "<td><select size=\"1\" name=\"CMS_VAR[3]\">";
while (list ($key, $file) = each ($filelist)) {
echo "<option value=\"$file\"";
if ("CMS_VALUE[3]"== $file) echo " selected=\"selected\" ";
echo ">$file</option>";
}
echo "</td></tr>";
echo "<tr><td>Templatedatei Eingabe: ";
echo "<td><select size=\"1\" name=\"CMS_VAR[15]\">";
while (list ($key2, $file2) = each ($filelist2)) {
echo "<option value=\"$file2\"";
if ("CMS_VALUE[15]"== $file2) echo " selected=\"selected\" ";
echo ">$file2</option>";
}
echo "</td></tr>";
echo "<tr>";
echo "<td>Templateklasse:</td><td><INPUT TYPE=\"radio\" name=\"CMS_VAR[4]\" value=\"normal\" ";
if ("CMS_VALUE[4]"=="normal") echo "checked=\"checked\" ";
echo "> normale Klasse <input type=\"radio\" name=\"CMS_VAR[4]\" value=\"extended\" ";
if ("CMS_VALUE[4]"=="extended") {echo "checked=\"checked\" ";}
echo "> eXtended-Template-Klasse (<a href=\"http://www.contenido.org/forum/viewtopic.php?t=5851\" target=\"_blank\">von swelpot</a>)</td></tr>";
echo "<tr><td>Einträge pro Seite:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[6]\">";
for ($i = 1; $i < 41; $i++) {
echo "<option value=\"$i\"";
if ("CMS_VALUE[6]"== $i) echo " selected=\"selected\" ";
echo ">$i</option>";
}
echo "</select></td></tr>";
echo "<tr>";
echo "<td>Seitennavigation mit</td><td><input type=\"radio\" name=\"CMS_VAR[7]\" value=\"0\" ";
if ("CMS_VALUE[7]"== 0) {echo "checked=\"checked\" ";}
echo "> Seitenzahlen";
echo " <input type=\"radio\" name=\"CMS_VAR[7]\" value=\"1\" ";
if ("CMS_VALUE[7]"== 1) {echo "checked=\"checked\" ";}
echo "> Einträgen</td></tr>";
echo "<tr><td>Datumsformat DATE1 (Verwendung siehe <a href=\"http://de.php.net/manual/de/function.strftime.php\" target=\"_blank\">www.php.net</a>):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" size=\"30\" /></td></tr>";
echo "<tr><td>Datumsformat DATE2 (Verwendung siehe <a href=\"http://de.php.net/manual/de/function.strftime.php\" target=\"_blank\">www.php.net</a>):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\" size=\"30\" /></td></tr>";
echo "<tr><td>Spracheinstellungen für das Datum (z.B. \"de_DE\"):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[10]\" value=\"CMS_VALUE[10]\" size=\"30\" /></td></tr>";
echo "<tr><td>Längste Zeichenfolge:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[11]\" value=\"CMS_VALUE[11]\" size=\"30\" /></td></tr>";
echo "<tr><td>Text \"vor\":</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[12]\" value=\"CMS_VALUE[12]\" size=\"30\" /></td></tr>";
echo "<tr><td>Text \"zurück\":</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[13]\" value=\"CMS_VALUE[13]\" size=\"30\" /></td></tr>";
echo "<tr><td>Ab wie vielen Seiten soll die Navigation komprimiert dargestellt werden?:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[14]\" value=\"CMS_VALUE[14]\" size=\"30\" /></td></tr>";
echo "<tr><td>Smilies benutzen:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[16]\" value=\"1\" ";
if ("CMS_VALUE[16]"== 1) echo "checked=\"checked\" ";
echo "/></td></tr>";
echo "<tr><td>Bilderverzeichnis für Smilies:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[17]\" />";
$sql = "SELECT DISTINCT dirname from ".$cfg["tab"]["upl"];
$db->query($sql);
while ( $db->next_record() ) {
$smile_dir=substr_replace($db->f("dirname"),'',(strlen($db->f("dirname"))-1));
if ( "CMS_VALUE[17]" == $smile_dir) {
echo '<option selected="selected" value="'.$smile_dir.'">'.$db->f("dirname").'</option>';
} else {
echo '<option value="'.$smile_dir.'">'.$db->f("dirname").'</option>';
}
}
echo "</select></td></tr>";
echo "<tr><td>Avatare benutzen:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[18]\" value=\"1\" ";
if ("CMS_VALUE[18]"== 1) echo "checked=\"checked\" ";
echo "/></td></tr>";
echo "<tr><td>Bilderverzeichnis für Avatare:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[19]\" />";
$sql = "SELECT DISTINCT dirname from ".$cfg["tab"]["upl"];
$db->query($sql);
while ( $db->next_record() ) {
$avatar_dir=substr_replace($db->f("dirname"),'',(strlen($db->f("dirname"))-1));
if ( "CMS_VALUE[19]" == $avatar_dir) {
echo '<option selected="selected" value="'.$avatar_dir.'">'.$db->f("dirname").'</option>';
} else {
echo '<option value="'.$avatar_dir.'">'.$db->f("dirname").'</option>';
}
}
echo "</select></td></tr>";
echo "<tr><td>BB-Code aktiv:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[20]\" value=\"1\" ";
if ("CMS_VALUE[20]"== 1) echo "checked=\"checked\" ";
echo "/></td></tr>";
echo "<tr><td>Benutzerfeld 1:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[21]\" value=\"CMS_VALUE[21]\" size=\"30\" /></td></tr>";
echo "<tr><td>Benutzerfeld 2:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[22]\" value=\"CMS_VALUE[22]\" size=\"30\" /></td></tr>";
echo "<tr><td>Benutzerfeld 3:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[23]\" value=\"CMS_VALUE[23]\" size=\"30\" /></td></tr>";
echo "<tr valign=\"top\"><td width=\"202\">Emailbenachrichtigung: ";
echo "Ja <input type=\"checkbox\" name=\"CMS_VAR[24]\" value=\"1\" ";
if ("CMS_VALUE[11]"== 1) echo "checked=\"checked\" ";
echo "> An:</td><td>";
echo "<input type=\"text\" name=\"CMS_VAR[25]\" value=\"CMS_VALUE[25]\"></td></tr>";
echo "<tr>";
echo "<td width=\"202\">Cookie gegen doppelte Einträge :</td><td><input type=\"radio\" name=\"CMS_VAR[26]\" value=\"0\" ";
if ("CMS_VALUE[26]"== 0) echo "checked=\"checked\" ";
echo "> aus <input type=\"radio\" name=\"CMS_VAR[26]\" value=\"1\" ";
if ("CMS_VALUE[26]"== 1) echo "checked=\"checked\" ";
echo "> an</td></tr>";
echo "<tr>";
echo "<td width=\"202\">Cookie Lebensdauer (in Minuten) :
</td><td><input type=\"text\" name=\"CMS_VAR[27]\" value=\"CMS_VALUE[27]\" ></td></tr>";
echo "<tr><td>Einträge direkt sichtbar?:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[28]\" value=\"1\" ";
if ("CMS_VALUE[28]"== 1) echo "checked=\"checked\" ";
echo "/></td></tr>";
echo "<tr>";
echo "<td width=\"202\">Ausgaben als valides :</td><td><input type=\"radio\" name=\"CMS_VAR[29]\" value=\"0\" ";
if ("CMS_VALUE[29]"== 0) echo "checked=\"checked\" ";
echo "> HTML <input type=\"radio\" name=\"CMS_VAR[29]\" value=\"1\" ";
if ("CMS_VALUE[29]"== 1) echo "checked=\"checked\" ";
echo "> XHTML</td></tr>";
echo "</table>";