2014-10-31 121 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