Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   Typoscript parameter condition cache (http://forum.typo3.ru/showthread.php?t=8014)

dimaip 28.09.2009 16:35

Typoscript parameter condition cache
 
Здравствуйте уважаемое 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/article...ries-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: Все заработало!! Я просто не там поправил.
Спасибо большое!

Дмитрий.


Часовой пояс GMT +4, время: 18:50.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot