TYPO3 V6:如何创建一个内容元素的容器? (没有电视)(Typo3 V6: How to

2019-07-20 19:07发布

对于一个项目,我使用TYPO3的V6.0。 我期待创建嵌套内容元素或内容元素的容器。 我希望能够在不使用特定的模板,它创建一个内联两栏布局。 我要做到这一点,而无需使用templavoila的。

我曾尝试扩展是gridelementskb_nescefebs_fcemulticolumn ,但这些不工作,因为它们与TYPO3的V6兼容。

我的目标,如附图片的最终结果。 其中直列两列的内容可以ommitted,使用一次或多次使用,含有的任何其它内容元素。

我在这里寻找最简单的解决方案。 我不想不得不投入大量的学习时间等的溶液flux和诸如此类的东西( http://fedext.net/ -看起来很酷,也太费时现在)

有任何想法吗?

Answer 1:

我是流体扩展套件(光通量,fluidcontent,fluidpages等)的作者,当然希望可以帮助您了解如何使用FluidContent使功能组别选举。 这真的不是先进的人们可能担心。 最起码,它比上面的例子更紧凑。 下达到相同的结果你的榜样,在FluidContent:

Typo脚本(静载荷: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的工作方式不同(这可以实现利用通量场-让我知道,如果你希望看到的是一个演示):它会ALLOS您使用本机在TYPO3拖欧米茄下降到把你的孩子内容元素融入到实际的内容容器 - 就像你用电视做。

因此,流动性内容可能是你将来到电视最接近的一次。

关于助焊剂是矫枉过正,我想给你的东西,它实际上执行了一个想法:

  • TS的缓存读取知道路径
  • 检测到的模板缓存列表
  • 流体缓存到本地PHP,仅流量(通过,这意味着它的原生PHP一路)使用流体存储配置
  • 磁通本身并注册一个钩子订户其中反应以内容被保存,这确实放慢后端(不知不觉)
  • 助焊剂本身不会产生对FE负载有一个例外:当未缓存插件(FluidContent缓存!)光通量可在本地缓存的PHP代码中调用读取配置。
  • FluidContent由一个非常简单的控制器; 输出完全缓存。
  • 它只使用,你使用它的ViewHelpers资源:通过自身产生绝对的零负担 - 你可能要添加的VHS视图助手集合。 它包含ViewHelpers一堆我敢肯定你会发现有用的。

它看起来可能压倒在第一,但我向你保证有较少的了解和比pibase,柔性成型XML,TS或本地Extbase插件记住。 如果你想更安全网我强烈建议你使用编辑XSD架构-这可以让你的特殊的自动完成<flux:....>标签等。

但是:它会要求你了解流体的逻辑一小点点:什么布局和局部模板是(你很可能希望使用那些在某些点),以及如何使用特殊标记和引用变量(将在需要其他使用情况 - 但不是一个在手,只需要简单的视图助手标签)。

我希望这有帮助。 而且,我已经减少你的担忧Flux是矫枉过正和太多的学习;)

干杯,
克劳斯又名。 NamelessCoder



Answer 2:

有一个startnext项目 ,其中在grid_elements已知的错误已被修正。 据我所知,下一步是要与TYPO3 6.兼容grid_elements但我想,这将需要几个星期,他们在发布之前。 不过,或许他们将与第2版开始(这将TYPO3 6这些天...兼容)。

看一看在锻造项目 。



Answer 3:

你可能想看看扩展DCE( http://typo3.org/extensions/repository/view/dce ); 在那里,你可以自己定义的内容元素。 另外,您可以创建一个字面上的东西http://fedext.net/框架。 刚刚看了最新的博客文章,以获取有关如何创建这些扩展的动态内容元素的想法。



Answer 4:

好吧,我有半解。 我已经与WEC内容元素插件管理自定义内容元素。

然后我用下面的柔性成型:

<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>

而下面的前端Typo脚本设置:

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编辑器添加/编辑内容元素。 该容器元素没有预览虽然和两列定位下方彼此(而不是旁边的海誓山盟)。 所有这一切是唯一可行的解​​决方案我很多时间google搜索和尝试各种方法/插件之后发现。

希望这可以帮助别人。



Answer 5:

我会...

  1. 延长tt_content 2个新字段(每列一个)表。 你可以做手工在phpMyAdmin,但那么你将有可能这样做数据库比什么时字段得到意外的安装工具删除。 因此,它是更好地创建这是一个非常简单的扩展-它真的只是2个文件:ext_emconf.php描述新领域的定义延伸和ext_tables.sql。

  2. typo3conf / extTables.php定义新的内容元素类型(=容器)和2个新字段(一个用于左列,一个用于右列)它们中的每IRRE类型。

  3. 设置TCAdefaults.tt_content.pid = xxx根页的Typo脚本配置使左/右列的元素不存储在页本身上,但在某些系统夹。

  4. 让你想要它呈现在模板中定义的设置新的内容元素。

更新

例如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';

笔记

  • 这是一个简单的(有点粗)解决方案,您的具体情况。 更好的解决方案将考虑到的动态设置在容器中的列数帐户可能性。

  • 会有一些限制,与左/右列元素的工作 - 你将无法轻松地移动它们或各种容器之间复制它们。



Answer 6:

下面是会议演示如何使功能组别选举不使用TemplaVoila视频。 不幸的是只有在德国,但也许它帮助。

http://vimeo.com/29213790



Answer 7:

我建议你试试“多列”插件。 它没有依赖其他实现方式(我试过几乎如果不是全部的FCE替代品),它具有嵌套功能..总体来说打得很好地与TYPO3。 最近,它已经被移植到TYPO3 V6。 我使用它超过几个网站,我很满意。 (有一些缺陷,如显示错误的“失落的元素”,但有一个修复伪造页)

下面是TER文档的链接: http://typo3.org/extension-manuals/multicolumn/2.1.14/view/



Answer 8:

尝试使用流体供电TYPO3。 随着新的预cofigured分配“地盘”

http://typo3.org/extensions/repository/view/site

截屏克劳斯由于

http://vimeo.com/110469200

不要忘记添加typo3conf / AdditionalConfiguration.php 如何安装呢?



文章来源: Typo3 V6: How to create a content element container? (without TV)