Habari: Verwendung von Postinfo: Posts mehr Informationen hinzufügen


[Habarimag-Eintrag]

Manchmal kann es praktisch sein, Posts mehr Informationen hinzuzufügen, als Habari erlaubt. Beispielsweise, weil man einen neue Inhaltstyp entwickeln will; so wie das Eventscontent-Plugin Event-Posts hinzufügt, die eine Location und andere Informationen haben können. Oder weil man pro Post bestimmen können möchte, ob dieser Post voll oder nur als Auszug auf bestimmten Seiten des Themes dargestellt werden soll.

Man kann sich dafür ein Plugin schreiben, welches diese Aufgabe übernimmt; man kann aber auch das Postfields-Plugin benutzen (SVN-Link). Damit lassen sich auf einfachstem Wege Textfelder zu jedem Post-Typ hinzufügen, die beliebige Informationen speichern können.

Im Theme greift man dann wie folgt darauf zu:

$wert = $post->info->feldname;

Dabei muss $post ein Post-Objekt sein, welches man vorher aus der Datenbank geladen hat, und feldname der Name eines mit dem Postfields-Plugin hinzugefügten Feldes. Enthält das Feld Leerzeichen, kann man sich mit diesem Trick helfen:

$feldname = "Name mit Leerzeichen";
$wert = $post->info->$feldname;

$wert enthält danach den Wert des Textfeldes. Der Zugriff kann auch direkt in if-Abfragen oder allem anderen verwendet werden; die Member von $post->info können wie Variablen benutzt werden.