by
Roland Schumacher alias GENiALi
24. Juli 2010 -- 373
words -- 13397 mal gelesen
Vor ein paar Tagen hatte ich wieder mal Lust eine Extension für BlogEngine.NET zu machen. Ideen habe ich ja. Was ich bei vielen andern Blogs immer wieder sehe ist ein Hinweis wie oft ein Posting gelesen wurde. Irgend etwas in dem Stiel wollte ich auch.
Es soll aber einfach sein. Ich will kein Java-Script oder sonstige Sachen. Etwas ganz einfaches. Dabei interessiert mich auch nicht ob der Aufruf von einer Suchmaschine stammte oder nicht. Es interessiert mich nur wie oft das Posting gelesen / geöffnet wurde.
Im nachhinein habe ich noch eine IP Sperre eingebaut. Ab und zu hatte ich unmögliche Zahlen drin. Jetzt kann eine IP ein Posting nur alle 20 Minuten hochzählen.
Einbau sollte / ist hoffentlich auch nicht zu kompliziert.
- Herunterladen des ZIP Archives. –> GEBEE_MostRead_Extension.V.1.0.zip
- Einpacken ins Root Verzeichnis von BlogEngine.NET. Die Verzeichnisstruktur sollte eigentlich passen.
- Ein stück Code in der Datei PostView.ascx einbauen. Wichtig ist nur der Teil <%= GEBEEMostRead.Get … %>. Der Rest ist nur Beigemüse.
<a href="/MostRead.aspx" target="_blank" title="MostReaded"><%= GEBEEMostRead.GetById(Post, Location).ToString()%> mal gelesen</a>
- Da ich LINQ verwende muss der Webserver sicher .NET 3.0 unterstützen. Meiner könnte sogar 4.0. Aber ich nutze nur 3.5. Da die aktuelle Version von BlogEngine.NET aber nur die Version 2.0 von .NET unterstützt muss noch die web.config angepasst werden damit die ganze Geschichte mit dem 3.5’er Compiler übersetzt wird.
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Management …
Und ganz am ende der web.config:
</system.webServer>
<!-- Damit LINQ tut muss der 3.5'er Compiler genutzt werden. –>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
</configuration>
Das ganze könnte dann in etwa so aussehen.

Hinter dem “9 mal gelesen" steckt noch ein Link auf eine Übersichtsseite mit ein paar Informationen. Titel, wann wurde das Posting das erste mal geöffnet, wann das letzte mal, Tage zwischen den zwei Daten und wie oft Durchschnittlich pro Tag das Posting gelesen/geöffnet wird.

Ob die Zahlen sinn machen weiss ich nicht. Wer Ideen hat soll sich einfach bei mir melden.
Was ich noch machen könnte/werde ist, die Daten noch auf der GEBEE – Statistics Extension einbauen. Natürlich so, dass die Extension auch ohne diese hier tut. Aber das ist meine Pendenzen Nr. 3566. 
Zuerst mal viel Spass damit.
