将php脚本中的内容包含在typoscript中

时间:2014-10-31 09:22:54

标签: php typo3 typoscript

我想使用lib-object将php脚本的输出包含到typoscript中... 我悲惨地失败了:))

我声明了这样的lib-object:

TS:

includeLibs.bannerLib = fileadmin/banner/banner.php

lib.banner = USER
lib.banner{
    userFunc = user_banner->user_showBanner
}

然后我需要使用变量(?)将其包含在TS的其余部分中:

{f:cObject(typoscriptObjectPath:lib.banner)}

这很可能是失败的地方。我不使用流体,但我猜f:cObject是指流体模板?

这是我正在使用的(非常简单的)php脚本:

class user_banner{

    public $cObj;

    /**
     * Scans the files in the images folder
     * for images and returns it, if present
     */

    public function user_showBanner($content, $conf){

        $images = scandir('images');
        return implode(',', $images);

    }
}

我做错了什么??? 我正在使用Typo3 4.6.x

[编辑]

页面是由一些T3破解制作的,整个内容被包装到一些lib-object中,然后使用某种lib(我猜)进行渲染。这是它的样子(部分):

lib{

        markupBodyColumns {
        1 >
        2 {
            value (
            <div id="col2" class="col">

            //here I try to insert my banner 
            <span class="bannerClass">{$lib.banner}</span>

                <div class="pageTitle">
                    {renderLib:markupBodyPageTitle}
                </div>
                <div class="contentWraper">
                    <div class="content">
                        {renderLib:markupBody}
                    </div>
                    {renderLib:markupFooter}
                </div>
            </div>
            )
        }

}

[编辑2]

好吧,这让我疯了......它确实......

第一次更正:我使用的是Typo3 4.6.x,而不是先说明4.7.x

我尝试在typoscript中包含userFunc,但它拒绝吐出任何东西。 上面的PHP函数(类)保持不变。根本没有调用类中的函数。

在typoscript中我试过:

第一次尝试:

includeLibs.user_banner = fileadmin/banner/user_banner.php

lib.myBanner = USER_INT
lib.myBanner{
    userFunc = user_banner->user_showBanner
}

page.100000 < lib.myBanner

无输出

第二次尝试:

page = PAGE
page.200000 = USER_INT
page.200000.userFunc = user_banner->user_showBanner
再次

- 不输出......

我到底在做什么?

1 个答案:

答案 0 :(得分:0)

如果您在网站上没有使用Fluid,则不会产生任何输出,因为

{f:cObject(typoscriptObjectPath:'lib.banner')}

是Fluid ViewHelper的内联符号,只能在Fluid模板中使用。

使用TypoScript和userFunc,您将在lib.banner中获得showBanner的返回值。你只需要在网站上的某个地方显示它。

如果您的网站中有PAGE对象,则可以按如下方式将其添加到页面中:

page.20141031 < lib.banner

(其中20141031是一个唯一的编号,尚未用于PAGE对象的另一部分。)