Вход

Просмотр полной версии : Typoscript parameter condition cache


dimaip
28.09.2009, 16:35
Здравствуйте уважаемое typo3 сообщество!
Пытаюсь сделать простую вещь из tt_content, чтобы можно было смотреть полный текст статьи...
Так вот, страница с разными парпаметрами full походу кэшируется как одна страница!! Соответственно надо каждый раз чистить кэш, чтобы увидеть полный текст статьи. Насколько я знаю, если get параметер используется как TS condition, то страница с разным параметрами должны кэшироваться отдельно... Какой-то бред!
Помогите, если можете, очень прошу!

Дмитрий.

[globalVar = GP:full > 0]
tt_content.text.21 = TEXT
tt_content.text.21 {
field = tx_nordway_full
required = 1

parseFunc = < lib.parseFunc_RTE

editIcons = tt_content:bodytext, rte_enabled
editIcons.beforeLastTag = 1
editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext

prefixComment = 2 | Text:
}

tt_content.textpic.21 < tt_content.text.21
tt_content.text.22 = TEXT
tt_content.text.22.value = <-Назад
tt_content.text.22.typolink{
parameter.data = page:uid
}
tt_content.textpic.22 < tt_content.text.22
lib.content.get_full = CONTENT
lib.content.get_full {
table = tt_content
select.orderBy = sorting
#select.where = colPos=1
select.languageField = sys_language_uid
select.andWhere = uid={GPvar:full}
select.andWhere.insertData=1
}
styles.content.getLeft.select.andWhere>
styles.content.getLeft.select.andWhere = uid<>{GPvar:full}
styles.content.getLeft.select.andWhere.insertData= 1
page.10.marks.content.menu_left>
page.10.marks.content.menu_left < styles.content.getLeft
page.10.marks.content>
page.10.marks.content < lib.content.get_full
[end]

dmartynenko
28.09.2009, 17:31
Почитайте http://typo3.org/development/articles/the-mysteries-of-chash/ что бы понять почему так происходит.

В двух словах - TYPO3 не знает что за параметр такой full и поэтому не учитывает его при кэшировании страниц.

dimaip
28.09.2009, 18:01
Спасибо!
Вот цитата из того же документа:
Another non-GET variable factor in caching is conditions in the TypoScript template. When you are using conditions in the TypoScript templates the relation between available conditions and matching conditions will also be a part of the caching ID. This means that if you make a condition in TypoScript to output different code for a specific web browser that will create at least two pages in the cache table; one for the specific browser and one for all others.
Т.е. должно все нормально кэшироваться, но...

Может быть я что-то недопонял? Тогда как мне заставить мой код работать?

Дмитрий.

dmartynenko
28.09.2009, 18:26
Да это я не учел. Но ваша цитата не противоречит вашему результату.
Условие GP:full > 0 при разных full больших нуля будет одно и тоже.

По идее вам нужно генерировать ссылки с парметром full там где на них идет ссылка с помощью typolink, тогда добавится cHash и будет кэшироваться нужный контент.

dimaip
29.09.2009, 13:33
ваша цитата не противоречит вашему результату.
Условие GP:full > 0 при разных full больших нуля будет одно и тоже.
Вы гений! Не за что бы не додумался!

Исправил так:
text.21 = TEXT
text.21.value = Читать далее...
text.21.fieldRequired = tx_nordway_full
text.21.typolink{
additionalParams=&full={field:uid}
additionalParams.insertData = 1
parameter.data = page:uid
useCacheHash = 1
}
Но cHash не генерируется! Почему?
edit: Все заработало!! Я просто не там поправил.
Спасибо большое!

Дмитрий.