2008-09-08 10 views
3

Ich weiß, dass ich das in der Vergangenheit gesehen habe, aber ich kann es jetzt nicht finden.Wie erstellt man benutzerdefinierte Seiten in dasBlog?

Grundsätzlich möchte ich eine Seite erstellen, die ich auf einer dasBlog Instanz hosten kann, die das Layout von meinem Thema enthält, aber den Inhalt der Seite, die ich kontrolliere.

Idealerweise ist der Inhalt ein Benutzersteuerelement oder ASPX, das ich schreibe. Weiß jemand, wie ich das erreichen kann?

Antwort

4

Der einfachste Weg, dies zu tun ist, die FormatPage-Funktionalität zu "entführen".

Zunächst folgend web.config im newtelligence.DasBlog.UrlMapper Abschnitt hinzufügen:

<add matchExpression="(?&lt;basedir&gt;.*?)/Static\.aspx\?=(?&lt;value&gt;.+)" mapTo="{basedir}/FormatPage.aspx?path=content/static/{value}.format.html" /> 

Jetzt können Sie ein Verzeichnis in Ihrem Content-Verzeichnis statisch genannt erstellen.

http://BASEURL/Static.aspx?=FILENAME

wird Karte in eine Datei namens:

/content/static/FILENAME.format.html Von dort können Sie HTML-Dateien und der Dateiname der Karte auf die URL wie folgt erstellen

Sie können alles in diese Datei platzieren, die Sie normalerweise in itemTemplate.blogtemplate platzieren würden, außer dass es offensichtlich keine Post-Daten hat. Aber Sie können dies im Wesentlichen verwenden, um andere Makros zu setzen, und verwenden Sie trotzdem die Datei hometemplate.blogtemplate, um den Rest des Themas auf der Seite zu halten.

1

Ich habe etwas Ähnliches eingerichtet, einen Handler zu erstellen, um Videodateien aus dem Blog auf meinem Home-Server zu streamen. Ich habe es schließlich vergessen, weil es meine Bandbreite bei jedem Videoabruf gekostet hat, aber ich habe es aufgebaut und eine Weile gearbeitet.

Um es zum Laufen zu bringen, musste ich dasBlog aus der Quellcodeverwaltung überprüfen und im Visual Studio öffnen. Ich hatte VS2008 und es wurde mit VS2005 gebaut, so dass es einige Arbeit brauchte, um alles zu bauen. Sobald ich die unveränderte Lösung zum Bauen bekommen konnte, fügte ich ein neues Klassenbibliotheksprojekt hinzu, um meinen Code zu halten. Dies stellt sicher, dass mein Code über dasBlog-Update hinweg getrennt bleibt.

Ich habe keinen Zugriff auf den Code hier bei der Arbeit, so kann ich Ihnen jetzt genaue Namen nicht sagen, aber wenn Sie möchten, dass Ihre Seiten die Themen verwenden können, müssen sie von einer Klasse in erben der Namespace newtelligence.dasBlog.Web, und ich glaube, auch eine Schnittstelle implementieren. Ein guter Ort zum Schauen ist in FormatPage und FormatControl.

+0

Ich bin mir ziemlich sicher, es gibt einen einfacheren Weg, der dasBlog-Quelle nicht erfordert. Ich werde es mir merken, falls ich falsch liege. –

+0

In der Theorie können Sie einfach die kompilierte .dll und fügen Sie einen Verweis auf das in Ihrem eigenen Projekt, aber Sie _will_ einige der dasBlog Objekte verwenden müssen. In diesem Sinne macht es die Sache einfach, die Quelle verfügbar zu haben. –

Verwandte Themen