对于我正在使用Typo3 v6.0的项目。我正在寻找创建嵌套的内容元素或内容元素容器。我希望能够在不使用特定模板的情况下创建内联双列布局。我希望这样做而不使用使用templavoila。
我尝试过的扩展程序包括gridelements
,kb_nescefe
,bs_fce
,multicolumn
,但这些扩展无效,因为它们与Typo3 V6不兼容。
我的目标是像附加图像那样的最终结果。内联双列内容可以省略,使用一次或多次使用,包含任何其他内容元素。
我在这里寻找最简单的解决方案。我更喜欢不不得不在像flux
这样的解决方案中投入大量的学习时间和什么(http://fedext.net/ - 看起来很酷,但现在也太耗费时间了)
有什么想法吗?
答案 0 :(得分:14)
我是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字段 - 如果您希望看到它的演示,请告诉我):它会让您使用本机拖动-n-drop in TYPO3将您的孩子内容元素放入实际的内容容器中 - 就像您以前使用电视一样。
因此,流体内容可能是您最接近电视的内容。
关于Flux过度杀戮,我想告诉你它实际上的表现:
起初看起来可能看起来很压倒,但我向你保证,与pibase,FlexForm XML,TS或原生Extbase插件相比,知之甚少。如果您想要更多的安全网,我强烈建议您在编辑器中使用XSD架构 - 这可以让您自动完成特殊的<flux:....>
标签和其他标签。
然而:它需要你学习一点关于Fluid的逻辑:什么是Layouts和Partials(你很可能想在某些时候使用它们)以及如何使用特殊标签并引用变量(这将是在其他用例中需要 - 但不是手头的那个;它只需要简单的ViewHelper标签。)
我希望这会有所帮助。而且我已经减少了你对Flux过度杀戮和太多学习的恐惧;)
干杯,
克劳斯又名。 NamelessCoder
答案 1 :(得分:5)
有一个startnext project,其中grid_elements中的已知错误已得到修复。 Afaik下一步是使grid_elements与TYPO3 6兼容。但是我想,它们需要几周才能发布。但是,也许它们将从版本2开始(这些日子将与TYPO3 6兼容......)。
答案 2 :(得分:4)
您可能需要查看扩展DCE(http://typo3.org/extensions/repository/view/dce);在那里你可以自己定义内容元素。 或者,您可以使用http://fedext.net/框架创建任何字面意义。只需阅读最新的博客文章,即可了解如何使用这些扩展创建动态内容元素。
答案 3 :(得分:4)
好吧,我有半解决方案。我已经使用WEC Content Elements plugin来管理自定义内容元素。
然后我使用了以下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编辑器添加/编辑内容元素。容器元素没有预览,并且两列位于彼此下方(而不是彼此相邻)。所有这一切都是我在谷歌搜索和尝试各种方法/插件后找到的唯一可行的解决方案。
希望这有助于某人。
答案 4 :(得分:2)
我会...
使用2个新字段(每列一个)扩展tt_content
表。您可以在phpMyAdmin中手动执行此操作,但是在进行数据库比较时,您可能会在安装工具中意外删除这些字段。所以最好为此创建一个非常简单的扩展 - 它实际上只有2个文件: ext_emconf.php 描述扩展名, ext_tables.sql 用于定义新字段。< / p>
在 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';
对于您的特定情况,这是一个简单(有点粗糙)的解决方案。更好的解决方案将考虑动态设置容器中列数的可能性。
使用左/右列元素会有一些限制 - 您将无法轻松移动它们或在各种容器之间复制它们。
答案 5 :(得分:1)
以下是关于如何在不使用TemplaVoila的情况下制作FCE的会议演示视频。不幸的是只有德语,但也许有帮助。
答案 6 :(得分:0)
我建议你试试“multicolumn”插件。它没有其他实现的依赖(我几乎尝试了所有的FCE替代品)并且它具有嵌套功能。总体来说它与TYPO3很好地协作。最近它被移植到TYPO3 v6。我在很多网站上使用它,我很满意。 (有很少的错误,比如显示错误的“丢失元素”,但伪造页面上有修复)
以下是TER文档的链接: http://typo3.org/extension-manuals/multicolumn/2.1.14/view/
答案 7 :(得分:0)
尝试使用Fluid Powered TYPO3。使用新的预先配置的分发&#34;网站&#34;
http://typo3.org/extensions/repository/view/site
Claus Due的截屏视频
http://vimeo.com/110469200
别忘了添加typo3conf / AdditionalConfiguration.php How do I install it?