typeNum для загрузки содержимого без заголовков. Не работает на других языках, чем по умолчанию

У меня есть этот typeoscript для запроса только контента (без заголовка, css, js и т.д.)

ajaxCall = PAGE
ajaxCall {
    typeNum = 999
    config.disableAllHeaderCode = 1
    config.disablePrefixComment = true
    # config.additionalHeaders = Content-type: text/html; charset=utf-8
    config.metaCharset = UTF-8

    10 = COA
    10 <  styles.content.get
    10.stdWrap.prepend > # supress feEditAdvanced-firstWrapper - Bug in typo3 4.3.1
}

Это отлично работает, пока я использую язык по умолчанию. Но когда я хочу использовать этот тип страницы на другом языке &L=1, это не работает, и я ничего не получаю.

Я немного протестировал и обнаружил, что проблема здесь

10 = COA
10 <  styles.content.get

Похоже, что при наличии языкового параметра styles.content.get пусто.

Изменить: я пытаюсь получить содержимое с помощью собственного объекта CONTENT.

ajaxCallw = PAGE
ajaxCallw {
    typeNum = 1000
    config.disableAllHeaderCode = 1
    config.disablePrefixComment = true
    # config.additionalHeaders = Content-type: text/html; charset=utf-8
    config.metaCharset = UTF-8

    10 = CONTENT
    10 {
        table = tt_content 
        select.orderBy = sorting 
        select.where = colPos=0 
        select.languageField = 4
    }

}

Похоже, что select.languageField = 4 полностью игнорируется, поскольку он по-прежнему отображает содержимое на языке по умолчанию. И когда я вызываю URL-адрес с &type=1000&L=4, он все равно ничего мне не показывает. (Без параметра L=4 он показывает мне содержимое языка по умолчанию)


person nbar    schedule 29.07.2016    source источник


Ответы (3)


select.languageField — указатель на поле в базе данных

select.languageField = sys_language_uid

Насколько я помню, языковая переменная по умолчанию не парсится, так что вам придется установить ее самостоятельно

ajaxCall {
    # your code
    config.sys_language_uid = 0
}

# condition for the language. Adjust it to your language id
[globalVar = GP:L = 1]
ajaxCall.config.sys_language_uid = 1
[global]
person Dimitri L.    schedule 29.07.2016
comment
Хорошо, для проверки я прямо установил ajaxCall.config.sys_language_uid = 4 и получил контент с языка 4! Но только если я не установил какой-либо языковой параметр в URL-адресе. Я еще немного протестирую (возможно, проблема в другом параметре [globalVar = GP:L = 4]) и после этого обновлю свой вопрос. - person nbar; 29.07.2016
comment
Это sys_language_overlay = hideNonTranslated создает проблему - person nbar; 29.07.2016
comment
Спасибо, вы ведете меня в правильном направлении. Теперь это работает (но не уверен, почему именно так). Если вы хотите отредактировать свой ответ (см. Мой ответ), я приму ваш. - person nbar; 29.07.2016
comment
sys_language_overlay = hideNonTranslated следует использовать только в том случае, если вы настроили sys_language_mode на значение, отличное от значения по умолчанию. Чтобы увидеть это, нужно увидеть все TS (или, по крайней мере, часть конфигурации), которые вы используете. - person Dimitri L.; 30.07.2016

Проблема была в sys_language_overlay = hideNonTranslated.
Добавление: ajaxCall.config.sys_language_overlay = 0 решил проблему.

ajaxCall = PAGE
ajaxCall {
    typeNum = 999
    config.disableAllHeaderCode = 1
    config.disablePrefixComment = true
    # config.additionalHeaders = Content-type: text/html; charset=utf-8
    config.metaCharset = UTF-8
    config.sys_language_overlay = 0

    10 = COA
    10 <  styles.content.get
    10.stdWrap.prepend > # supress feEditAdvanced-firstWrapper - Bug in typo3 4.3.1
}

Я не уверен, почему именно это работает сейчас.

person nbar    schedule 29.07.2016

styles.content.get — это просто объект CONTENT, который получает содержимое col0 (отображаемое как true или с помощью css_styled_content), вам лучше просто получить свой контент с помощью собственного объекта CONTENT, чтобы вы могли лучше контролировать его.

person rob-ot    schedule 29.07.2016
comment
Это то, что я пытаюсь прямо сейчас без успеха. Я обновлю свой вопрос - person nbar; 29.07.2016