我通过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>
但是对于正确的输出我需要一个ARRAY,而不是一个字符串。如果我使用Vhs“v:iterator.explode”它对于来自tt_content的uid来说效果很好,但是我不需要uid,我需要uid后面的对象。
我得到的只是正常的逗号-UID列表:https://docs.typo3.org/typo3cms/TCAReference/6.2/Reference/Columns/Group/Index.html#the-comma-list-method-default
我该怎么办?我需要在Controller中使用另一个php吗?谢谢!
答案 0 :(得分:1)
使用 五: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
答案 1 :(得分:0)
这很好用:
<f:for each="{v:content.get(contentUids: '{settings.tabNavi.headlines -> v:iterator.explode()}', render: 'FALSE')}" as="navTabsItem">
{navTabsItem.header}
</f:for>
谢谢@Wolfgang