Emailanzeige auf Nutzerwunsch ausblenden

      Emailanzeige auf Nutzerwunsch ausblenden

      Art: Script

      Autor: Mister

      Demo: flf-book.de/Benutzer/orv.htm

      Sonstiges: Layouts

      Beschreibung: Manche Gästebuchschreiber scheuen sich vor der Angabe einer (richtigen) Emailadresse, wenn diese als Pflichtfeld einzugeben ist. Wer trotzdem gern eine Mailadresse hätte, kann es mit diesen Änderungen dem Nutzer überlassen, ob er seine Mailadresse im Gästebuch dargestellt haben möchte.

      Zur Funktion:
      Das Script senden() auf der Eintragungsseite schneidet über trim evtl. an der Emailadresse vorhandene Leerzeichen ab und setzt drei neue, wenn der Schalter showmail "gechecked" ist. Sinn: Vom User beim eventuellen Editieren gelöschte Leerzeichen werden wieder auf drei ergänzt, es werden aber auch nicht mit jedem Editiervorgang automatisch mehr Leerzeichen eingefügt.
      Dann gibt es da diese checkbox names showmail, die über eine ID beschriftet ist. Damit kann der Nutzer festlegen, ob seine Adresse angezeigt wird.
      Damit das Ganze auch funktioniert, muss bei der form-Definition natürlich noch die OnSubmit-Anweisung zum Starten von senden() eingefügt werden. Das wäre es erst mal auf der Eintragungsseite.
      Auf der Gästebuchseite (Template) muss ich also nur noch prüfen, ob die Emailadresse hinten Leerzeichen enthält. Da die Emailadresse sowieso von einem Javascript dargestellt wird, musste dieses nur ein wenig erweitert werden. Ich beschränke mich hier auf nur ein Leerzeichen, denn wo sonst, also von meinem Script auf der Eintragungsseite sollen da noch welche herkommen.

      Im <head>Bereich der Eintragungsseite folgende beide Funktionen ergänzen:

      CODE

      Quellcode

      1. function trim(str)
      2. {
      3. while(str.substring(0,1) == ' ')
      4. {
      5. str = str.substring(1,str.length);
      6. }
      7. while(str.substring(str.length-1,str.length) == ' ')
      8. {
      9. str = str.substring(0,str.length-1);
      10. }
      11. document.neu.e_mail.value = str;
      12. }
      13. function senden()
      14. {
      15. trim(document.neu.e_mail.value);
      16. if (document.neu.showmail.checked)
      17. {
      18. document.neu.e_mail.value = document.neu.e_mail.value + " ";
      19. }
      20. }


      Im <body> an der gewünschten Stelle den Code für die Checkbox einfügen:

      Quellcode

      1. <input type="checkbox" name="showmail" id="ID1">
      2. <label for="ID1">Adresse nicht ver&ouml;ffentlichen</label>

      und bei <form method="post" ...> ergänzen: onsubmit="JavaScript: senden()" so dass die Befehlszeile lautet:

      Quellcode

      1. <form method="post" onsubmit="JavaScript: senden()" action="http://www.flf-book.de/FLFBook/eintrag.php?action=write_entry&user=NUTZERNAME" name="neu" enctype="multipart/form-data">

      Der Nutzername muss natürlich der eigene Benutzername sein.

      Im Gästebuchtemplate kommt an die Stelle, wo die Mailadresse stehen soll, folgendes Script:

      Quellcode

      1. <!-- BEGIN Ifemail -->
      2. <script language="javascript">
      3. var mail = "{Email}";
      4. if (mail.substring(mail.length-5,mail.length) != '&# 32;')
      5. {
      6. document.write('<a href="&# 109;&# 97;&# 105;&# 108;&# 116;&# 111;&# 58;{Email}">')
      7. document.write('<img src="http://www.flf-book.de/FLFBook/Grafiken/email.gif"')
      8. document.write('border="0" style="vertical-align:bottom; margin-right:5px">')
      9. document.write('&# 69;&# 109;&# 97;&# 105;&# 108;</a>')
      10. }
      11. </script>
      12. <!-- END Ifemail -->

      Wichtig! Bitte nach dem Kopieren die Leerzeichen zwischen "&#" und der Nummer des ASCII-Zeichens entfernen, auch bei "If", ging hier leider nicht anders darzustellen, sonst ersetzt die Forensoftware die Zeichen gleich wieder. Der erste ASCII-String nach href= heißt natürlich "mailto:", der hintere ist die Bezeichnung des Links, hier einfach "Email".