我有一个工作的Extbase扩展,它向前端显示一个表单,具体取决于在将其放在页面上时在后端选择的选项。
我对这些选项使用Flexform(主要是表单操作,还有一些字段)。
一切正常,除了常数。 由于此表单模板可能会针对其使用的不同网站进行更改,因此我希望能够更改模板根路径,因此我可以定义自定义模板。
我在form_plugin / Configuration / TypoScript中有一个constants.txt和一个setup.txt
常量看起来像这样:
plugin.tx_nlmymail_newsletter {
view {
# cat=plugin.tx_nlmymail_newsletter/file; type=string; label=Path to template root (FE)
templateRootPath = EXT:nl_mymail/Resources/Private/Templates/
# cat=plugin.tx_nlmymail_newsletter/file; type=string; label=Path to template partials (FE)
partialRootPath = EXT:nl_mymail/Resources/Private/Partials/
# cat=plugin.tx_nlmymail_newsletter/file; type=string; label=Path to template layouts (FE)
layoutRootPath = EXT:nl_mymail/Resources/Private/Layouts/
}
persistence {
# cat=plugin.tx_nlmymail_newsletter//a; type=string; label=Default storage PID
storagePid =
}
}
我的setup.txt看起来像这样:
plugin.tx_nlmymail_newsletter {
view {
templateRootPaths.0 = {$plugin.tx_nlmymail_newsletter.view.templateRootPath}
partialRootPaths.0 = {$plugin.tx_nlmymail_newsletter.view.partialRootPath}
layoutRootPaths.0 = {$plugin.tx_nlmymail_newsletter.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_nlmymail_newsletter.persistence.storagePid}
}
}
所以根据this,这应该足够了。 也许我在这里错过了一块。
在我的ext_tables.php中,我使用
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'mail connection');
包括Typoscript。
我是否需要为常量制作自定义类别?
我与bootstrap_package插件进行了比较,但我似乎无法找到关键的区别。
如果有人能指出我正确的方向,也许是我缺少的文件的一部分,我将非常感激。
答案 0 :(得分:3)
从评论中复制:
问题是模板中没有包含静态模板。
以下是截图:
自动这样做是否可行?
是的,它只是基于字符串的功能,而不是文件。
您必须在ext_localconf.php中使用以下命令:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript
或
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptConstants
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup
来自felogin系统扩展的示例:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript('TYPO3.CMS.Felogin', 'constants', '
styles.content.loginform {
# cat=content/cLogin; type=int+; label= PID of user archive: Enter the page-uid number (PID) of the folder where you keep your fe_users that are supposed to login on this site. This setting is necessary, if login is going to work!
pid =
# cat=content/cLogin; type=; label= Login template: Enter the path for the HTML template to be used
templateFile = EXT:felogin/Resources/Private/Templates/FrontendLogin.html
}
', 'defaultContentRendering');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript('TYPO3.CMS.Felogin', 'setup', '
# Setting "felogin" plugin TypoScript
tt_content.login = COA
tt_content.login {
10 =< lib.stdheader
20 >
20 =< plugin.tx_felogin_pi1
}
', 'defaultContentRendering');
最后:
建议您使用静态模板,因为您可能有不同的树和设置。大多数TER扩展也使用此方法。