Geschrieben von: Christoph Wille
Kategorie: ASP Grundlagen
This printed page brought to you by AlphaSierraPapa
Heute beschäftigen wir uns mit einem Website-Feature, das man vor allem auf Community Websites findet - das Weiterempfehlen von Seiten, im Englischen unter dem Begriff "Tell-a-friend" geführt. Dieser Artikel zeigt, wie's in ASP leicht und dennoch wirksam implementiert werden kann.
Man könnte zwar ohne Modifikation der existierenden Seiten auskommen, allerdings hätte das einen gravierenden Nachteil: man könnte nur den URL der Seite weiterempfehlen, aber nicht deren Titel mitschicken. Gerade der Titel hat heute bei den meisten Websites mehr Aussagekraft als die URL - besonders wenn der Querystring grausam lang ist.
Um den Titel in einer Tell-a-friend Seite auslesen zu können, muß diese im Querystring übergeben werden. Aber wie kommt der Titel in den Querystring? Indem man auf der zu empfehlenden Seite eine Variable mit dem Seitentitel mitführt.
Dies sieht dann vereinfacht so aus:
Const cstrPageTitle = "Der Seitentitel"
Dies muß man in jeder Seite definieren, die ein Tell-a-friend Script aufrufen soll. Um das Ganze zu vereinfachen, habe ich auf MyHaflinger.com ein gesamtes Seiten"framework" gebastelt. Eine einfache Seite sieht dort wie folgt aus (samplepage.asp):
<% @ Language="VBScript" EnableSessionState = False%> <% Const cstrPagetitle = "Demoseite" %> <!--#include file="pagetop.asp"--> <H1><%=cstrPagetitle %></H1> <p> Dies ist nur eine Bare-Bones Demoseite. </p> <!--#include file="pageend.asp"-->
Die Seite selbst besteht nur aus dem Kopfteil mit Variablendeklarationen und dem Contentteil. Der Rest des Seitenlayouts wird über die Dateien pagetop.asp und pageend.asp eingebunden. Da beide auch in diesem Fall fast nur Layout beeinhalten, beschränken wir uns auf einen imaginären Menüpunkt in der Datei pagetop.asp - Seite empfehlen.
Was alles muß dieser Link beinhalten? Den Titel der Seite (wozu sonst die Mühen des Frameworks), sowie aus Einfachheitsgründen den URL der zu empfehlenden Seite. Der Code sieht dann wie folgt aus (tellinclude.asp):
<% Const strSiteAddress = "http://www.myhaflinger.com" Const strURL2TellPage = "empfehlen.asp" strTellTitle = "" If (cstrPageTitle <> "") Then strTellTitle = Server.UrlEncode(cstrPageTitle) End If strTellPage = strSiteAddress & Request.ServerVariables("SCRIPT_NAME") strTellPage = Server.UrlEncode(strTellPage) strAHref = "<a href=""" & strURL2TellPage & "?pagetitle=" & strTellTitle & _ "&pageurl=" & strTellPage & """>" Response.Write strAHref Response.Write strAHref & "Seite empfehlen!</a><br>" & vbCrlf %>
Viel Aufwand für einen einfachen Link, aber es zahlt sich aus.
Nun haben wir einen Link auf unser "Seite empfehlen" Formular gelegt. Nun müssen wir dieses designen und mit Funktionalität versehen. So soll unser Formular aussehen:
Der Benutzer bekommt den Titel und den URL der Seite nochmals präsentiert, und gibt dann die Adressdaten für den Versand der Empfehlung ein. Sogar ein Zusatztext kann eingegeben werden.
All dies ist in der Seite empfehlen.asp implementiert. Speziell hinweisen möchte ich auf die erste If-Abfrage: diese dient dazu, Empfehlungen für Sites anders als die eigene abzulehnen - das muß für jede Site angepasst werden, oder aber kann ganz einfach ausgelassen werden.
<% @ Language="VBScript" EnableSessionState = False%> <% Const cstrPagetitle = "Schicken Sie diese Seite einem Freund" %> <!--#include file="pagetop.asp"--> <H1><%=cstrPagetitle %></H1> <% strPageUrl = Trim(Request.QueryString("pageurl")) strPageTitle = Trim(Request.QueryString("pagetitle")) ' only allow us to use the script... If strPageUrl = "" Or 0 = InStr(strPageUrl,"www.myhaflinger.com") Then Response.Redirect "/" End If %> <form action="sendURL.asp" method="POST"> <table border="0" cellspacing="0" cellpadding="5" bgcolor="#FFFFCC"> <tr><td BGCOLOR="#003399" colspan="2"> <font color="white"> <% If strPageTitle <> "" Then Response.Write "<b>" & strPageTitle & "</b><br>" End If Response.Write "<i>" & strPageUrl & "</i>" & vbCrlf %> </font> </td></tr> <tr> <td><b>Emailen an:</b></td> <td><input type="text" name="ToEmail" size=40></td> </tr> <tr> <td valign="top">Zusätzlicher Kommentar:</td> <td> <textarea cols="35" rows="5" name="AddtlMessage"></textarea></td> </tr> <tr> <td><b>Ihre Emailadresse:</b></td> <td><input type="text" name="FromEmail" size=40></td> </tr> <tr> <td> </td> <td valign="top"> <input type="hidden" name="Article2Send" value="<%=strPageUrl%>"> <input type="hidden" name="ArticleName2Send" value="<%=strPageTitle%>"> <input type="submit" value="Seite empfehlen!"></td> </tr> </table> </FORM> <!--#include file="pageend.asp"-->
Der Benutzer hat die notwendigen Daten eingegeben, jetzt müssen diese nur noch validiert, und eine Email mit der Empfehlung abgeschickt werden. Für das Abschicken habe ich die CDONTS NewMail Komponente eingesetzt, was aber leicht gegen AspMail oder JMail getauscht werden kann.
Die Seite sendURL.asp muß am meisten an die eigenen Bedürfnisse angepasst werden - schließlich geht es mit der Seitenempfehlung um den Kontakt mit einem potentiellen neuen Kunden. Im folgenden Listing der Text, der auf MyHaflinger.com verwendet wird.
<% @ Language="VBScript" EnableSessionState = False%> <% Const cstrPagetitle = "Tell-a-friend Statusseite" Const cstrDefaultSender = "webmaster@sleeper.dev.alfasierrapapa.com" %> <!--#include file="pagetop.asp"--> <H1><%=cstrPagetitle %></H1> <% strToEmail = Request.Form("ToEmail") strFromEmail = Request.Form("FromEmail") strAddtlMessage = Request.Form("AddtlMessage") strArticleTitle = Trim(Request.Form("ArticleName2Send")) strArticle = Request.Form("Article2Send") If (strToEmail <> "" And strFromEmail <> "" And strArticle <> "") Then Set objMail = Server.CreateObject("CDONTS.NewMail") objMail.From = cstrDefaultSender objMail.To = strToEmail objMail.Subject = "Seitenempfehlung: " & strArticleTitle strBody = "Email von myHaflinger.com" & vbCrLf & vbCrLf strBody = strBody & strFromEmail & " hat Ihnen folgende Seite empfohlen:" & vbCrLf strBody = strBody & strArticle & vbCrLf & vbCrlf If (strAddtlMessage <> "") Then strBody = strBody & "Und möchte Ihnen noch folgende Informationen mitteilen: " strBody = strBody & vbCrLf & """" & strAddtlMessage & """" &_ vbCrLf & vbCrLf End If strBody = strBody & "Mit freundlichen Grüßen von http://www.myhaflinger.com/" objMail.Body = strBody objMail.Send Set objMail = Nothing Response.Write "Die Seitenempfehlung wurde erfolgreich weitergeleitet!" Response.Write " Vielen Dank, daß Sie diesen Service " Response.Write "in Anspruch genommen haben." Else Response.Write "<b>Es wurden nicht alle benötigten Informationen " Response.Write "an dieses Skript übergeben!</b>" End If %> <!--#include file="pageend.asp"-->
Diese Seite generiert eine Email an den Empfehlungsempfänger. Beim Empfänger sieht die Email mit Zusatztext dann beispielsweise so aus:
Die Zeile "Und möchte Ihnen noch..." scheint nur dann auf, wenn der Benutzer auch wirklich einen Zusatztext eingegeben hat.
Seitenempfehlungen sind eine einfache Art und Weise, wie man Surfer dazu animieren kann, schnell und einfach einen Bekannten über Ihre interessante Resource zu informieren. Die heute vorgestellten ASP Pages kann man schnell und einfach in das eigene Seiteframework integrieren.
This printed page brought to you by AlphaSierraPapa
Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20010131.zip
©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.