Bewertung: 5.0 von 12 Benutzern
klaus_b
Seit der Version 1.6.0.0 bietet BlogEngine.NET, für Themes die es unterstützen, die Möglichkeit Kommentare und Track- oder Pingbacks gesondert anzuzeigen.
Allerdings scheint die Sortierung nach Kommentaren und Trackbacks bei Blogs die BlogEngine.NET schon länger einsetzen, nicht richtig zu funktionieren. Die Track- und Pingbacks werden zwar in einem eigenen Container angezeigt, werden aber auch gleichzeitig in den Kommentaren dargestellt. Bei neueren BlogEngine.NET Blogs, wie etwa bei Dariusz Parys neuem Blog, scheint dieses Problem nicht zu bestehen.
Ob die fehlerhafte Sortierung tatsächlich an den neested Comments liegt, habe ich nicht weiter geprüft. Aber genau hier fand ich den Fehler, der sich mit einem kleinem Kniff beheben lässt.
In der Methode AddNestedComments der Klasse User_controls_CommentView, zu finden im Ordner User controls, wird stur durch die übergebene Kommentarliste iteriert und jeder als sichtbar markierte Kommentar zu den Kommentaren hinzugefügt. Ganz egal ob es sich dabei tatsächlich um einen Kommentar oder einen Track- oder Pingback handelt.
Mit einer einfachen Abfrage, ob der Kommentar nicht doch vielleicht ein Track- oder Pingback sein könnte, lässt sich die unschöne Darstellung beseitigen.
Wie es sich bei ausgeschalteten neested Comments verhält, habe ich nicht geprüft, da ich nur geschachtelte Kommentare verwende.
Wie gesagt, es muss nur eine Überprüfung auf Track- oder Pingback verwendet werden. Das lässt sich mit einem Zweizeiler bewerkstelligen.
private void AddNestedComments(string path, List<Comment> nestedComments, PlaceHolder phComments)
{
foreach (Comment comment in nestedComments)
{
//HACK: Überprüfen ob der Kommentar ein Track- oder Pingback ist.
if (comment.Email == "pingback" || comment.Email == "trackback")
{
continue;
}
// hier der restliche Code der Methode
}
}
Anschließend wird auch bei älteren BlogEngine.NET Blogs, mit aktivierten geschachtelten Kommentaren, die Ausgabe genauso erzeugt wie sie sein sollte.
Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
