[英]Typo3 V6: How to create a content element container? (without TV)
對於一個我正在使用Typo3 v6.0的項目。 我正在尋找創建嵌套的內容元素或內容元素容器。 我希望能夠在不使用特定模板的情況下創建內聯雙列布局。 我希望不使用templavoila這樣做。
我嘗試過的擴展是gridelements
, kb_nescefe
, bs_fce
, multicolumn
但是這些擴展gridelements
,因為它們與Typo3 V6不兼容。
我的目標是像附加圖像那樣的最終結果。 內聯雙列內容可以省略,使用一次或多次使用,包含任何其他內容元素。
我在這里尋找最簡單的解決方案。 我更喜歡不需要在像flux
和whatnot這樣的解決方案中投入大量的學習時間( http://fedext.net/ - 看起來很酷,但現在也耗費時間)
有任何想法嗎?
我是Fluid擴展套件的作者(流量,流體含量,流體頁面等),當然希望幫助您了解使用FluidContent制作FCE。 它確實沒有人們擔心的那么先進。 至少,它比上面的例子更緊湊。 以下結果與FluidContent中的示例相同:
TypoScript(靜態加載:css_styled_content,fluid_content)
plugin.tx_fed.fce.yourname {
templateRootPath = fileadmin/Templates # if you don't want to use an extension (1)
# partial and layout root paths not defined (2)
}
關於(1)你真的,真的應該。 使用擴展程序可將用戶上傳的媒體等與您的網站內容分開。 如果您這樣做,只需使用EXT:...私有資源文件夾的路徑。 關於(2)這些路徑只有在您真正希望使用部分時才是必需的。
然后,模板文件本身(在TS中添加文件所在的路徑時自動檢測):
{namespace flux=Tx_Flux_ViewHelpers}
<f:layout name="Content" />
<f:section name="Configuration">
<flux:flexform id="columns" label="Columns" icon="path/to/iconfile.jpg">
<flux:flexform.grid>
<flux:flexform.grid.row>
<flux:flexform.grid.column>
<flux:flexform.content name="left" label="Left content" />
</flux:flexform.grid.column>
<flux:flexform.grid.column>
<flux:flexform.content name="right" label="Right content" />
</flux:flexform.grid.column>
</flux:flexform.grid.row>
</flux:flexform.grid>
</flux:flexform>
</f:section>
<f:section name="Preview">
<flux:widget.grid />
</f:section>
<f:section name="Main">
<div class="row">
<div class="span6">
<flux:flexform.renderContent area="left" />
</div>
<div class="span6">
<flux:flexform.renderContent area="right" />
</div>
</div>
</f:section>
正如您所看到的,您可以完全自由地添加任何您想要的HTML,使用任何ViewHelpers(如果那是你的東西,甚至渲染TS對象)。 要添加其他內容元素,只需添加新模板文件 - 它們將自動被識別。
但它的工作方式與IRRE不同(你也可以使用Flux字段實現 - 如果你希望看到它的演示,請告訴我):它會讓你使用TYPO3中的原生拖放來放置你的孩子將內容元素轉換為實際內容容器 - 就像您以前使用電視一樣。
因此,Fluid Content可能是您最接近電視的內容。
關於Flux過度殺戮,我想告訴你它實際上的表現:
一開始看起來可能看起來很難,但我保證你不會知道和記住比pibase,FlexForm XML,TS或本機Extbase插件更少。 如果你想要更多的安全網,我強烈建議你在編輯器中使用XSD模式 - 這可以讓你自動完成特殊的<flux:....>
標簽和其他標簽。
但是:它需要你學習一點關於Fluid的邏輯:什么是Layouts和Partials(你很可能想在某些時候使用它們)以及如何使用特殊標簽並引用變量(這將是其他用例 - 但不是手頭的用例;它只需要簡單的ViewHelper標記)。
我希望這有幫助。 而且我已經減少了你對Flux過度殺戮和太多學習的恐懼;)
干杯,
克勞斯又名。 NamelessCoder
有一個startnext項目 ,其中grid_elements中的已知錯誤已得到修復。 Afaik下一步是使grid_elements與TYPO3 6兼容。但是我想,它們需要幾周才能發布。 但是,也許它們將從版本2開始(這些日子將與TYPO3 6兼容......)。
看看鍛造項目 。
您可能需要查看擴展DCE( http://typo3.org/extensions/repository/view/dce ); 在那里你可以自己定義內容元素。 或者,您可以使用http://fedext.net/框架創建任何字面意思。 只需閱讀最新的博客文章,即可了解如何使用這些擴展創建動態內容元素。
好吧,我有半解決方案。 我已經使用WEC內容元素插件來管理自定義內容元素。
然后我使用了以下flexform:
<T3DataStructure>
<ROOT>
<type>array</type>
<el>
<leftColumn>
<TCEforms type="array">
<label>Left column</label>
<config>
<type>inline</type>
<foreign_table>tt_content</foreign_table>
<maxitems>100</maxitems>
<appearance>
<showSynchronizationLink>0</showSynchronizationLink>
<showAllLocalizationLink>0</showAllLocalizationLink>
<showPossibleLocalizationRecords>0</showPossibleLocalizationRecords>
<showRemovedLocalizationRecords>0</showRemovedLocalizationRecords>
<expandSingle>1</expandSingle>
</appearance>
</config>
</TCEforms>
</leftColumn>
<rightColumn>
<TCEforms type="array">
<label>Right column</label>
<config>
<type>inline</type>
<foreign_table>tt_content</foreign_table>
<maxitems>100</maxitems>
<appearance>
<showSynchronizationLink>0</showSynchronizationLink>
<showAllLocalizationLink>0</showAllLocalizationLink>
<showPossibleLocalizationRecords>0</showPossibleLocalizationRecords>
<showRemovedLocalizationRecords>0</showRemovedLocalizationRecords>
<expandSingle>1</expandSingle>
</appearance>
</config>
</TCEforms>
</rightColumn>
</el>
</ROOT>
</T3DataStructure>
以下前端的typoscript設置:
tt_content.twoColumnContainer = COA
tt_content.twoColumnContainer {
10 = < lib.stdheader
20 = COA
20 {
wrap = <div class="twocolumn-container"> | </div>
10 = RECORDS
10 {
tables = tt_content
dontCheckPid = true
source.data = t3datastructure : pi_flexform->leftColumn
wrap = <div class="twocolumn-left"> | </div>
}
20 = RECORDS
20 {
tables = tt_content
dontCheckPid = true
source.data = t3datastructure : pi_flexform->rightColumn
wrap = <div class="twocolumn-right"> | </div>
}
}
這導致了一個后端內容元素,它使用IRRE編輯器添加/編輯內容元素。 容器元素沒有預覽,並且兩列位於彼此下方(而不是彼此相鄰)。 所有這一切都是我在谷歌搜索和嘗試各種方法/插件后找到的唯一可行的解決方案。
希望這有助於某人。
我會...
使用2個新字段(每列一個)擴展tt_content
表。 您可以在phpMyAdmin中手動執行此操作,但是在進行數據庫比較時,您可能會在安裝工具中意外刪除這些字段。 因此最好為此創建一個非常簡單的擴展 - 它實際上只有2個文件: ext_emconf.php描述擴展名, ext_tables.sql用於定義新字段。
在typo3conf / extTables.php中定義一個新的內容元素類型(=容器)和2個新字段(一個用於左列,一個用於右列),每個字段都是IRRE類型。
在根頁面的TypoScript配置中設置TCAdefaults.tt_content.pid = xxx
,以便左/右列元素不存儲在頁面本身上,而是存儲在某個sysfolder中。
在模板設置中定義新的內容元素,以便根據需要進行渲染。
示例IRRE字段:
'user_2col_left' => array(
'exclude' => 1,
'label' => 'Left column',
'config' => array(
'type' => 'inline',
'foreign_table' => 'tt_content',
'maxitems' => '10',
'appearance' => array(
'collapseAll' => '1',
'expandSingle' => '1',
'newRecordLinkPosition' => 'bottom',
'showAllLocalizationLink' => '1',
'showPossibleLocalizationRecords' => '1',
'showSynchronizationLink' => '1',
'useSortable' => '1',
'enabledControls' => array(
'hide' => '0',
),
),
'behaviour' => array(
'disableMovingChildrenWithParent' => '1',
'localizeChildrenAtParentLocalization' => '1',
),
)
),
新內容類型示例:
t3lib_div::loadTCA('tt_content');
$TCA['tt_content']['columns']['CType']['config']['items'][] = array(
0 => '2 columns',
1 => 'user_2cols',
2 => '../fileadmin/user_2cols.gif',
);
t3lib_SpriteManager::addTcaTypeIcon('tt_content', 'user_2cols', '../fileadmin/user_2cols.gif');
$TCA['tt_content']['types']['user_2cols']['showitem'] = 'CType,header,--div--;LLL:EXT:cms/locallang_ttc.xml:tabs.access,--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.visibility;visibility,--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.access;access,--div--;LLL:EXT:cms/locallang_ttc.xml:tabs.appearance,--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.frames;frames,--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.textlayout;textlayout,--div--;LLL:EXT:cms/locallang_ttc.xml:tabs.extended';
對於您的特定情況,這是一個簡單(有點粗糙)的解決方案。 更好的解決方案將考慮動態設置容器中列數的可能性。
使用左/右列元素會有一些限制 - 您將無法輕松移動它們或在各種容器之間復制它們。
這是一個關於如何在不使用TemplaVoila的情況下制作FCE的會議演示視頻。 不幸的是只有德語,但也許有幫助。
我建議你試試“multicolumn”插件。 它沒有其他實現的依賴(我幾乎嘗試了所有的FCE替代品)並且它具有嵌套功能。總體來說它與TYPO3很好地協作。 最近它被移植到TYPO3 v6。 我在很多網站上使用它,我很滿意。 (有很少的錯誤,比如顯示錯誤的“丟失元素”,但偽造頁面上有修復)
以下是TER文檔的鏈接: http : //typo3.org/extension-manuals/multicolumn/2.1.14/view/
嘗試使用Fluid Powered TYPO3。 使用新的預配置分發“網站”
http://typo3.org/extensions/repository/view/site
來自Claus Due的截屏視頻
http://vimeo.com/110469200
別忘了添加typo3conf / AdditionalConfiguration.php 如何安裝?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.