【问题标题】:TYPO3 - TCA group tt_content - Array?TYPO3 - TCA 组 tt_content - 数组?
【发布时间】:2017-05-17 09:13:58
【问题描述】:

我通过 XML 有一个正常的 TYPO3 TCA 组元素:

<tabNavi>
    <ROOT>
        <TCEforms>
            <sheetTitle>Tab Navi</sheetTitle>
        </TCEforms>
        <type>array</type>
        <el>
            <!-- Tab Navi Settings -->
            <settings.tabNavi.headlines>
                <TCEforms>
                    <label>Auswahl der Tabs</label>
                    <config>
                        <type>group</type>
                        <internal_type>db</internal_type>
                        <allowed>tt_content</allowed>
                        <size>5</size>
                        <minitems>0</minitems>
                        <maxitems>6</maxitems>
                        <show_thumbs>1</show_thumbs>
                        <wizards>
                            <_PADDING>1</_PADDING>
                            <_VERTICAL>1</_VERTICAL>
                            <suggest>
                                <type>suggest</type>
                                <default>
                                    <searchWholePhrase>1</searchWholePhrase>
                                </default>
                            </suggest>
                        </wizards>
                    </config>
                </TCEforms>
            </settings.tabNavi.headlines>
        </el>
    </ROOT>
</tabNavi>

这里是控制器 PHP:

class ElementsController extends BaseController {

    /**
    * @var \TYPO3\CMS\Extbase\Object\ObjectManager
    * @inject
    */
    protected $objectManager;

    /**
    */
    public function setObjectManager($objectManager)
    {
        $this->objectManager = $objectManager;
    }

    /**
    * @return mixed
    */
    public function getObjectManager()
    {
        return $this->objectManager;
    }

    /**
    * @return void
    */
    public function tabNaviAction()
    {

    }
}

这里是 TYPO3 FLUID 代码:

<nav class="content-nav-tabs sticky affix-top">
    <ul class="nav nav-tabs item-detail-tabs">
        <li role="presentation" class="active"><a href="#top" rel="nofollow" title="Übersicht">Übersicht</a></li>
        <f:debug>{settings.tabNavi.headlines}</f:debug>


        <f:for each="{settings.tabNavi.headlines}" as="navTabsItem">
            <li role="presentation"><a href="#c{navTabsItem.uid}" rel="nofollow" title="{navTabsItem.header}">{navTabsItem.header}</a></li>
        </f:for>
    </ul>
</nav>

但是对于正确的输出,我需要一个数组,而不是字符串。如果我使用 Vhs "v:iterator.explode" 它适用于来自 tt_content 的 uid,但我不需要 uid,我需要 uid 后面的对象。

我得到的只是普通的 Comma-UID-List:https://docs.typo3.org/typo3cms/TCAReference/6.2/Reference/Columns/Group/Index.html#the-comma-list-method-default

我能做什么?我需要控制器中的另一个 php 吗?谢谢!

【问题讨论】:

    标签: php arrays xml typo3 fluid


    【解决方案1】:

    使用 v:content.get 循环查看助手并将tt_content uid列表设置为参数

    <f:for each="{v:content.get(contentUids: {settings.tabNavi.headlines -> v:iterator.explode()}, render: 'FALSE')}" as="element">
      …
    </f:for>
    

    类似的东西,我现在自己没有尝试过,但你明白了……hth

    【讨论】:

    • 感谢您的帮助!但出现错误:参数“each”已注册为“array”类型,但在视图助手中属于“string”类型
    • 这很好用: {element.header}
    【解决方案2】:

    这很好用:

    <f:for each="{v:content.get(contentUids: '{settings.tabNavi.headlines -> v:iterator.explode()}', render: 'FALSE')}" as="navTabsItem">
        {navTabsItem.header}
    </f:for>
    

    感谢@Wolfgang

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      相关资源
      最近更新 更多