Neues Modul: Mitgliederliste

Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Neues Modul: Mitgliederliste

Beitrag von Mc » 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:

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` ) 
);
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:

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&uuml;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."&nbsp;&nbsp;";
}
?>
      
      <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>";

?>
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:
Bild

und hier für die Neueingabe:
Bild


Gruß Mc

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Di 11. Apr 2006, 11:02

Sieht sehr interessant aus. Ich würde noch ein Telefonfeld und ein Bemerkungsfeld integrieren und für die Ausgabe die Felder selektierbar machen (entweder per Konfiguration oder über Eingabe von Variablen (telefon True/false ) etc im Ausgabecode. Wenn du jedes Element in eine Zeile schreibst, dann kann man auch die nicht benötigten Zeilen einfach auskommentieren.

Gruß
Florian

Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Beitrag von Mc » Di 11. Apr 2006, 13:07

Hallo Florian,

vielen Dank für den Hinweis. Wenn ich ihn richtig verstanden habe, geht es darum, das Modul flexibler zu gestalten (Felder selektierbar).
Ich hatte es speziell für die Bedürfnisse der angegebenen Homepage erstellt.
Für ein ausführliches Adressbuch, an dem ich gerade arbeite (besser php und mysql lerne), habe ich mehr Eingabefelder vorgesehen. (Hier nur der Link auf den Screenshot, um das laufende Topic nicht durcheinander zu bringen:
http://www.wirtschaftsrat-erlangen.de/f ... ssbuch.gif)

Mir persönlich gefällt die kompaktere Anordnung etwas besser.

Gruß Mc

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Di 11. Apr 2006, 13:42

ja schaut interessant aus, habe ich selbst ähnlich schon entwickelt. für die backendpflege empfehle ich dir allerdings das ding nicht in module zu packen sondern in ein plugin, was einen extra menüpunkt bekommen kann. das ist übersichtlicher in der handhabung und einfacher in der installation

Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Beitrag von Mc » Di 11. Apr 2006, 20:26

Hallo stese,

das stimmt, da kommen einige Module zusammen. Da ich sie erst außerhalb von contenido teste, muss ich sie dann alle noch installieren mit den entsprechenden Artikeln. Für das Adressbuch sind das derzeit:

adressenliste.php
adressen_detail_popup.php und adressen_detail.php
adressen_mail.php und adressen_mailversand.php
adressen_new.php
adressenliste_edit.php und adressen_update.php

Ich habe allerdings überhaupt noch keine Ahnung, wie man ein Plugin erstellt.

Hier aber mal für die Mitgliederliste das Modul für die Datenneueingabe, das ich in einem geschützten Bereich im frontend benutze.

Gruß Mc

Code: Alles auswählen

<?php

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname:    einfache Mitgliederliste - Dateneingabe
* Author(s):    Mc 
* Erstellt:     13-03-2006
* Modifiziert:  11.04.2006 $idcatart als Variable fuer Anpassung des Pfades
* Beschreibung: Eingabeformular von Adressdaten mit Validierung in die Tabelle con_adressen (muss vorher neu angelegt werden)
* Anpassung:    Angepasst werden muss die idcatart des aktuellen Artikels in der Variablen $idcatart
************************************************/ 

$dbConnect = new DB_Contenido;

/*** Anpassungen ***********/
$idcatart ="74";
$pfad = "front_content.php?idcatart=" . $idcatart;
/***** Ende Anpassungen *****/

if (!empty($_POST)) { //wenn Formularfelder ausgefuellt, dann auslesen
  extract($_POST);
}

// ---------- Prüfen nur wenn submit gedrueckt--------------------
if ($submit == "Speichern") :

    // Eintraege bzw. Pflichtfelder überpruefen
    // Pflichtfelder sind Nachname, PLZ, Ort, aktiv/nicht
      
      // ---- Variablen vorbereiten
      $booFehler = false; //Fehler zunaechst auf false setzen, also kein Fehler
      $Fehlerangabe = "Es sind ein oder mehrere Fehler aufgetreten<br><br>";

      // ---- Nachname prüfen (pflichtfeld)
      if( strlen( $Nachname ) < 1 ) :
        $booFehler  = true;
        $FehlerNachname = true;
        $Fehlerangabe    .= "- Nachname oder Firma fehlt<br>";
      endif;
      
      // ---- PLZ prüfen (Pflichtfeld)
      if( strlen( $PLZ ) < 5 ) :
        $booFehler  = true;
        $FehlerPLZ = true;
        $Fehlerangabe    .= "- PLZ fehlt oder zu kurz<br>";
      endif;
      
      if( strlen( $PLZ ) == 5 && !is_numeric( $PLZ)):
        $booFehler  = true;
        $FehlerPLZ = true;
        $Fehlerangabe    .= "- PLZ falsch<br>";
      endif;
      
      // ---- Ort prüfen (Pflichtfeld)
      if( strlen( $Ort ) < 1 ) :
        $booFehler  = true;
        $FehlerOrt = true;
        $Fehlerangabe    .= "- Ort fehlt<br>";
      endif;
      
      // ---- aktiv prüfen (Pflichtfeld)
      if( !isset($aktiv )) :
        $booFehler  = true;
        $Fehleraktiv = true;
        $Fehlerangabe    .= "- aktiv/nicht fehlt<br>";
      endif;
      
      
      // ---- E-Mail prüfen nur wenn Eintrag erfolgt
      if (!empty($Mail)):
        $mail_expr = "/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/";
        if( !preg_match($mail_expr, $Mail) ) :
          $booFehler  = true;
          $FehlerMail = true;
          $Fehlerangabe    .= "- E-Mail ist nicht g&uuml;ltig<br>";
        endif;
      endif;  
      
      // ---- URL prüfen nur wenn Eintrag erfolgt
      if (!empty($Webseite)):
        $url_expr = "#^((http(s)?|ftp|news)://)+[a-z\d\.@_-]*[a-z\d@_-]+\.([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|shop)[a-z\d@\/\%\#\~\.\?=&,;_-]*$#i";
        if( !preg_match($url_expr, $Webseite) ) :
          $booFehler  = true;
          $FehlerWebseite = true;
          $Fehlerangabe    .= "- URL ist nicht g&uuml;ltig<br>";
        endif;
      endif;  
      
 //------------ Ende pruefen -------------------------------     
    if( $booFehler == false ) :                
 //	neuen Datensatz einfügen, wenn kein Fehler aufgetreten ist, also false

      if ($submit == "Speichern") :
           
          $sql = "INSERT INTO con_adressen SET
                 Anrede = '$Anrede',
                 Titel = '$Titel',
                 Vorname = '$Vorname',
                 Nachname = '$Nachname',
                 Strasse = '$Strasse',
                 Beruf = '$Beruf',
                 PLZ = '$PLZ',
                 Ort = '$Ort',
                 Mail = '$Mail',
                 Webseite = '$Webseite',
                 aktiv = '$aktiv'";
      endif;

      if (@mysql_query($sql)) {
        echo("<p><table class=\"text\" width=\"90%\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#CC3333\"><tr><td bgcolor=\"#E2E2E2\">Der Datensatz wurde eingetragen</td</tr></table></p>");
      } else {
      echo("<p><table class=\"text\" width=\"90%\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#CC3333\"><tr><td bgcolor=\"#E2E2E2\">Fehler beim Eintragen des Datensatzes: " . mysql_error() . "</td</tr></table></p>");
      }  

    endif; // Ende $booFehler == false

endif; // Ende $submit == "Speichern"    
             
?>

<p>
<table class="text" width="90%" cellspacing=1 cellpadding=2 bgcolor="#CCCCCC">
  <tr>
    <td bgcolor="#E2E2E2">Content Management Tool von webec</td>
    <td bgcolor="#E2E2E2">Die Mitglieder der Karl-Heinz-Hiersemann-Gesellschaft</td>
  </tr>
  
<!--- Moegliche Fehlerausgabe ------>
<?php
    if ($booFehler  == true) :
  ?>
  <tr>
    <td bgcolor="#E2E2E2">
      <?php echo $Fehlerangabe; ?>
    </td>
  </tr>
</table>
</p>  
  <?php endif; ?>
<!-- Formularbeginn -------------------------->
<form action="<?php echo $pfad; ?>" method="post">
<p><table class="text" width="90%" cellspacing="1" cellpadding="2" bgcolor="#CCCCCC"><tr><td bgcolor="#E2E2E2">Datensatz eingeben - * Pflichtfelder beachten</td</tr></table></p>

<table>
  <tr>
   <td class="text">Anrede:</td><td colspan="4">
    <table><tr>
      <td class="text">Herr:</td><td><input class="feld" type="radio" name="Anrede" value="Herr" <?php if ($Anrede == "Herr") {
echo "checked=\"checked\"";
}?>></td>
      <td><image src="images/clear.gif" width="20"></td>
      <td class="text">Frau:</td><td><input class="feld" type="radio" name="Anrede" value="Frau" <?php if ($Anrede == "Frau") {
echo "checked=\"checked\"";
}?>></td>
    </tr></table>
   </td>
  </tr>
  <tr>
    <td class="text">Titel: </td><td><input class="feld" tpe="text" name="Titel" value="<?php echo $Titel; ?>"></td>
    <td><img src="images/clear.gif" width="20"></td>
    <td class="text">Beruf: </td><td><input class="feld" size="45" tpe="text" name="Beruf" value="<?php echo $Beruf; ?>"></td>
  </tr>
  <tr>
    <td class="text">Vorname:</td><td><input class="feld" type="text" name="Vorname" value="<?php echo $Vorname; ?>"></td>
    <td><img src="images/clear.gif" width="20"></td>
    <td class="text">Nachname *:</td><td><input <?php if ($FehlerNachname == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" size="45" type="text" name="Nachname" value="<?php echo $Nachname; ?>"></td>
  </tr>
  <tr>
    <td class="text">Stra&szlig;e:</td><td colspan="4"><input class="feld" size="35" type="text" name="Strasse" value="<?php echo $Strasse; ?>"></td>
  </tr>
  <tr>
    <td class="text">PLZ *:</td><td><input <?php if ($FehlerPLZ == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" size="7" type="text" name="PLZ" value="<?php echo $PLZ; ?>"></td>
    <td><img src="images/clear.gif" width="20"></td>
    <td class="text">Ort *:</td><td><input <?php if ($FehlerOrt == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" type ="text" name="Ort" value="<?php echo $Ort; ?>"></td>
  </tr>
  <tr>
    <td class="text">E-Mail:</td><td><input class="feld" <?php if ($FehlerMail == true) echo "style=\"background-color:#CC3333\";"; ?> size="35" type="text" name="Mail" value="<?php echo $Mail; ?>"></td>
    <td><img src="images/clear.gif" width="20"></td>
    <td class="text">Webseite:</td><td><input class="feld" <?php if ($FehlerWebseite == true) echo "style=\"background-color:#CC3333\";"; ?> size="35" type ="text" name="Webseite" value="<?php echo $Webseite; ?>"></td>
  </tr>
  <tr>  
    <td class="text">aktiv/nicht *:</td><td colspan="4">
      <table><tr>  
        <td class="text">aktiv:</td><td><input <?php if ($Fehleraktiv == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" type="radio" name="aktiv" value="1" <?php if ($aktiv == "1") {
echo "checked=\"checked\"";}?>></td>
        <td><img src="images/clear.gif" width="20"></td>
        <td class="text">nicht aktiv:</td><td><input <?php if ($Fehleraktiv == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" type="radio" name="aktiv" value="0" <?php if ($aktiv == "0") {
echo "checked=\"checked\"";}?>></td>
      </tr></table>
    </td>
  </tr>
<!-- Uebergabe der id ---->      
  <input type="hidden" name="id" value="<?php echo $id ?>">
  <tr>
    <td class="text">&nbsp;</td><td colspan="4"><input class="feld" style="color:#CC3333;" type="submit" name="submit" value="Speichern" /></td>
  </tr>
</table>
</form> 

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Di 11. Apr 2006, 20:32

schau dir hier mal die plugin examples an:
http://www.dayside.net/files/ (emergence sei dank alles wichtige vorhanden)

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Beitrag von mko » Fr 14. Apr 2006, 07:39

Und wie kann ich auf den vollständigen Datensatz verlinken? In der Übersicht ein Icon und mit Klick die Detailseite....

ToDo: Verlinkung auf den vollständigen Datensatz; erfolgt im angegebenen Beispiel wegen des Datenschutzes nicht

Danke und frohe Ostern...

Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Aufruf der Detailseite

Beitrag von Mc » Fr 14. Apr 2006, 09:12

Hallo mko,

du fügst in die Tabelle des Moduls Mitgliederliste - Datenausgabe noch eine Spalte am Ende ein, so wie im folgenden Beispiel (hier die Spalte Kategorien vergessen, stammt aus einem anderen Modul):

Bild

Dazu verwendest du folgenden Code:

Code: Alles auswählen

<td><a href=\"front_content.php?idcatart=XX&detailid=".$id."\">Details</a></td>
dadurch wird an den Artikel mit der idcatart = XX die entsprechende id des Datensatzes übergeben.

Die liest du dort am Anfang der Seite mit $id = $_GET['detailid'];
aus. Aus der Datenbank holst du dir dann den Datensatz mit der id=$id

Für solche Dinge empfehle ich dir das Buch "PHP und MySQL - Schritt für Schritt zur datenbankgestützten Website" von Kevin Yank. Hilft mir als relativen Anfänger sehr viel, weil da an einem konkreten Beispiel die Zusammenhänge sehr deutlich werden.



Gruß Mc
Zuletzt geändert von Mc am Fr 14. Apr 2006, 20:05, insgesamt 1-mal geändert.

BlackFX
Beiträge: 21
Registriert: Sa 9. Jul 2005, 10:03
Kontaktdaten:

Beitrag von BlackFX » Fr 14. Apr 2006, 19:18

Echt ne klasse Sache..Könntest Du Deine adressem_detail.php mal posten? Komm hier gerade irgendwie nicht weiter..

thx und frohe ostern an alle

Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Beitrag von Mc » Fr 14. Apr 2006, 20:10

Hallo BlackFX,

wo hast du denn Probleme?

Ich habe die obige Erklärung geändert, vielleicht wird es jetzt klarer.

adressen_detail.php war noch von der Version außerhalb von contenido. Sorry.
Zum Topic Mitgliederliste habe ich leider kein Modul für die Detailansicht. Siehe die Beschreibung zum Modul. Das entsprechende aus dem Adressbuch möchte ich an dieser Stelle nicht posten, weil es viel ausführlicher aufgebaut ist und hier nur stören würde. Ich habe es auch noch nicht unter contenido laufen.

Ich kann dir den Quellcode aber gerne privat zuschicken.

Gruß Mc

BlackFX
Beiträge: 21
Registriert: Sa 9. Jul 2005, 10:03
Kontaktdaten:

Beitrag von BlackFX » Sa 15. Apr 2006, 09:57

Ah, ich war mal wieder zu vorschnell ;) Hab mein Denkfehler gefunden.

Und die ID die ich dann aus der Datenbank auslese nehm ich um mir den entsprechenden Artikel zu laden, ge?

Prima Sache...

Hab Dank, wenn ich Dir mal helfen kann, sag Bescheid ;)

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Beitrag von Peer » Mo 24. Apr 2006, 22:26

Hallo MC,

Das sieht wirklich schon super aus.
Wollte mal fragen deine Screnshot sehen etwas anders aus als das was man mit den Vorhandenen Queltexten bekommt.

Gibt es eventuell schon eine neuere Version?

Würde mich freuen.

Bis dann

Peer

donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Re: Neues Modul: Mitgliederliste

Beitrag von donner_blitz » Di 2. Mai 2006, 07:20

Tach zusammen,

nur eine kurze Frage. Gibt es das Modul eigentlich schon mit dem Editierbereich und einer Löschfunktion?

Und noch ein Frage. Ich wüsste ganz gerne, ob es möglich ist, wenn ich einen Artikel neu anlege, ob ich die Variable $idcatart auslesen kann. Und wie kann man ein Bildupload in die Dateneingabe mit integrieren?

Ich kann zwar schon einiges, aber alles leider noch nicht.

Danke schon mal im Vorraus.

Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Editiermodul

Beitrag von Mc » Do 11. Mai 2006, 08:12

Hier endlich das Modul, mit dem der Datensatz editiert werden kann. Aufgerufen wird das Modul von einer Übersichtsseite aus (kommt noch), indem die entsprechende id übergeben wird.

Code: Alles auswählen

<?php

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname:    einfache Mitgliederliste - Datenedit (Datensatz editieren)
* Author(s):    Mc 
* Erstellt:     10-05-2006
* Beschreibung: Datensatz der Tabelle con_adressen (muss vorher neu angelegt werden) editieren
************************************************/ 


$dbConnect = new DB_Contenido;

if (!empty($_POST)) { //wenn Formularfelder ausgefuellt, dann auslesen
extract($_POST);
}
//Ueber die Variable updatedat wird diejenige id des Datensatzes uebergeben, der geaendert werden soll
$updatedat=$_GET['updatedat'];

 // ---------------------Prüfen nur wenn submit gedrueckt --------------------
  if ($submit == "Aendern") :

    // Eintraege bzw. Pflichtfelder überprüfen
    // Pflichtfelder sind Nachname, PLZ, Ort, aktiv/nicht
      
      // ---- Variablen vorbereiten
      $booFehler = false; //Fehler zunaechst auf false setzen, also kein Fehler
      $Fehlerangabe = "Es sind ein oder mehrere Fehler aufgetreten<br><br>";

      // ---- Nachname prüfen (Pflichtfeld)
      if( strlen( $Nachname ) < 1 ) :
        $booFehler  = true;
        $FehlerNachname = true;
        $Fehlerangabe    .= "- Nachname oder Firma fehlt<br>";
      endif;
      
      // ---- PLZ prüfen (Pflichtfeld)
      if( strlen( $PLZ ) < 5 ) :
        $booFehler  = true;
        $FehlerPLZ = true;
        $Fehlerangabe    .= "- PLZ fehlt oder zu kurz<br>";
      endif;
      
      if( strlen( $PLZ ) == 5 && !is_numeric( $PLZ)):
        $booFehler  = true;
        $FehlerPLZ = true;
        $Fehlerangabe    .= "- PLZ falsch<br>";
      endif;
      
      // ---- Ort prüfen (Pflichtfeld)
      if( strlen( $Ort ) < 1 ) :
        $booFehler  = true;
        $FehlerOrt = true;
        $Fehlerangabe    .= "- Ort fehlt<br>";
      endif;
      
      // ---- aktiv prüfen (Pflichtfeld)
      if( !isset($aktiv )) :
        $booFehler  = true;
        $Fehleraktiv = true;
        $Fehlerangabe    .= "- aktiv/nicht fehlt<br>";
      endif;
      
      
      // ---- E-Mail prüfen nur wenn Eintrag erfolgt
      if (!empty($Mail)):
        $mail_expr = "/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/";
        if( !preg_match($mail_expr, $Mail) ) :
          $booFehler  = true;
          $FehlerMail = true;
          $Fehlerangabe    .= "- E-Mail ist nicht g&uuml;ltig<br>";
        endif;
      endif;  
      
      // ---- URL prüfen nur wenn Eintrag erfolgt
      if (!empty($Webseite)):
        $url_expr = "#^((http(s)?|ftp|news)://)+[a-z\d\.@_-]*[a-z\d@_-]+\.([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|shop)[a-z\d@\/\%\#\~\.\?=&,;_-]*$#i";
        if( !preg_match($url_expr, $Webseite) ) :
          $booFehler  = true;
          $FehlerWebseite = true;
          $Fehlerangabe    .= "- URL ist nicht g&uuml;ltig<br>";
        endif;
      endif;  
      
 //------------------ Ende pruefen ------------------------------ 
 //------------------ update Datensatz ------------------------------     
    if( $booFehler == false ) :  
         $sql = "UPDATE con_adressen SET
                 Anrede='$Anrede',
                 Titel='$Titel',
                 Vorname='$Vorname',
                 Nachname='$Nachname',
                 Beruf='$Beruf',
                 Strasse='$Strasse',
                 PLZ='$PLZ',
                 Ort='$Ort',
                 Mail='$Mail',
                 Webseite='$Webseite',
                 aktiv='$aktiv'
                 WHERE id='$id'";

      if (@mysql_query($sql)) {
        echo("<p><table class=\"text\" width=\"90%\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#CC3333\"><tr><td bgcolor=\"#E2E2E2\">Der Datensatz wurde ge&auml;ndert &nbsp;-&nbsp; <a href = \"front_content.php?idcat=81\">zur&uuml;ck zur Mitgliederliste</a> </td</tr></table></p>");
      } else {
        echo("<p><table class=\"text\" width=\"90%\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#CC3333\"><tr><td bgcolor=\"#E2E2E2\">Fehler beim Eintragen des Datensatzes: " . mysql_error() . "</td</tr></table></p>");
        }
    endif; // Ende $booFehler == false

  endif; // Ende $submit == "Aendern" 
//------------------ Ende submit ---------------------------------------
 //Datensatz abfragen, der geaendert werden soll
 
   if (!isset($submit)) :
    
    $result = @mysql_query("SELECT id, Anrede, Titel, Vorname, Nachname, Beruf, Strasse, PLZ, Ort, Mail, Webseite, aktiv FROM con_adressen WHERE id=$updatedat");
    if (!$result) {
      echo("<p><table class=\"text\" width=\"90%\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#CC3333\"><tr><td bgcolor=\"#57B0C1\">Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</td</tr></table></p>");
      exit();
    }
        
    while ( $row = mysql_fetch_array($result) ) {

           $id = $row["id"];
           $Anrede = $row["Anrede"];
           $Titel = $row["Titel"];    
           $Vorname = $row["Vorname"];
           $Nachname = $row["Nachname"];
           $Beruf = $row["Beruf"];
           $Strasse = $row["Strasse"];
           $PLZ = $row["PLZ"];
           $Ort = $row["Ort"];
           $Mail = $row["Mail"];
           $Webseite = $row["Webseite"];
           $aktiv = $row["aktiv"];   

    }   
   endif; // submit nicht gesetzt 
   
//*************************************************************************
?>

<p><table class="text" width="90%" cellspacing=1 cellpadding=2 bgcolor="#CCCCCC"><tr><td bgcolor="#E2E2E2">Content Management Tool von webec</td</tr></table></p>
<p><table class="text" width="90%" cellspacing=1 cellpadding=2 bgcolor="#CCCCCC"><tr><td bgcolor="#E2E2E2">Die Mitglieder der Karl-Heinz-Hiersemann-Gesellschaft</td</tr></table></p>
<!--------- Moegliche Fehlerausgabe ----------------------->
<?php
    if ($booFehler  == true) :
  ?>
<p><table class="text" width="90%" cellspacing=1 cellpadding=2 bgcolor="#CC3333"><tr><td bgcolor="#E2E2E2">
      <?php echo $Fehlerangabe;?>
</td</tr></table></p>
  <?php endif; ?>
<!---------- Formularbeginn -------------------------------->
<form action="<?php echo "$_Server[PHP_SELF]" ?>" method="post">
<p><table class="text" width="90%" cellspacing="1" cellpadding="2" bgcolor="#CCCCCC"><tr><td bgcolor="#E2E2E2">Datensatz editieren - * Pflichtfelder beachten</td</tr></table></p>

<table>
  <tr>
    <td class="text">Anrede:</td><td colspan="4">
      <table><tr>
        <td class="text">Herr:</td><td><input class="feld" type="radio" name="Anrede" value="Herr" <?php if ($Anrede == "Herr") {
echo "checked=\"checked\"";
}?>></td>
        <td><image src="images/clear.gif" width="20"></td>
        <td class="text">Frau:</td><td><input class="feld" type="radio" name="Anrede" value="Frau" <?php if ($Anrede == "Frau") {
echo "checked=\"checked\"";
}?>></td>
      </tr></table>
    </td>
  </tr>
  <tr>
    <td class="text">Titel: </td><td><input class="feld" tpe="text" name="Titel" value="<?php echo $Titel ?>"></td>
    <td><img src="images/clear.gif" width="20"></td>
    <td class="text">Beruf: </td><td><input class="feld" size="50" tpe="text" name="Beruf" value="<?php echo $Beruf ?>"></td>
  </tr>
  <tr>
    <td class="text">Vorname:</td><td><input class="feld" type="text" name="Vorname" value="<?php echo $Vorname ?>"></td>
    <td><img src="images/clear.gif" width="20"></td>
    <td class="text">Nachname *:</td><td><input <?php if ($FehlerNachname == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" size="50" type="text" name="Nachname" value="<?php echo $Nachname ?>"></td>
  </tr>
  <tr>
    <td class="text">Stra&szlig;e:</td><td colspan="4"><input class="feld" size="35" type="text" name="Strasse" value="<?php echo $Strasse ?>"></td>
  </tr>
  <tr>
    <td class="text">PLZ *:</td><td><input <?php if ($FehlerPLZ == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" size="7" type="text" name="PLZ" value="<?php echo $PLZ ?>"></td>
    <td><img src="images/clear.gif" width="20"></td>
    <td class="text">Ort *:</td><td><input <?php if ($FehlerOrt == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" type ="text" name="Ort" value="<?php echo $Ort ?>"></td>
  </tr>
  <tr>
    <td class="text">E-Mail:</td><td><input class="feld" <?php if ($FehlerMail == true) echo "style=\"background-color:#CC3333\";"; ?> size="35" type="text" name="Mail" value="<?php echo $Mail ?>"></td>
    <td><img src="images/clear.gif" width="20"></td>
    <td class="text">Webseite:</td><td><input class="feld" <?php if ($FehlerWebseite == true) echo "style=\"background-color:#CC3333\";"; ?> size="35" type ="text" name="Webseite" value="<?php echo $Webseite ?>"></td>
  </tr>
  <tr>  
    <td class="text">aktiv/nicht *:</td><td colspan="4">
      <table><tr>  
        <td class="text">aktiv:</td><td><input <?php if ($Fehleraktiv == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" type="radio" name="aktiv" value="1" <?php if ($aktiv == "1") {
echo "checked=\"checked\"";}?>></td>
        <td><img src="images/clear.gif" width="20"></td>
        <td class="text">nicht aktiv:</td><td><input <?php if ($Fehleraktiv == true) echo "style=\"background-color:#CC3333\";"; ?> class="feld" type="radio" name="aktiv" value="0" <?php if ($aktiv == "0") {
echo "checked=\"checked\"";}?>></td>
      </tr></table>
    </td>
  </tr>
  <!-- Uebergabe der id ----------------->    
  <input type="hidden" name="id" value="<?php echo $id ?>">
  <tr>
    <td class="text">&nbsp;</td><td colspan="4"><input class="feld" style="color:#CC3333;" type="submit" name="submit" value="Aendern" /></td>
  </tr>
</table>
<?php
echo "<table><tr><td class =\"text\"><a href=\"javascript:history.back()\">zur&uuml;ck zur Auswahlliste</a></td></tr></table>";
?>
</form> 
Gruß Mc

donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Re: Editiermodul

Beitrag von donner_blitz » Fr 12. Mai 2006, 07:00

Hallo Mc,

ich habe die Version einsetzen wollen. Allerdings taucht jetzt folgende Fehlermeldung auf

Fehler bei der Ausführung der Abfrage: You have an error in your SQL syntax near '' at line 1

Gesperrt