![]() |
tt_news, экстракт cHash для линки
Пишу расширение которое берет контент новости из tt_news c ссылкой на эту новость. При формировании ссылки не удается достать cHash. Откуда берется этот параметр???????????????
|
Генерируется функцией typolink
|
Спасибо. Счас ещё этот вариант проверю. Нашел решение, как вообще не использовать cHash
надобыло немножко похакать tt_news т.е. теперь ссылка вида http://t3.test/index.php? id=новостная страница &tx_ttnews[tt_news]=новость корректно работает без добавления хвоста из Pid и cHash |
Цитата:
Что не есть хорошо для нагруженных сайтов. cHash - параметр позволяющий кэшировать новости. |
а куда вообще эти новости кешируются? как расчитать cHash? Почему его нет в таблицах?
|
Цитата:
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 |
Второй день бьюсь:
Вставил PHP_CONTENT на страницу. Нужно по GET-параметрам выбирать определенные данные, ссылка в таком виде: ?id=258&mon=05&day=15 Но, если я на страницу захожу без параметров mon и day - мне нужно найти последнюю имеющуюся комбинацию этих параметров, что я и делаю. Но как привязать найденные mon и day к кешированию...? В основном люди будут заходить на страницу именно только по id=258, чтобы прочитать последнее поступление. И желательно чтобы оно сразу и прокешировалось вместе с cHash Код: PHP код:
|
Цитата:
Что мешает на странице без параметров вывести только последние поступления (отобрав последние записи по дате из БД) ? При этом кэширование страницы настроить на определенный срок - 1 час, 3 часа и т.п. (по умолчанию кэш храниться 24 часа). И каждые Х часов у вас будет новая кэшированная страница с последними "новостями". И вообще, посмотрите как работают другие подобные плагины и почитайте доки по их разработке. Мне кажется вы не используете массу возможностей typo3, а копаете глубоко, но не туда. |
Цитата:
Последнее то я получу. Но оно ведь позже потеряется, у него нет cHash Я предполагал что сделать. Сверху страницы форма с выбором даты (день/месяц/год/номер выпуска). Ниже - текст последнего поступления. При выборе даты - передаются _GET Можно кешировать и каждые 4 часа. Тогда встречный вопрос. А как мне из формы передавать значения cHash, чтобы правильно организовать ссылку? Или это не обязательно? Просто указать cHash=1? Или Crawler мне поможет? (вспомнил про него). Вот. Наверное нужно его натравить. Цитата:
|
Цитата:
Обычно плагины наследуются от класса tslib_pibase В нем много функций вида pi_link***, которые как раз и предназначены для формирования "правильных" ссылок. При указании параметра $cache=1 будет добавляться нужный cHash (конечно только в том случае, когда плагин допускает кэширование - но это отдельный разговор - читайте доки так сказать). Также обычно в формах (типа поиска) делается скрытое поле no_cache=1. Тогда typo3 не будет кэшировать выдаваемую страницу и контент отобразиться нужный. Как в форме выбирать ссылки правильно сгенеренные pi_link* - это скорее вопрос правильно организации программы, а не такого хака typo3. В вашем случае можно делать выбор даты не в select-ах формы (это ж не удобно!), а в виде календарика. |
Я бы не назвал это Плагином :-) Просто небольшой скрипт, который к тому же не работает с базой данных, а работает с файлами.
Скрипт мой наследует tslib_pibase, но pi_link*** - на сколько я понял, организовывают ссылку уже внутри скрипта, но у меня сразу выдается содержимое. pi_link - действительно можно будет использовать в календарике (это пока только в планах заменить форму на календарик). Пока решил обойтись Crawler-ом и кешированием через 3-4 часа. Но тут есть несколько моментов: новые данные могут поступить и через 3 часа (чаще - уж врядли), но и через 2 недели. И кеширование страницы каждые 3 часа может быть впустую (а это минимум 250 кБт). И второе - научить неподготовленных пользователей работе с Crawler, это будет самое сложное :-) А вот если бы сразу системе определить и передать cHash, чтобы она с ним проиндексировалась - это было бы решение проблемы. Я пока еще буду биться :-) Вчера, ради интереса, вспомнил и попробовал с 10-к других CMS - всетаки как Typo3 отличается от них. Я теперь на 200% уверен в своем выборе :-) |
Цитата:
Также можно настроить кэширование на много дней, а при поступлении новых данных очищать кэши для нужных страниц. Цитата:
|
Часовой пояс GMT +4, время: 18:10. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot