Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > TypoScript практикум

Ответ
 
Опции темы Опции просмотра
Старый 28.09.2009, 16:35   #1
dimaip
Продвинутый
 
Регистрация: 08.09.2008
Адрес: Moscow
Сообщений: 61
Отправить сообщение для dimaip с помощью ICQ Отправить сообщение для dimaip с помощью Skype™
По умолчанию 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]
dimaip вне форума   Ответить с цитированием
Старый 28.09.2009, 17:31   #2
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Почитайте http://typo3.org/development/article...ries-of-chash/ что бы понять почему так происходит.

В двух словах - TYPO3 не знает что за параметр такой full и поэтому не учитывает его при кэшировании страниц.
dmartynenko вне форума   Ответить с цитированием
Старый 28.09.2009, 18:01   #3
dimaip
Продвинутый
 
Регистрация: 08.09.2008
Адрес: Moscow
Сообщений: 61
Отправить сообщение для dimaip с помощью ICQ Отправить сообщение для dimaip с помощью Skype™
По умолчанию

Спасибо!
Вот цитата из того же документа:
Код:
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.
Т.е. должно все нормально кэшироваться, но...

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

Дмитрий.
dimaip вне форума   Ответить с цитированием
Старый 28.09.2009, 18:26   #4
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

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

По идее вам нужно генерировать ссылки с парметром full там где на них идет ссылка с помощью typolink, тогда добавится cHash и будет кэшироваться нужный контент.
dmartynenko вне форума   Ответить с цитированием
Старый 29.09.2009, 13:33   #5
dimaip
Продвинутый
 
Регистрация: 08.09.2008
Адрес: Moscow
Сообщений: 61
Отправить сообщение для dimaip с помощью ICQ Отправить сообщение для dimaip с помощью Skype™
По умолчанию

Цитата:
ваша цитата не противоречит вашему результату.
Условие 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: Все заработало!! Я просто не там поправил.
Спасибо большое!

Дмитрий.

Последний раз редактировалось dimaip; 29.09.2009 в 13:44 Причина: ошибъся...
dimaip вне форума   Ответить с цитированием
Ответ

Теги
cache, conditions, typoscript


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Включить TypoScript, выключить TypoScript. thebat TypoScript практикум 4 28.04.2007 15:05
Зачем нужен TypoScript MVH Общие вопросы 17 14.04.2005 22:36
Clear cache at particular time Gleb Общие вопросы 1 18.02.2005 14:43


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория