Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Seiten weiterempfehlen leicht gemacht

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.

Das Seitengrundgerüst

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.

Der "Seite empfehlen" Link

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.

Das "Seite empfehlen" Formular

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&auml;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>&nbsp;</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"-->

Das Versenden der Empfehlung

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&szlig; Sie diesen Service "
  Response.Write "in Anspruch genommen haben."
Else
  Response.Write "<b>Es wurden nicht alle ben&ouml;tigten Informationen "
  Response.Write "an dieses Skript &uuml;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.

Schlußbemerkung

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

Download des Codes

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.