我尝试在 felogin 模板中进行语言切换,如下所示:
<!--###FORGOTP_VALID###-->
<div class="row">
<div class="col-md-12">
<p class="loginlink"><span><!--###FORGOT_PASSWORD_LINK###-->###FORGOT_PASSWORD###<!--###FORGOT_PASSWORD_LINK###--></span></p>
</div>
</div>
<div class="row">
<div class="col-md-12">
<f:if condition="{f:cObject(typoscriptObjectPath: 'lib.language')} == 'en'">
<p><span>Don't have an account? <a href="/sign-up/">Sign up for free!</a></span></p>
</f:if>
<f:if condition="{f:cObject(typoscriptObjectPath: 'lib.language')} == 'de'">
<p><span>Noch kein Account? <a href="de/sign-up/">Kostenlos registrieren!</a></span></p>
</f:if>
</div>
</div>
但它忽略了条件。我错过了什么?
编辑:我添加了一个钩子,就像这里建议的那样 https://docs.typo3.org/typo3cms/extensions/felogin/Hooks/Index.html 和这里的例子 http://labor.99grad.de/2017/07/29/typo3-fe_login-um-eigene-marker-erweitern/......但是我现在在登录页面上看到一个空白页面。
我在我的一个扩展"帐户管理器"中添加了$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['felogin']['postProcContent']
ext_tables.php年,我补充说:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['felogin']['postProcContent']['gwl_add_marker'] = 'EXT:accountmanager/Classes/Hooks/FeUserHook->addMarker';
在我的主设置.ts中,我添加了:
plugin.tx_felogin_pi1 {
templateFile = EXT:accountmanager/Resources/Private/Templates/Felogin/FrontendLogin.html
settings {
pidMainPage = 354
}
}
在 Ext:accountmanager/Classes/Hooks/FeUserHook 中.php我有:
<?php
namespace VendorAccountmanagerHooks;
use TYPO3CMSCoreUtilityGeneralUtility;
class FeUserHook {
/**
* Fügt alle Settings als Marker für das FrontendLogin.html-Template ein
* im Stil von: ###settings.pidMainPage###
*
*/
public function addMarker ( $params, $_this ) {
$objectManager = GeneralUtility::makeInstance('TYPO3CMSExtbaseObjectObjectManager');
$cObj = $objectManager->get('TYPO3CMSFrontendContentObjectContentObjectRenderer');
$settings = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_felogin_pi1.']['settings.'];
$marker = [];
foreach ($settings as $k=>$v) {
$marker["###settings.{$k}###"] = $v;
}
$content = $cObj->substituteMarkerArrayCached($params['content'], $marker);
return $content;
但是当我把标记放在EXT:accountmanager/Resources/Private/Templates/Felogin/FrontendLogin中时.html
###settings.pidMainPage###
。我得到一个空白页...
felogin 扩展不使用 Fluid,因此您无法在模板中使用任何条件。
但是,您可以使用使用Fluid的Hairu扩展来实现这一点。
请注意,在这种情况下,您实际上不需要条件,因为您的意图可以通过<f:translate>
来解决。