TYPO3CMS: язык меню отличается от содержимого - PullRequest
0 голосов
/ 04 июля 2018

Наш клиент хочет, черт возьми, испанская домашняя страница, но меню должно ссылаться на английские страницы.

К сожалению, английский не является языком по умолчанию в системе.

Возможно ли это как-то достичь в TYPO3?

Меню генерируется с помощью Typoscript:

lib.nav = HMENU
lib.nav {
    wrap = <ul class="noListStyle">|</ul>
    entryLevel = 0

    1 = TMENU
    1 {
        noBlur = 1
        expAll = 1
        NO = 1
        NO {
            wrapItemAndSub = <li>|</li>
            ATagParams = data-id="{field:uid}"
            allStdWrap.insertData = 1
        }    

        CUR < lib.nav.1.NO
        CUR {
            wrapItemAndSub = <li class="active">|</li>
        }

        ACT < lib.nav.1.NO
        ACT {
            wrapItemAndSub = <li class="active">|</li>
        }

        IFSUB < lib.nav.1.NO
        IFSUB {
            wrapItemAndSub = <li class="hasChildren">|</li>
            # doNotLinkIt = 1
        }

        CURIFSUB = 1
        CURIFSUB {
            wrapItemAndSub = <li class="hasChildren active">|</li>
        }

        ACTIFSUB = 1
        ACTIFSUB {
            wrapItemAndSub = <li class="hasChildren active">|</li>
        }

        SPC = 1
        SPC {
            doNotLinkIt = 1
            doNotShowLink = 1
            allWrap = <li class="spacer">|</li>
        }
    }

    2 < lib.nav.1
    2 {
        wrap = <ul class="navSub">|</ul>
    }
}

1 Ответ

0 голосов
/ 04 июля 2018

Решение для перехода на другой язык, отличный от языка по умолчанию, использует config.sys_language_mode = content_fallback. Как вы можете прочитать в Документах, в этом режиме вы можете указать некоторые языковые UID, к которым вы хотите применить запасной вариант: https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#sys-language-mode

Тем не менее, содержимое на странице все еще может вернуться к другому язык, определяемый значением этого ключевого слова, например, content_fallback; 1,3,0, для возврата к содержанию sys_language_uid 1, после этого к содержимому sys_language_uid 3 и если это не так, по умолчанию (0).

В вашем случае вам все еще нужно найти способ, как скрыть испанские страницы от меню, но иметь запасной вариант к английскому. Может быть, что-то есть в конфигурации оверлея языка страницы?

В худшем случае вы получаете заголовки страниц в объекте TMENU «вручную», запрашивая БД.

РЕДАКТИРОВАТЬ : А как насчет того, чтобы просто назвать названия испанских страниц английскими названиями от руки?

...