|  | Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community | 
|  12.11.2007, 14:09 | #1 | 
| Продвинутый |  tt_news, экстракт cHash для линки 
			
			Пишу расширение которое берет контент новости из tt_news c ссылкой на эту новость. При формировании ссылки не удается достать cHash. Откуда берется этот параметр???????????????
		 
				__________________ http://crimeawithme.com | 
|   |   | 
|  12.11.2007, 14:51 | #2 | 
| Senior Member |   
			
			Генерируется функцией typolink
		 | 
|   |   | 
|  12.11.2007, 15:09 | #3 | 
| Продвинутый |   
			
			Спасибо. Счас ещё этот вариант проверю. Нашел решение, как вообще не использовать cHash надобыло немножко похакать tt_news т.е. теперь ссылка вида http://t3.test/index.php? id=новостная страница &tx_ttnews[tt_news]=новость корректно работает без добавления хвоста из Pid и cHash 
				__________________ http://crimeawithme.com | 
|   |   | 
|  14.11.2007, 19:43 | #4 | 
| Senior Member |   | 
|   |   | 
|  14.11.2007, 22:35 | #5 | 
| Продвинутый |   
			
			а куда вообще эти новости кешируются? как расчитать cHash? Почему его нет в таблицах?
		 
				__________________ http://crimeawithme.com | 
|   |   | 
|  15.11.2007, 13:43 | #6 | |
| Senior Member |   Цитата: 
 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 | |
|   |   | 
|  22.11.2007, 16:50 | #7 | 
| Senior Member |   
			
			Второй день бьюсь: Вставил PHP_CONTENT на страницу. Нужно по GET-параметрам выбирать определенные данные, ссылка в таком виде: ?id=258&mon=05&day=15 Но, если я на страницу захожу без параметров mon и day - мне нужно найти последнюю имеющуюся комбинацию этих параметров, что я и делаю. Но как привязать найденные mon и day к кешированию...? В основном люди будут заходить на страницу именно только по id=258, чтобы прочитать последнее поступление. И желательно чтобы оно сразу и прокешировалось вместе с cHash Код: PHP код: 
			 | 
|   |   | 
|  22.11.2007, 17:17 | #8 | |
| Senior Member |   Цитата: 
 Что мешает на странице без параметров вывести только последние поступления (отобрав последние записи по дате из БД) ? При этом кэширование страницы настроить на определенный срок - 1 час, 3 часа и т.п. (по умолчанию кэш храниться 24 часа). И каждые Х часов у вас будет новая кэшированная страница с последними "новостями". И вообще, посмотрите как работают другие подобные плагины и почитайте доки по их разработке. Мне кажется вы не используете массу возможностей typo3, а копаете глубоко, но не туда. | |
|   |   | 
|  22.11.2007, 17:38 | #9 | 
| Senior Member |   
			
			Та "усложняю" - не то слово :-) Последнее то я получу. Но оно ведь позже потеряется, у него нет cHash Я предполагал что сделать. Сверху страницы форма с выбором даты (день/месяц/год/номер выпуска). Ниже - текст последнего поступления. При выборе даты - передаются _GET Можно кешировать и каждые 4 часа. Тогда встречный вопрос. А как мне из формы передавать значения cHash, чтобы правильно организовать ссылку? Или это не обязательно? Просто указать cHash=1? Или Crawler мне поможет? (вспомнил про него). Вот. Наверное нужно его натравить. та залез на свою голову :-) Впервые решился заняться программированием под Typo3 и залез :-) | 
|   |   | 
|  22.11.2007, 22:15 | #10 | |
| Senior Member |   Цитата: 
 Обычно плагины наследуются от класса tslib_pibase В нем много функций вида pi_link***, которые как раз и предназначены для формирования "правильных" ссылок. При указании параметра $cache=1 будет добавляться нужный cHash (конечно только в том случае, когда плагин допускает кэширование - но это отдельный разговор - читайте доки так сказать). Также обычно в формах (типа поиска) делается скрытое поле no_cache=1. Тогда typo3 не будет кэшировать выдаваемую страницу и контент отобразиться нужный. Как в форме выбирать ссылки правильно сгенеренные pi_link* - это скорее вопрос правильно организации программы, а не такого хака typo3. В вашем случае можно делать выбор даты не в select-ах формы (это ж не удобно!), а в виде календарика. | |
|   |   |