Zum Inhalt springen

Content-Elemente einer Seite per Extension ausgeben

Erstellt am 8. November 2005 · 4 Antworten · letzte Antwort am 8. November 2005

Tags: Inhaltselemente, Frage

Oemmes ·

Hallo,

ich bin gerade dabei ein Frontend Plugin zu schreiben, dass verschiedene Formulare und Listen etc. ausgibt.

Nun möchte ich gerne Inhaltselemente bestimmter Seiten per Plugin-Script ausgeben.

Also im Prinzip so, nur eben nicht per Typoscript; da ich die Seite, wo der Inhalt herkommen soll, im Plugin dynamisch definiere.

CONTENTTEXT = COA
CONTENTTEXT.10 = CONTENT
CONTENTTEXT.10 {
    table = tt_content
    select.orderBy = sorting
    select.where = colPos = 0
}
CONTENTTEXT.20 < meinplugin

also den 10er Bereich in das PHP-Script verlagern, mit Angabe einer bestimmten Seiten-ID.

mit folgendem Script kann ich schonmal Texte immerhin durch stdWrap "parsen" lassen, ich möchte aber alle Contentelemente der jeweiligen Seite "normal" ausgeben:

$conf = $GLOBALS['TSFE']->tmpl->setup['tt_content.']['text.']['20.'] ;
$conf['value'] = $value ;
unset($conf['field']) ;
unset($conf['fieldRequired']) ;

return $this->cObj->TEXT($conf) ;

Ich hab schon versucht, mit $this->cObj->cObjGetSingle('CONTENT', $conf) oder direkt $this->cObj->CONTENT($conf) den Inhalt zu bekommen, was allerdings nicht funktioniert hat. Dabei hatte ich in $conf bei select.where meine pid mit angegeben, aber genützt hats nichts 😉

just2b ·

Das ganze funktioniert so, zumindest bei mir 😉

$conf = array('tables' => 'tt_content','source' => $id,'dontCheckPid' => 1);
$markerArray['###TEXT###'] = $content = $this->cObj->RECORDS($conf);

lg georg

Oemmes ·

ok, das klappt, wenn ich die IDs der Content-Elemente habe.

Kann ich auch irgendwie sagen: alle Elemente der Seite 123 ausgeben?
oder muss ich mir die Content-IDs selber auslesen und durchlaufen?

Oemmes ·

ok, danke.

habs nun so gemacht:

function showContent($uid, $text = '') {
    if (is_null($uid)) {
        $conf = $GLOBALS['TSFE']->tmpl->setup['tt_content.']['text.']['20.'] ;
        $conf['value'] = $text ;
        unset($conf['field']) ;
        unset($conf['fieldRequired']) ;

        return $this->cObj->TEXT($conf) ;
    }

    $conf = array('tables' => 'tt_content','source' => $uid,'dontCheckPid' => 1) ;
    return $this->cObj->RECORDS($conf) ;
}

function showPageContent($pid) {
    $query = "SELECT uid FROM tt_content WHERE pid=".$pid.' '.$this->cObj->enableFields('tt_content').' ORDER BY sorting' ;
    $res = mysql(TYPO3_db, $query) ;

    $content = '' ;

    while ($row = mysql_fetch_assoc($res)) {
        $content .= $this->showContent($row['uid']) ;
    }

    return $content ;
}