Рендеринг СОДЕРЖИМОГО в PHP с помощью TypoScript

Мне нужно создать файл Typoscript на PHP, а затем выполнить скрипт, чтобы получить содержимое данной страницы. Это мой код:

if (!defined('PATH_typo3conf')) die ('Could not access this script directly!');

class ContentHandler extends tslib_cObj
{
    var $conf;

    public function __construct()
    {
        tslib_eidtools::connectDB();
    }

    public function main()
    {
        $this->createConf(16);

        $code = $this->cObjGet($this->conf);

        echo "<pre>";
        print_r($this->conf);
        echo "</pre>";

        echo "<pre>";
        echo "code: " . $code;
        echo "</pre>";
    }

    protected function createConf($pid)
    {
        $this->conf = array(
            'foo' => 'CONTENT',
            'foo.' => array(
                'table' => 'tt_content',
                'select.' => array(
                    'pidInList' => $pid,
                    'languageField' => 0,
                ),
                'renderObj' => 'COA',
                'renderObj.' => array(
                    'stdWrap.' => array(
                        'wrap' => '<b>|</b>',
                    ),
                    '10' => 'TEXT',
                    '10.' => array(
                        'field' => 'header',
                        'wrap' => '<h3>|</h3>',
                    ),
                    '20' => 'TEXT',
                    '20.' => array(
                        'field' => 'bodytext',
                        'wrap' => '<b>|</b>',
                    ),
                ),
            )
        );
    }
}

Я считаю, что типоскрипт построен хорошо, но я ничего не получаю взамен. Я проверяю с помощью простого mysql_query(), и он возвращает содержимое. Но мне нужно сделать это с помощью typoscript.

Любая помощь приветствуется!

Изменить: это не настоящий сценарий расширения, но он находится внутри папки EXT/.


person Johannes Klauß    schedule 23.11.2011    source источник


Ответы (1)


Ваш TypoScript неверен. Взгляните на API (http://api.typo3.org/typo3v4/current/html/classtslib__c_obj.html#ab70d69a447f24f7416a85e7de1cb4ffb). Вместо «foo» вы должны определить числовой ключ «10».

$this->conf = array(
            'foo' => 'CONTENT',
            'foo.' => array(

должен сделать работу.

Кстати: вам нужно tslib_eidtools::connectDB(); только если вы используете сценарий eID.

person maholtz    schedule 23.11.2011
comment
Я изменил его на array('10' => 'CONTENT', '10.' => array(.... но все равно ничего не возвращает. Когда я вызываю $this-›checkIf($this-›conf), он возвращает false, поэтому должна быть другая ошибка. - person Johannes Klauß; 23.11.2011
comment
работает ли он с этим массивом: $this-›conf = array( '10' =› 'ТЕКСТ', '10.' =› array( 'value' =› 'hello world', ), ); как вы выполняете свой скрипт? - person maholtz; 26.11.2011