【问题标题】:TYPO3 fluid v:page.languageMenu and tx_newsTYPO3 流体 v:page.languageMenu 和 tx_news
【发布时间】:2016-02-19 12:12:20
【问题描述】:

当我需要语言切换器时,我通常会像这样使用 TypoScrict

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

然后我添加tx_news控制器和动作来获取详细页面上新闻项目的翻译网址:

  10 = TEXT
  10.data = GP:tx_news_pi1|news
  10.wrap = &tx_news_pi1[news]=|
  10.required = 1

  20 = TEXT
  20.data = GP:tx_news_pi1|controller
  20.wrap = &tx_news_pi1[controller]=|
  20.required = 1

  30 = TEXT
  30.data = GP:tx_news_pi1|action
  30.wrap = &tx_news_pi1[action]=|
  30.required = 1

...和其他标准的东西。

现在当我使用 FLUID 时,我有:

    <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>

如何在流体lang.menu 中添加tx_news 控制器和操作(为新闻详细信息页面制作翻译网址)?

【问题讨论】:

    标签: typo3 fluid tx-news


    【解决方案1】:

    我只找到一种解决方案 - 覆盖默认 View Helper 以在 url 中添加 QueryString。在我的扩展(流体主题)typo3conf/ext/hus​​kytheme/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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多