我有一个自定义内容元素的插件。该插件包含一个flexform。我想在TypoScript设置中使用flexform中的值。我怎么能这样做?
更具体地说,flexform定义为:
<T3DataStructure>
<meta>
<langDisable>1</langDisable>
</meta>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>LLL:EXT:cb_foundation/Resources/Private/Language/locallang_db.xlf:magellan.sheetTitle</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.magellan.cols>
<TCEforms>
<label>LLL:EXT:cb_foundation/Resources/Private/Language/locallang_db.xlf:magellan.cols</label>
<config>
<type>input</type>
<size>20</size>
<eval>trim</eval>
</config>
</TCEforms>
</settings.magellan.cols>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
我的自定义元素使用以下TypoScript添加到tt_content
:
lib.cb_foundation.magellan = HMENU
lib.cb_foundation.magellan {
1 = TMENU
1 {
sectionIndex = 1
sectionIndex.type = header
sectionIndex.useColPos = 0
wrap = <div data-magellan-expedition="fixed"><dl class="sub-nav"> | </dl></div>
NO {
allWrap = <dd data-magellan-arrival="c{field:sectionIndex_uid}">|</dd>
allWrap.insertData = 1
}
}
special = list
special.value.data = page:uid
}
tt_content.cbfoundation_magellan =< lib.cb_foundation.magellan
我想要做的是使用flexform中找到的值设置tt_content.cbfoundation_magellan.1.sectionIndex.useColPos
。我怎么能这样做?
答案 0 :(得分:4)
这是不可能的。不幸的是,Typoscript不会解析flexform中的值。
您需要一个extbase控制器或pi1来从flexform获取值,并将它们分配给一个呈现自定义内容元素的单独模板。
Extbase示例:
class ContentElementsController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
public function YourContentElementAction() {
// Get the data object (contains the tt_content fields)
$data = $this->configurationManager->getContentObject()->data;
// Append flexform values
$this->configurationManager->getContentObject()->readFlexformIntoConf($data['pi_flexform'], $data);
// Assign to template
$this->view->assign('data', $data);
}
}
答案 1 :(得分:0)
我不知道,如果扩展编辑或TYPO3 6.2.26带来了功能,但以下内容适用于我:
dataWrap = {field:flexform_YOURFIELD}
答案 2 :(得分:0)
以下StackOverflow答案描述了如何使用小型PHP USER类从TS安装程序访问EXT新闻的插件灵活设置:
https://stackoverflow.com/a/40006158/430742
应该很容易适应其他插件及其flexform设置。
答案 3 :(得分:0)
如上所述here现在有一个解决方案,现在TYPO3&gt; = 8.4。
TYPO3 Core Changelog中的功能为documented。