Просмотр полной версии : Статический контент на разных языках, на всех страницах
У сайта в заголовке пишется какой-то текст. Нужно сделать так чтобы он отображался на всех страницах и на разных языках по разному. Но редактировать чтоб можно было через форму в Page Properties.
Я пробовал создавать в templavoila объект plaintext или bodytext, но он виден только на первой странице и не воспринимает html.
Пробовал создавать TypoScript Object Path, но я так понимаю, его кроме как в setup редактировать не получится?
Почему же, можно засунуть в константы, дабы человек не ковырялся в Setup.
lib.my_text = {$my_text_constant}
Можно создать на главной странице этот текст как content element, а потом заставить отображаться на всех других страницах его же:
lib.myobject_stuff = RECORDS
lib.myobject_stuff.source = 1 (*** element id ***)
lib.myobject_stuff.tables = tt_content
Если делал plaintext , то по идее он должен быть на каждойс странице, где есть данный шаблон. Можно было попробовать сделать какое-то наследование для нужного поля заголовка в шаблоне - мол если есть нужное поле со статическим тексттом не заполнено, то берется значение "уровнем выше"....
Но это как идея. Как ее реализовать я без понятиЯ)
Как ее реализовать я без понятиЯ)
tv_content_slide
Разве это не только для полей типа "Content Elements"?
В принципе да. И самый простой вариант - с RECORDS. Но если очень хочется (нужно) сделать через заголовок страницы - можно назначить поле как контент элементс - заодно проблем с HTML не будет - а в раскладке страницы его визуально спрятать при помощи одного из расширений меняющих TV layout.
Кстати какой экст для изменения TV layout посоветуешь? Либо вообще где можно про это почитать? Лазил в TV поле Local Processing, но что-то никакого эффекта не увидел.
В репозитории нашел me_templavoilalayout_0.1.5.t3x - вроде наиболее нормальный + с документацией, также обратил внимание на творение одного из учасников форума rmd_tv_decorator_0.0.1.t3x, но к сожалению без документации ничего не понял:)
me_templavoilalayout - нормально работает, давно пользуюсь. В принципе еще есть это http://bugs.typo3.org/view.php?id=4387, но это патч :(
Pavel Antonov
18.05.2007, 12:16
rmd_tv_decorator - забудьте, работать после изменения TV API не будет.
me_templavoilalayout - тоже ставить не надо, он уже интегрирован в TV.
так, так, так... По порядку, что мне нужно сделать?
Я в TemplaVoila создал Поле Element, типа Content Element и замапил его куда мне нужно.
Дальше я иду в setup?
и пишу
lib.myobject_stuff = RECORDS
lib.myobject_stuff.source = 1 (*** element id ***)
lib.myobject_stuff.tables = tt_content
А где я возьму Id этого элемента
И что такое lib.myobject_stuff? Это ещё один элемент?
Можно пошагово, пожалуйста? =)
И кстати как сделать перенос строки в коде? \n не работает.
Обманули вы меня, не Content element надо создавать а pagecontent.
Я создал SysFolder и поместил туда PageContent
В templavoila замапил место под TypoScript ObjectPath, назвал lib.address
В Setup шаблона написал:
lib.address = COA
lib.address{
10 = RECORDS
10.tables = tt_content
10.source = 53
}
Где 10.source = 53 это id pagecontent'a
Но проблема теперь в том, что для pagecontent нельзя создавать перевод. Только для страниц. Как мне сделать чтоб на разных языках по разному было?
Может в setup ветвление по языкам делать? Типа:
если русский, то 10.source = 54,
если английски, то 10.source = 55 и т.д.
Если это можно сделать, то подскажите, пожалуйста как?
Вообще для pagecontent можно создавать же переводы, но ID у них другие и все правильно, что нужно будет указывать 10.source = 54, 10.source = 55.
Да но как же делать это ветвление для каждого языка?
http://typo3.org/documentation/document-library/core-documentation/doc_l10nguide/1.0.0/view/, а конкретно (с учетом TV) http://typo3.org/documentation/document-library/core-documentation/doc_l10nguide/1.0.0/view/1/3/#id2722835
Непонял? Мультиязыность сделать? Посмотри по форуму по данному запросу, приводился даже код + ссылка на документ, который нужно прочитать - Frontend Localization Guide
ПС. жесть! PhilD, если полазить по форуму, то можно найти как минимум 3 поста твоих и моих в одно время созданных:)
Если бы мне нужно было локализовать сайт, то я бы так и спросил. Сайт у меня весь локализован.
Тот код на который дал ссылку PhilD у меня применяется для определения переменной L и назначения языков в зависимости от значения этой переменной.
Я же спрашиваю, как определённому замапенному объекту присвоит значение pagecontent по id, причём id для разных языков должен быть разный.
Tod, вы же сами написали - "Вообще для pagecontent можно создавать же переводы, но ID у них другие и все правильно, что нужно будет указывать 10.source = 54, 10.source = 55."
Так как это ветвление сделать?
Если я просто пишу:
lib.address = COA
lib.address{
10 = RECORDS
10.tables = tt_content
10.source =53
}
то на всех языках будет одинаковый текст из pagecontent'a с id = 53.
Пробовал написать вот так:
lib.address = COA
lib.address{
10 = RECORDS
10.tables = tt_content
}
config.sys_language_mode = content_fallback
config.sys_language_overlay = 1
config {
linkVars = L
uniqueLinkVars = 1
}
[globalVar = GP:L=0]
config {
sys_language_uid = 0
language = lv
locale_all = lv_LV
}
lib.address.10.source = 53
[globalVar = GP:L=1]
config {
sys_language_uid = 1
language = ru
locale_all = ru_RU
}
lib.address.10.source = 54
[globalVar = GP:L=2]
config {
sys_language_uid = 2
language = en
locale_all = en_EN
}
lib.address.10.source = 56
[global]
Но так не работает. Вообще ничего не отображает
Нет. Всё таки работает но только в русском(L=1) и английском(L=2) варианте. В латышском (L=0) не работает.
Нет. В латышском работает, но только если явно прописывать в строке браузера адрес: index.php?L=0
Конечно с этим sr_languagemenu путаница происходит. Получается два латышских языка: один дефолтный, а другой для менюшки переключения языков. И этот второй нигде не используется но везде существует возможность создать контент для него, который естественно не будет отображаться.
Updated: Фуууф. Добился того что нужно. Вот так:
# Address
lib.address = COA
lib.address{
10 = RECORDS
10.tables = tt_content
}
lib.address.10.source = 53
## Language Settings
config.sys_language_mode = content_fallback
config.sys_language_overlay = 1
config {
linkVars = L
uniqueLinkVars = 1
}
[globalVar = GP:L=0]
config {
sys_language_uid = 0
language = lv
locale_all = lv_LV
}
[global]
[globalVar = GP:L=1]
config {
sys_language_uid = 1
language = ru
locale_all = ru_RU
}
lib.address.10.source = 54
[global]
[globalVar = GP:L=2]
config {
sys_language_uid = 2
language = en
locale_all = en_EN
}
lib.address.10.source = 56
[global]
И последний (наверное) вопрос по этой теме:
Отображается весь контент вместе с заголовком. А как получать только текст, без заголовка?
можешь поискать в TSRef или гугле как для данной конструкции выцепить поле (field) bodytext
Никто не хочет помогать. ((
Методом тыка дошёл до результата:
lib.address = RECORDS
lib.address {
tables = tt_content
conf.tt_content = TEXT
conf.tt_content.data = field:bodytext
source = 53
}
Pavel Antonov
18.05.2007, 18:58
Никто не хочет помогать. ((
Стимулируем работу серого вещества на форуме :D.
...А то скоро в плесень превратитесь!
Не получается ничего....ужас просто:confused:
Никто не хочет помогать. ((
Методом тыка дошёл до результата:
lib.address = RECORDS
lib.address {
tables = tt_content
conf.tt_content = TEXT
conf.tt_content.data = field:bodytext
source = 53
}
Все очень просто, если сделать все правильно в соответствии с "Frontend Localization Guide", то должно выглядит вот так:lib.Copyright = RECORDS
lib.Copyright {
tables = tt_content
source = 2,3,4
}гдеsource = 2,3,4Перечисляются записи одного и того же контента, но на разных языках, у меня это работает.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot