<Bolzplatzarena />

Ein Piranha liegt auf einem Laptop

Erstellung eines Teasers für einen Post

Dieser Artikel beschäftigt sich mit der Erstellung eines Teasers für einen Post im CMS Piranha. Die Problemstellung ist einfach. Man hat einen Artikel und weiß wie man diesen anzeigen möchte. Auf einer anderen Seite möchte man diesen Artikel anpreisen. Daher wäre es doch praktisch, wenn man einen Bereich hätte, wo man genau dies tun kann.

Zunächste erstellen wir ein Model, um die Daten unseres Teasers aufzunehmen. Dies können beliebige Felder, welche Piranha unterstützt sein. In meinem Bespiel sind dies ein Bild und ein Html-Body.

Teaser.cs
public class Teaser
{
	[Field]
	public ImageField Image { get; set; }

	[Field]
	public HtmlField Body { get; set; }
}

Man beachte die Attribute, welche über die Eigenschaften gelegt wurden. Mehr muss man in dieser Datei nicht machen, es handelt sich um ein Model und nimmt die Daten nur auf.

Nun müssen wir das Model noch unserem Post bekannt machen. Aber auch das ist nicht sonderlich schwierig, vielmehr ist hier sogar noch weniger zu tun. Hier erweitert man lediglich seine eigene Post-Klasse um eine Eigenschaft, in meinem Fall "Teaser". Das Attribut "Region" zeigt Piranha, wie damit umzugehen ist.

Post.cs
[PostType(Title = "Post", Id = "Post")]
[PostTypeRoute(Title = "Post", Route = "/detail")]
public class Post : Post
{
	[Region]
	public Teaser Teaser { get; set; }
}

Am Ende müssen die Daten konsumiert werden. In meinem Fall möchte ich gern zeigen, wie einfach man dann die Daten ausgibt. Hier benötigt man dann keine wirklich Wissen mehr zum CMS:

Post.cshtml
@Html.Raw(Model.Teaser?.Body.Value)

Ein weiteres Anwendungsbeispiel ist die Konfiguration eines Bildes für den Meta-Bereich, damit dieses bei Social Sharing Maßnahmen nutzbar ist.