2016-03-21 42 views
0

我正在使用Typo3 CMS 7.6.4。我想通過TEMPLATE cObject轉發「當前」值,以便在其子部分中使用該值。typoscript如何通過TEMPLATE cObject將「當前」值轉換爲子部分?

lib.TEMPLATE_RENDER_OBJECT = TEMPLATE 
lib.TEMPLATE_RENDER_OBJECT { 
    template = TEXT 
    template.value = <!-- ###SUBPART### begin -->some content<!-- ###SUBPART### end --> 

    current = 1 

    subparts { 
    SUBPART = TEXT 
    SUBPART { 
     current = 1 
    } 
    } 
} 

不幸的是模板的CObject加載其自己的內容進入「當前」值,也什麼在TypoScriptReference for the TEMPLATE cObject指出:

[...]電流值加載與內容各分部的[...]

所以上lib.TEMPLATE_RENDER_OBJECT創建類似「一些內容」(而不是USI如我所期望的,初始「當前」值)。


是否可以禁用此模板的行爲或恢復初始「當前」值?

+0

只是一個簡短的問題(也許有點偏離主題)。爲什麼你仍然使用基於HTML的模板和子部件/標記?我建議使用FLUIDTEMPLATE cObject(請參閱https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html),它允許更多的靈活性。由於這是一個TYPO3 7,你應該避免使用這樣的舊學校東西,這些東西遲早會被刪除。此外,我會停止以大寫命名您的TS庫。移動到lowerCamelCase或類似的東西。 –

+0

@Björn我不會說,我仍然使用基於HTML的模板。這更像是我第一次使用CMS,typo3,typoscript和這些模板。實際上,這種方法使HTML文檔包含所需的HTML結構,根據需要重新排列這些結構並填充內容,而不會引入新標籤,這在我看來更加容易(對於我的用例,因爲我能夠使用我的標準開發HTML結構瀏覽器)。說實話,我也必須說,我到現在還沒有嘗試使用FLUIDTEMPLATE。 – Thomas

+0

@Björn是的,你的問題也許有點偏離主題,但肯定不是問題。 – Thomas

回答

0

一個簡短的答案是:不可能將最初設置的「當前」值轉發到TEMPLATE cObject的子部分。

我從lines 69-77 and lines 126-131 from the php source code for this type讀到這個。在那裏取代每個子部分的「當前」值。另一方面,對於每個標記,初始設置的「當前」值不會被覆蓋。所以這不是巧合處理的。但如果我在這裏犯了一個錯誤,請原諒我,因爲這是我第一次查看php源代碼。

解決方案可能是擴展現有的TEMPLATE源代碼,通過引入一個新的標誌來保持「當前」值。然後,這個擴展的源代碼可以被USER cObject使用。