TYPO3 Blog -> Blog -> TYPO3 Extension Programmierung -> TYPO3 Extension Ausgabe per TypoScript mit cObjGetSingle definieren

Werbung finanziert TYPO3 Blog

Eine höchst mögliche Flexibilität in der Ausgabe von TYPO3 Extensions erreicht man für die TYPO3 Integratoren, in dem man soviel wie möglich per TypoScript regelt.

Jedoch kann man meist nicht ohne weiteres vorhersehen, welche Ausgaben einmal alle gewünscht sein werden. nicht selten fehlt der entscheidende Wrap oder die eine Stelle, an der der TYPO3 Integrator noch Kontrolle benötigt hätte.

Eine sehr flexible Lösung ist es da, die gesamte Ausgabe seiner TYPO3 Extension per TypoScript zu definieren und die Ausgabewerte seiner Extension einfach nur in zusätzlichen Feldern bereitzustellen.

Ich erkläre dies am Beispiel der Extension tx_lonewscomments. Diese fügt tt_news per Hook einen Marker hinzu, mit dem die Anzahl der vorhandenen Kommentare zu einem Artikel ausgegeben werden können.

Per statischem TypoScript wird nun eine standardmäßige Ausgabe vordefiniert:

plugin.tt_news.lonewscomments {
    marker {
        COMMENTS_LINK = TEXT
        COMMENTS_LINK {
            field = comment_lable
            typolink {
                parameter.field = singlePid
                additionalParams = &tx_ttnews[tt_news]={field:uid}
                additionalParams.insertData = 1
                useCacheHash = 1
                section = comments
...

Der Integrator möchte den Marker umbennen -> Kein Problem. Die Links sollen ungecached sein? Eine Backpid enthalten? Das Datum enthalten? Die Kommentar Section hat einen anderen Anker? All dies lässt sich mit TypoScript Kenntnissen regeln.

// Lokales cObject erzeugen
$local_cObj = t3lib_div::makeInstance('tslib_cObj');
// Alle Daten der aktuellen News zur Verfügung stellen
$local_data = $row;
// Dieses Feld ist schon vorhanden, '' soll aber als '0' ausgegeben werden
$local_data['tx_lonewscomments_comments'] = intval($local_data['tx_lonewscomments_comments']);
// eigenes Feld definieren zur Ausgabe verschiedener Label je nach Anzahl der Kommentare
// %d ersetzen durch Anzahl der Kommentare
$local_data['comment_lable'] = sprintf($this->pi_getLL('tt_news.tx_lonewscomments_comments'), $local_data['tx_lonewscomments_comments']);
if($local_data['tx_lonewscomments_comments'] == 0)
    $local_data['comment_lable'] = $this->pi_getLL('tt_news.tx_lonewscomments_no_comment');
else if($local_data['tx_lonewscomments_comments'] == 1)
    $local_data['comment_lable'] = $this->pi_getLL('tt_news.tx_lonewscomments_one_comment');
$local_data['singlePid'] = $conf['singlePid'];
$local_cObj->data = $local_data;
foreach($conf['lonewscomments.']['marker.'] AS $key => $value) {
    if(!strpos($key, '.')) {
        // Ausgeben
        $markerArray['###'.$key.'###'] = $local_cObj->cObjGetSingle($conf['lonewscomments.']['marker.'][$key], $conf['lonewscomments.']['marker.'][$key.'.']);
    }

cobjgetsingle, typoscript ausgabe in extensions, lokales cobject, typo3 extension, typoscript, Blog,

Keine Antwort zu “TYPO3 Extension Ausgabe per TypoScript mit cObjGetSingle definieren”

Mein Kommentar

Notify me when someone adds another comment to this post