![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
![]() |
#1 |
Senior Member
Регистрация: 18.01.2013
Адрес: Russia , Moscow
Сообщений: 796
|
![]()
В общем суть проблемы...
Значение я сгенерировал из трех параметров: ID.страницы | Тип страницы | и cHash Но проблема с realurl вот в следующем: PHP код:
При первом заходе мы имеем cHash... А при повторном заходе - cHash - уже прячится.... Соответственно имеем уже другое значение. |
![]() |
![]() |
![]() |
#2 |
Senior Member
|
![]()
Что-то я не пойму о чем вы толкуете - проверять cHash вручную... Зачем?
Может опишите задачу которую хотите решить более обще? |
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: 18.01.2013
Адрес: Russia , Moscow
Сообщений: 796
|
![]()
В общем тогда суть задачи опишу...
Проблема №1. И кстати - посмотрел (попробовал) сделать битые адреса на сайте который работает на typo3. Беру от "туды не сюды": http://site-name/weffwefwe/fwefwe/fwefwefwe/fwefwefwe-1 http://site-name/weffwefwe/fwefwe/fwefwefwe/fwefwefwe-2 http://site-name/weffwefwe/fwefwe/fwefwefwe/fwefwefwe-3 http://site-name/weffwefwe/fwefwe/fwefwefwe/fwefwefwe-4 http://site-name/weffwefwe/fwefwe/fwefwefwe/fwefwefwe-.... http://site-name/weffwefwe/fwefwe/fw...fwefwe-1000032 И так далее - и что интересно ... вся эта лабуда будет находить свое отражение в двух таблицах (хотя адреса битые - и по ним идет 404-ошибка!: sys_log (если конечно не отключено ведение логов в localconf - хотя у меня не получалось на 100%-их ведение отключить - отключаешь - все равно что-то пишется... tx_realurl_chashcache (если на сайте установлено расширение realurl) Причем не важно - правильный или бытый адресе... Все равно в tx_realurl_chashcache - будут писаться строки: 0185ffa2f1afa6f2ef1f22d1f4826305 468f8782df5c94cb79eb2dd5642490dc А соответственно - значит что если сделать много битых адресов - то размеры этих таблиц будут постоянно расти - и "убивать" сайт. Суть задачи в том, что нужно как-то сохранять кэш для smarty.... Но сейчас то, как есть - получается если запросить вариант битого адреса http://site-name/weffwefwe/fwefwe/fw...fwefwe-1000032 то кэш будет сохраняться и по нему... а это го не нужно.... Т.е. примерно так: PHP код:
Нашел как вариант - составлять список разрешенных к сохранению в кэш страниц... А кэш будем ($cache_id) - сохранять по: "имени сайта . запрошенного адреса . № элемента на странице..." И при запросе страницы - второй раз - если она попала в список разрешенных будем разрешать сохранение элементов на ней в кэш... А если была 404-ошибка . то страница не попадает в список разрешенных страниц.... И тогда, что бы все верно работало - нужно что бы везде стояли 404-ошибки... Т.к. по ним будет определяться - разрешено заносить страницу в кэш или нет (вернее объекты, которые на ней есть)... Думаю - что вполне подойдет для проектов до 1 000 страниц. Здесь вопрос в том, что 404- ошибку приходиться устанавливать, как для страницы (причем эти процессы автоматизированны) - а вот с плагинами - 404-ошибку приходиться устанавливать в ручную - в зависимости от логики, которая там применяться... Последний раз редактировалось Ивано++; 11.07.2013 в 17:28 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: 18.01.2013
Адрес: Russia , Moscow
Сообщений: 796
|
![]()
В общем 2-проблема в том, что у меня:
cHash - скрывается realurl... Первый раз я получаю страницу с этим cHash... А потом без - т.к. он прячется и не могу понять этот механизм. Ведь URL-адрес один и тот же... А вот внутренние переменные уже другие. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: 18.01.2013
Адрес: Russia , Moscow
Сообщений: 796
|
![]()
Вот еще интересная штука из API
tslib_fe :: pageNotFoundHandler("/home/", "HTTP/1.1 404 Not Found", "Segment "error-404" was not a keyword for a postVarSet as expected on page with id=2."); |
![]() |
![]() |
![]() |
#6 |
Senior Member
|
![]()
У вас есть какая-то принципиальная нестыковка, на мой взгляд.
cHash нужен ядру что бы *закэшировать* контент страницы и он появляется только в момент формирования typolink. То есть ваш контент будет кэширован ядром в составе страницы с привязкой к этому самому cHash. Зачем спрашивается внутри вашей логики что-то еще в таком случае кэшировать (и с привязкой к cHash в частности) ? Мы используем кэширование внутри плагина только в случае USER_INT. И в данном случае cHash вообще не интересен. Используем для cache_id md5() от всего, что может повлиять на контент. Это pid, type, FE группы, ряд переменных из GET, а иногда и $this->conf целиком добавляется. |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Регистрация: 18.01.2013
Адрес: Russia , Moscow
Сообщений: 796
|
![]() Цитата:
Проблему нашел: Есть у меня на странице LOAD_REGISTER Суть его в том, что он выбирает ключевые слова для новости... PHP код:
PHP код:
PHP код:
С удовольствием бы решил проблему следующим образом (т.к. мне не нравиться LOAD_REGISTER в принципе)... PHP код:
|
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Регистрация: 18.01.2013
Адрес: Russia , Moscow
Сообщений: 796
|
![]()
Вот полный код:
PHP код:
Извиняюсь за не точность - в данном примере ничего не пропадает... Пропадает в навигационной цепочке - при повторном посещении некэшируемой страницы... Где идет вставка значения через {register:new_title} Видимо {register} - имеет область видимости переменных... PHP код:
|
![]() |
![]() |