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

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 12.11.2007, 14:51   #1
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Генерируется функцией typolink
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 12.11.2007, 15:09   #2
kyzma
Продвинутый
 
Аватар для kyzma
 
Регистрация: 11.09.2007
Сообщений: 32
Отправить сообщение для kyzma с помощью ICQ
По умолчанию

Спасибо. Счас ещё этот вариант проверю. Нашел решение, как вообще не использовать cHash

надобыло немножко похакать tt_news

т.е. теперь ссылка вида
http://t3.test/index.php?
id=новостная страница
&tx_ttnews[tt_news]=новость

корректно работает без добавления хвоста из Pid и cHash
__________________
http://crimeawithme.com
kyzma вне форума   Ответить с цитированием
Старый 14.11.2007, 19:43   #3
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Цитата:
Сообщение от kyzma Посмотреть сообщение
корректно работает без добавления хвоста из Pid и cHash
Зато теперь у тебя вероятнее всего не кэшируются страницы (программный no_cache) где вставлено расширение tt_news.

Что не есть хорошо для нагруженных сайтов.

cHash - параметр позволяющий кэшировать новости.
dmartynenko вне форума   Ответить с цитированием
Старый 14.11.2007, 22:35   #4
kyzma
Продвинутый
 
Аватар для kyzma
 
Регистрация: 11.09.2007
Сообщений: 32
Отправить сообщение для kyzma с помощью ICQ
По умолчанию

а куда вообще эти новости кешируются? как расчитать cHash? Почему его нет в таблицах?
__________________
http://crimeawithme.com
kyzma вне форума   Ответить с цитированием
Старый 15.11.2007, 13:43   #5
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Цитата:
Сообщение от kyzma Посмотреть сообщение
а куда вообще эти новости кешируются? как расчитать cHash? Почему его нет в таблицах?
Кэшируются во внутренний кэш typo3. Но не новости, а страницы (сгенеренный html код), где размещен контент-элемент новостей.

cHash расчитывается на основе параметров из URL, и позволяет typo3 кэшировать одну страницу с разным контентом. Здесь описано подробно: http://typo3.org/development/article...ries-of-chash/

В двух словах как это работает:
1. Обычно typo3 кэширует страницу по id - http://t3.test/index.php?id=ххх
2. Если на странице размещен например контент-элемент новости (а это кэшируемый тип плагина USER), то кэшируется он вместе со страницей один раз, т.е. будет показываться какая-то одна новость (та, которая попалась при первом открытии страницы).
3. Что бы на одной странице можно было показать разные новости, и при этом она кэшировалась (с разными новостями), то нужно добавить в URL cHash - тогда кэшируется страница со своим контентом именно по cHash (т.е. в кэше оказывается много вариантов одной и той же страницы). Это происходит автоматически внутри typo3 уже упомянутой функцией typolink
dmartynenko вне форума   Ответить с цитированием
Старый 22.11.2007, 16:50   #6
razawa
Senior Member
 
Регистрация: 02.03.2007
Адрес: Украина, Дружковка
Сообщений: 128
Отправить сообщение для razawa с помощью ICQ
По умолчанию

Второй день бьюсь:

Вставил PHP_CONTENT на страницу.
Нужно по GET-параметрам выбирать определенные данные, ссылка в таком виде: ?id=258&mon=05&day=15
Но, если я на страницу захожу без параметров mon и day - мне нужно найти последнюю имеющуюся комбинацию этих параметров, что я и делаю.
Но как привязать найденные mon и day к кешированию...? В основном люди будут заходить на страницу именно только по id=258, чтобы прочитать последнее поступление. И желательно чтобы оно сразу и прокешировалось вместе с cHash
Код:

PHP код:
 ....  выше определюятся mon и day (к кешированию не относится) ...

// Вставляю найденные  mon и day в _GET в надежде, что они будут восприняты как пришедшие извне:
  
t3lib_div::_GETset(Array('day'=>$maxday'mon'=>$maxmon'vipusk'=>$maxvipusk)); 
// следующий код взял из makeCacheHash()
       
$GET t3lib_div::_GET();
      
$this->cHash_array t3lib_div::cHashParams(t3lib_div::implodeArrayForUrl('',$GET));
      
$cHash_calc t3lib_div::shortMD5(serialize($this->cHash_array));
      
$GLOBALS['TSFE']->cHash $cHash_calc;
// $cHash_calc расчитывается, все верно, но как его привязать к странице без  GET...

// Уже даже решил загнать cHash в _GET:
      
t3lib_div::_GETset(Array('cHash'=>$cHash_calc));

// А начинал вот с этого
      
$this->piVars t3lib_div::_GET();
      if (
$this->pi_checkCHash && count($this->piVars))    {
//            $GLOBALS['TSFE']->makeCacheHash(); 
            
$GLOBALS['TSFE']->reqCHash();
                }; 
При вызове в ссылке "?id=258&mon=01&day=15&cHash=80b8d87d0f" кешируется нормально, как и должно быть. А если просто зайти без параметров - не то.
razawa вне форума   Ответить с цитированием
Старый 22.11.2007, 17:17   #7
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Цитата:
Сообщение от razawa Посмотреть сообщение
Но, если я на страницу захожу без параметров mon и day - мне нужно найти последнюю имеющуюся комбинацию этих параметров, что я и делаю.
Но как привязать найденные mon и day к кешированию...? В основном люди будут заходить на страницу именно только по id=258, чтобы прочитать последнее поступление.
Странный подход, мне кажется Вы слишком усложняете вашу задачу...
Что мешает на странице без параметров вывести только последние поступления (отобрав последние записи по дате из БД) ?

При этом кэширование страницы настроить на определенный срок - 1 час, 3 часа и т.п. (по умолчанию кэш храниться 24 часа). И каждые Х часов у вас будет новая кэшированная страница с последними "новостями".

И вообще, посмотрите как работают другие подобные плагины и почитайте доки по их разработке. Мне кажется вы не используете массу возможностей typo3, а копаете глубоко, но не туда.
dmartynenko вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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


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


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

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