Neues Modul: Mitgliederliste
Verfasst: Mo 10. Apr 2006, 21:26
Anbei ein neues Modul "einfache Mitgliederliste".
Es zeigt Adressdaten in tabellarischer Form mit verschiedenen Möglichkeiten der Sortierung (alphabetisch, Nachname, usw.).
Ein Anwendungsbeispiel findet sich hier:
http://www.wirtschaftsrat-erlangen.de/f ... p?idcat=18
Notwendig ist eine neue Tabelle con_adressen:
Ausgelesen werden im Modul Nachname, Titel Vorname, Beruf, PLZ, Ort sowie nur die aktiv geschalteten Datensätze.
Modul besteht nur aus output, angepasst werden muss die idcatart des entsprechenden Artikels. Ansonsten wie üblich: Template erstellen, Artikel beruhend auf Template erstellen.
Output:
In Kürze folgen die Module für die "Dateneingabe" und die "Dateneditierung". Diese Module verwende ich im frontend im geschützten Bereich.
Hier schon mal ein screenshot von der Auswahlseite für die Editierung:

und hier für die Neueingabe:

Gruß Mc
Es zeigt Adressdaten in tabellarischer Form mit verschiedenen Möglichkeiten der Sortierung (alphabetisch, Nachname, usw.).
Ein Anwendungsbeispiel findet sich hier:
http://www.wirtschaftsrat-erlangen.de/f ... p?idcat=18
Notwendig ist eine neue Tabelle con_adressen:
Code: Alles auswählen
CREATE TABLE `con_adressen` (
`id` INT NOT NULL AUTO_INCREMENT,
`Anrede` VARCHAR( 10 ) ,
`Titel` VARCHAR( 12 ) ,
`Vorname` VARCHAR( 40 ) ,
`Nachname` VARCHAR( 60 ) NOT NULL ,
`Strasse` VARCHAR( 40 ) ,
`PLZ` INT( 5 ) NOT NULL ,
`Ort` VARCHAR( 35 ) NOT NULL ,
`Mail` VARCHAR( 40 ) ,
`Webseite` VARCHAR( 40 ) ,
`aktiv` INT( 1 ) NOT NULL ,
`Beruf` VARCHAR( 80 ) ,
PRIMARY KEY ( `id` )
);
Modul besteht nur aus output, angepasst werden muss die idcatart des entsprechenden Artikels. Ansonsten wie üblich: Template erstellen, Artikel beruhend auf Template erstellen.
Output:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname: einfache Mitgliederliste - Datenausgabe
* Author(s): Mc
* Erstellt: 13-03-2006
* Modifiziert: 10.04.2006 $idcatart als Variable fuer Anpassung des Pfades
* Motifiziert: 09.04.2006 aktiv als Variable; alle Buchstaben des Alphabets werden angezeigt, nur die vorhandenen Anfangsbuchstaben bei den Nachnamen werden fuer die Auswahl verlinkt; feste Zellenbreite fuer die Tabelle; MouseOver bei Ueberfahren des Datensatzes
* Beschreibung: Ausgabe von Adressdaten aus der Tabelle con_adressen (muss vorher neu angelegt werden) mit verschiedenen Sortier- und Auswahlmöglichkeiten
* Anpassung: Angepasst werden muss die idcatart des aktuellen Artikels in der Variablen $idcatart
* Beispiel: http://www.wirtschaftsrat-erlangen.de/front_content.php?idcat=18
* ToDo: Verlinkung auf den vollständigen Datensatz; erfolgt im angegebenen Beispiel wegen des Datenschutzes nicht
************************************************/
//Anpassungen
$idcatart = "48"; //idcatart des aktuellen Artikels
$pfad = "front_content.php?idcatart=" . $idcatart;
//Anpassungen Ende
$dbConnect = new DB_Contenido;
$sort = $_GET['sort'];
$alpha = $_GET['alpha'];
$aktiv = 1;//aktiv =1: nur die aktiven Datensaetze
//-----------------------
?>
<p>
<table class="text" width="100%" cellspacing=1 cellpadding=2 bgcolor="#CCCCCC">
<tr>
<td class="text" bgcolor="#E2E2E2">alphabetische Auswahl</td>
</tr>
<tr>
<td class="text" bgcolor="#E2E2E2" valign="top">
<!--------------------- alphabetische Auswahl ------------------>
<?php
// Array erstellen mit den Buchstaben des Alphabetes
$Aliste = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
// es werden nur diejenigen Buchstaben des Alphabetes ausgelesen, zu denen ein Nachname existiert
// und dann im Array $array gespeichert
$array = array(); // Hierdurch wird ein Array namens $array ohne Inhalt initialisiert
$result = @mysql_query("SELECT DISTINCT LEFT(Nachname,1) AS Buchstaben FROM con_adressen WHERE aktiv = $aktiv ORDER BY Nachname");
if (!$result) {
echo("<p>Fehler bei der Ausführung der Abfrage: " . mysql_error() . "</p>");
exit();
}
while($row = mysql_fetch_array($result)) {
$Buchstabe = $row["Buchstaben"];
$array[] = $Buchstabe;
}
//ab hier Ausgabe des Alphabetes mit Verlinkung der vorhandenen Buchstaben
for ($i=0; $i<28; $i++) {
$text = $Aliste[$i]; //Buchstaben des Alphabetes auslesen
if(in_array($text, $array)) {//Ueberpruefung, ob der Buchstabe $text im array enthalten ist
$text = "<a href=\"".$pfad."&alpha=".$text."\">".$text."</a>";
}
echo $text." ";
}
?>
<a href="<?php echo $pfad; ?>">alle</a><br>
</td>
</tr>
</table>
<!--------------------- Ende alphabetische Auswahl ------------------>
<?php
// Datensaetze abfragen mit unterschiedlichen Sortiervorgaben: $sort (Nachname, PLZ, Ort, ..) bzw. $alpha (Ausgabe nur derjenigen Datensätze mit entsprechendem Anfangsbuchstaben im Nachnamen; wenn weder $sort noch $alpha übergeben wurde, erfolgt Ausgabe aller Datensätze sortiert nach dem Nachnamen. Wenn $alpha vorgewaehlt wurde, kann innerhalb des Buchstabens nach Nachname, Beruf usw. sortiert werden.
if(isset($sort) && empty($alpha)){
$result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=$aktiv ORDER BY $sort, Nachname");
}
elseif (isset($alpha) && empty($sort)){
$result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=$aktiv AND Nachname LIKE '$alpha%' ORDER BY Nachname");
}
elseif ($alpha && $sort){
$result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=$aktiv AND Nachname LIKE '$alpha%' ORDER BY $sort, Nachname");
}
else {
$result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=$aktiv ORDER BY Nachname");
}
// jeden Datensatz in einer Zeile anzeigen
echo "<table align=\"left\" class=\"text\" width=\"100%\" cellspacing=1 cellpadding=2 bgcolor=\"#CCCCCC\">";
echo "<tr><td bgcolor=\"#E2E2E2\" width=\"190px\"><b><a href =\"".$pfad."&sort=Nachname&alpha=".$alpha."\">Name</a>, Titel Vorname </b></td><td bgcolor=\"#E2E2E2\" width=\"360px\"><b><a href =\"".$pfad."&sort=Beruf&alpha=".$alpha."\">Beruf/Firma</a></b></td><td bgcolor=\"#E2E2E2\" width=\"50px\"><b><a href =\"".$pfad."&sort=PLZ&alpha=".$alpha."\">PLZ</a></b></td><td bgcolor=\"#E2E2E2\" width=\"140px\"><b><a href =\"".$pfad."&sort=Ort&alpha=".$alpha."\">Ort</a></b></td></tr>\n";
while ( $row = mysql_fetch_array($result) ) {
$id = $row["id"];
$Titel = $row["Titel"];
$Vorname = $row["Vorname"];
$Nachname = $row["Nachname"];
$Beruf = $row["Beruf"];
$PLZ = $row["PLZ"];
$Ort = $row["Ort"];
$aktiv = $row["aktiv"];
echo "<tr bgcolor=\"E2E2E2\" onMouseOver=this.style.backgroundColor=\"#E2EDD7\"; onMouseOut=this.style.backgroundColor=\"#E2E2E2\"; valign=\"top\"><td><nobr>" . $Nachname . ", " . $Titel . " " . $Vorname ."</nobr></td> <td>" . $Beruf ."</td><td>" . $PLZ ."</td><td>". $Ort . "</td></tr>\n";
}
echo "</table>";
?>
Hier schon mal ein screenshot von der Auswahlseite für die Editierung:

und hier für die Neueingabe:

Gruß Mc