Typo3 类型3流体v:page.languageMenu和tx_新闻
当我需要一个语言切换器时,我通常使用像这样的打字Typo3 类型3流体v:page.languageMenu和tx_新闻,typo3,fluid,tx-news,Typo3,Fluid,Tx News,当我需要一个语言切换器时,我通常使用像这样的打字 lib.langnav > lib.langnav = HMENU lib.langnav { wrap = <ul>|ul special = language special.value = 0,1,3 special.normalWhenNoLanguage = 0 1 = TMENU 1 { noBlur = 1 NO = 1 NO { addi
lib.langnav >
lib.langnav = HMENU
lib.langnav {
wrap = <ul>|ul
special = language
special.value = 0,1,3
special.normalWhenNoLanguage = 0
1 = TMENU
1 {
noBlur = 1
NO = 1
NO {
additionalParams.cObject = COA
additionalParams.cObject {
5 = TEXT
5.wrap = &L=1
。。。和其他标准的东西
现在,当我使用流体时,我有:
<v:page.languageMenu class="language-menu"
defaultIsoFlag="{settings.config.defaultIsoFlag}"
defaultLanguageLabel="{settings.config.defaultLanguageLabel}"
tagName="ul"
tagNameChildren="li"
linkCurrent="0"
as="languageMenu"
hideNotTranslated="1"
classCurrent="'current'"> ... </v:page.languageMenu>
。。。
如何在fluid
lang.menu
中添加tx\u news
控制器和操作(为新闻详细信息页面创建翻译url)?我只找到一个解决方案-覆盖url中添加的查询字符串的默认视图帮助器。在我的扩展名(流体主题)中,键入3conf/ext/huskytheme/Classes/ViewHelpers/Page/LanguageMenuViewHelper.php
<?php
namespace HIT\Huskytheme\ViewHelpers\Page;
class LanguageMenuViewHelper extends \FluidTYPO3\Vhs\ViewHelpers\Page\LanguageMenuViewHelper {
protected function getLanguageUrl($uid) {
$excludedVars = trim((string) $this->arguments['excludeQueryVars']);
$config = array(
'parameter' => $this->getPageUid(),
'returnLast' => 'url',
'additionalParams' => '&L=' . $uid,
'useCacheHash' => $this->arguments['useCHash'],
'addQueryString' => true,
'addQueryString.' => array(
'method' => 'GET',
'exclude' => 'id,L,cHash' . ($excludedVars ? ',' . $excludedVars : '')
)
);
if (TRUE === is_array($this->arguments['configuration'])) {
$config = $this->mergeArrays($config, $this->arguments['configuration']);
}
return $this->cObj->typoLink('', $config);
}
}
我发现只有一个解决方案-覆盖url中添加的查询字符串的默认视图帮助器。在我的扩展名(流体主题)中,键入3conf/ext/huskytheme/Classes/ViewHelpers/Page/LanguageMenuViewHelper.php
<?php
namespace HIT\Huskytheme\ViewHelpers\Page;
class LanguageMenuViewHelper extends \FluidTYPO3\Vhs\ViewHelpers\Page\LanguageMenuViewHelper {
protected function getLanguageUrl($uid) {
$excludedVars = trim((string) $this->arguments['excludeQueryVars']);
$config = array(
'parameter' => $this->getPageUid(),
'returnLast' => 'url',
'additionalParams' => '&L=' . $uid,
'useCacheHash' => $this->arguments['useCHash'],
'addQueryString' => true,
'addQueryString.' => array(
'method' => 'GET',
'exclude' => 'id,L,cHash' . ($excludedVars ? ',' . $excludedVars : '')
)
);
if (TRUE === is_array($this->arguments['configuration'])) {
$config = $this->mergeArrays($config, $this->arguments['configuration']);
}
return $this->cObj->typoLink('', $config);
}
}
{namespace hit=HIT\Huskytheme\ViewHelpers}
...
<f:section name="LanguageMenu">
{v:variable.typoscript(path: 'plugin.tx_huskytheme.settings') -> v:variable.set(name: 'settings' )}
<v:variable.set name="currentlang" value="{v:page.language(normalWhenNoLanguage: 0)}" />
<div class="lang pull-right">
<hit:page.languageMenu
defaultLanguageLabel="{settings.config.defaultLanguageLabel}"
linkCurrent="0"
as="languageMenu"
hideNotTranslated="1"
classCurrent="'current'"
>
<v:variable.set name="langcount" value="{languageMenu -> f:count()}" />
<f:if condition="{langcount > 1}">
<f:then>
<ul class="navlang">
<f:for each="{languageMenu}" as="item" iteration="iteration">
<f:if condition="{item.current}">
<f:then>
<li class="active">
<span>{item.label}</span>
</li>
</f:then>
<f:else>
<li class="{f:if(condition: iteration.isLast, then: 'last')}">
<a href="{item.url}">{item.label}</a>
</li>
</f:else>
</f:if>
</f:for>
</ul>
</f:then>
</f:if>
</hit:page.languageMenu>
</div>
</f:section>