2014-10-31 81 views
0

我想包括一个PHP脚本到Typo脚本的输出,它使用一个lib对象... 我惨遭失败:)包括从PHP脚本内容到Typo脚本

我宣布的lib对象这样:

TS:

includeLibs.bannerLib = fileadmin/banner/banner.php 

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

然后我需要在TS的其余部分使用一个变量,以包含这样的:

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

这很可能是它失败的地方。我不使用流体,但我猜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-对象,然后用某种IIb的(I猜渲染)。这里是什么样子(部分):

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

我试图包括在脚印的userFunc,但它拒绝吐出任何东西。 上面的PHP函数(类)保持不变。类中的函数根本不被调用。

在Typo脚本我想:

第一次尝试:

includeLibs.user_banner = fileadmin/banner/user_banner.php 

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

page.100000 < lib.myBanner 

没有任何输出

第2次尝试:

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

- 不输出...

我在做什么错?

+0

你是什么意思的“我不使用流体”?您不能在Fluid模板外使用Fluid ViewHelper。如果您处于FLUIDTEMPLATE上下文中,请尝试用单引号将lib.banner包装起来。顺便说一句,你可以使用纯TypoScript解决方案来实现这一点。 – lorenz 2014-10-31 10:24:35

+0

因此,{...}部分是Fluid ViewHelper?忍受我 - 我是T3的新手,完全困惑:) PHP脚本只是一个测试片段,如果我可以从中获得一些值 - 它最终会变得更大。所以“纯TS”很可能不是我所追求的目标。所以 - 再次:我只需要将PHP脚本的输出打包成一个TS变量。那不是那么难,可以吗?谷歌没有提供任何可用的结果,因此我的问题是;) – Swissdude 2014-10-31 10:31:30

回答

0

如果你不是在你的网站上使用的流体,因为

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

是只能在液体模板中使用的流体视图助手的内嵌符号,这将不会产生任何输出。

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

如果你在你的网站上的网页对象,您可以在如下添加到您的网页:

page.20141031 < lib.banner 

(其中20141031是不用于您的页面对象的另一部分还没有一个唯一的编号)

+0

谢谢 - 澄清了一些事情:)问题是,没有任何地方的页面对象。这个页面是由一些T3-Crack制作的,他们只用TS来设置整个页面。整个内容被包装成一个lib对象,并通过一些自制的renderlib渲染(我猜)。这就是为什么我想出了用常量/变量输出PHP函数内容的想法。所以你的方法并没有真正的工作,因为我没有办法将它插入到模板中(因为没有模板)...我将在上面的编辑中添加ts ... – Swissdude 2014-10-31 12:40:29

+0

不能使用用户函数来设置常数的值。常量是静态的。 – pgampe 2014-10-31 19:21:37