Diese erleichtern das Entwickeln der Module erheblich.
Dieser Artikel befasst sich mit der Contenido-API Klassen Article und ArticleCollection,
die für die Erzeugung von Artikellisten gedacht sind.
Grundkenntnisse in Objektorientierter Programmierung werden benötigt.
Die Klasse Article
Diese Klasse erleichtert den Zugriff auf Artikel und deren Eigenschaften.
Zur Erzeugung eines Objektes der Klasse Article werden 3 Parameter benötigt. Diese sind:
Code: Alles auswählen
$idart // Die Artikel Id
$client // Mandanten Id
$lang // Sprach Id
Code: Alles auswählen
$meinArtikel = new Article(23, 1, 1);
Um die Daten zu extrahieren besitzt das Objekt 2 Methoden get und getContent.
get wird benutzt um die Artikel Eigenschaften zu extrahieren, diese sind in der Contenido Systemtabelle 'con_art_lang' definiert.
Code: Alles auswählen
// Artikeltitel extrahieren
$titel = $meinArtikel->get("title");
// Artikelzusammenfassung extrahieren
$zusammenfassung = $meinArtikel->get("summary");
// Artikel Id extrahieren
$idart = $meinArtikel->get("idart");
getContent wird benutzt um den Artikelinhalt zu extrahieren. Dieser setzt sich in der Regel aus verschiedenen Text und Headline Elementen zusammen..
Als ersten Parameter erwartet getContent die Angabe des Contenido CMS Typs als String. Gültige Typen sind in der Systemtabelle 'con_type' definiert.
Standard sind: head, text, html, htmlhead, img, imgdescr, link, linktarget, linkdescr, swf
Die Methode verarbeitet die Kurzform html ebenso wie cms_html
Gross- und Kleinschreibung müssen nicht beachtet werden.
Code: Alles auswählen
$text = $meinArtikel->getContent("html", 1);
$headline = $meinArtikel->getContent("htmlhead", 1);
Also 1 für das erste Content-Element des angeforderten typs, 2 für das zweite, usw..
Wird er weggelassen liefert die Methode ein Array mit allen Elementen des angeforderten Typs zurück.
Code: Alles auswählen
$alleHeadlines = $meinArtikel->getContent("htmlhead");
$alleHeadlines[1] // Erste headline
$alleHeadlines[2] // Zweite headline
Die Klasse ArticleCollection
Diese Klasse verwaltet mehrere Objekte des Typs Article in einer Sammlung (engl. Collection).
Code: Alles auswählen
$artikelListe = new ArticleCollection(array("idcat"=>12));
Code: Alles auswählen
array("idcat"=>12,
"client"=>1,
"lang"=>1,
"start"=>false,
"order"=>"title",
"direction"=>"asc");
client Optional, standard ist der aktive Mandant
lang Optional, standard ist die aktive Sprache
start Sollen Startartikel extrahiert werden, standard ist aus
order Entspricht den Feldnamen der Tabelle 'con_art_lang' nach dem sortiert werden soll
direction 'asc' / 'desc' für auf- oder absteigende Sortierung
Die Klasse ArticleCollection bestitzt die Methoden nextArticle und startArticle. Beide Methoden erwarten keinen Parameter.
nextArticle liefert ein Objekt der Klasse Article zurück, false wenn kein Objekt mehr in der Sammlung ist.
Code: Alles auswählen
while ($artikel = $artikelListe->nextArticle())
{
echo $artikel->get("title");
}
Code: Alles auswählen
$startartikel = $artikelListe->startArticle();
Artikellisten-Modul mit den Klassen Article und ArticleCollection
Hier der Beispiel Code für ein Artikellisten-Modul für die Contenido Beispiel Seite:
Code: Alles auswählen
<?php
/**
* Beispiel eines Artikellisten-Modules
* mit Hilfe der Contenido-API Klassen.
*
* Jan Lengowski / four for business AG
*/
// Artikellisten Optionen einstellen
// Idcat ist ein MUSS feld, array("idcat"=>n);
$articleListOptions = array("idcat" => 12, // Idcat (Muss angegeben werden)
"lang" => $lang, // Sprach id (optional), standard ist die aktive Sprache
"client"=> $client, // Mandant id (optional), standard ist der aktive Mandant
"start" => true, // Startartikel
"order" => "created", // Feldname nach dem sortier wird, siehe tabelle 'con_art_lang'
"direction" => "asc"); // Ab- oder Aufsteigende sortierung ('asc', oder 'desc')
// Artikellisten Objekt erzeugen
$articleList = new ArticleCollection($articleListOptions);
// Artikelliste mit Head1, Head2 und HTML1 ausgeben
while ($article = $articleList->nextArticle())
{
$head1 = $article->getContent('htmlhead', 1);
$head2 = $article->getContent('htmlhead', 2);
$html1 = $article->getContent('html', 1);
echo $head1 . "<br>";
echo $head2 . "<br>";
echo $html1 . "<br><br>";
}
?>
Diese 2 Contenido-API Klassen sind ein mächtiges Werkzeug für den Contenido-Entwickler.
Sie ermöglichen einfachen Zugriff auf Artikel-Content in jeder Sprache und für jeden Mandanten.
Somit sind mehrsprachige Artikellisten, Mandantenübergreifender Content etc.. möglich.
Falls sie noch mehr Informationen wünschen, entnehmen Sie diese bitte der Contenido-API Dokumentation.
Der nächste Howto-Artikel wird sich mit der Klasse TemplateConfig befassen, die für das extrahieren der CMS Variablen zuständig ist.
Kommentare, Kritik und Anregungen sind erwünscht.
Jan Lengowski
four for business AG