| Autor |
Wiadomość |
|
Napisane: 14.01.2010 [12:32]
|
|
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
|
Witam,
zastanawiam się czy jest możliwe czyszczenie kesza - całej strony z poziomu kodu php, tzn czy są jakieś metody których można użyć do tego ...
Do tej pory robiłem tak ze jak wprowadzam zmiany na jakiejś podstronie to w BE czyszczę ręcznie kesz dla tej strony. Teraz mam potrzebę czyścic na zadanie tego kesza, np. user doda jakiś wpis i chce wyczyścić stronę główna i np. stronę blog.
Jest coś takiego ?
|
|
Napisane: 14.01.2010 [13:00]
|
|
dpacholczyk
zarejestrowany: 17.09.2008
Posty: 1073
|
Chodzi ci o wyczyszczenie cache`u dla pojedynczej PODstrony a nie globalnie dla całej witryny ?
Jeżeli tak to w BE gdy jesteś w module PAGE tuż pod ikonką której używasz (duża błyskawica) masz ikonkę małej błyskawicy na kartce. Ona służy do wyczyszczenia cache`u tylko dla tej strony.
|
|
Napisane: 14.01.2010 [13:12]
|
|
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
|
dokładnie o to mi chodzi tyle że chcę uzyskać ten sam efekt z poziomu kodu php. Ktoś dodaje wpis i w kodzie chce wywołać metodę do wyczyszczenia kesza dla całej strony.
|
|
Napisane: 14.01.2010 [13:21]
|
|
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1356
|
Do tego służy komenda w TSconfigu strony, na ktoej znajdują się rekordy:
TCEMAIN.clearCacheCmd = 123,124
(czyli podajesz uidy stron do wyczyszczenia, działa)
Mój Muminek, moja Ula odeszła [']
|
|
Napisane: 14.01.2010 [13:57]
|
|
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
|
dzięki za info, znalazłem dodatkowo jak to zrobić z poziomu php'a
$tce = t3lib_div::makeInstance('t3lib_TCEmain');
$tce->clear_cacheCmd(1); // 1 - id strony
Póki co działa ...
|
|
Napisane: 14.01.2010 [22:52]
|
|
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1356
|
radone napisał/a
dzięki za info, znalazłem dodatkowo jak to zrobić z poziomu php'a
$tce = t3lib_div::makeInstance('t3lib_TCEmain');
$tce->clear_cacheCmd(1); // 1 - id strony
A tak z ciekawości spytam, kiedy wywołujesz tą metodę ?
Mój Muminek, moja Ula odeszła [']
|
|
Napisane: 15.01.2010 [12:19]
|
|
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
|
w skrypcie odpalanym w cronie, w nocy wykonuje kilka operacji i zależy mi na tym aby odświeżyć strony. Do tej pory często dane były nieaktualne.
|
|
Napisane: 15.01.2010 [13:45]
|
|
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1356
|
To trochę na siłę rozwiązanie, przy takim podejściu strony wprowadzone rano będą widoczne dopiero następnego dnia (po wywołaniu cronu). Użycie clearCacheCmd wymusi wyczyszczenie odpowiednich obszarów cache każdorazowo po modyfikacji rekordów w danym fragmencie drzewa.
Mój Muminek, moja Ula odeszła [']
|
|
Napisane: 15.01.2010 [13:57]
|
|
dpacholczyk
zarejestrowany: 17.09.2008
Posty: 1073
|
od tego całego skryptu rozwiązanie biesiora jest dużo lepsze.
jak i to do Ciebie nie przemawia proponuje skrócenie czasu cache`u do powiedzmy godziny.
|
|
Napisane: 15.01.2010 [14:49]
|
|
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
|
biesior napisał/a
To trochę na siłę rozwiązanie, przy takim podejściu strony wprowadzone rano będą widoczne dopiero następnego dnia (po wywołaniu cronu). Użycie clearCacheCmd wymusi wyczyszczenie odpowiednich obszarów cache każdorazowo po modyfikacji rekordów w danym fragmencie drzewa.
masz racje, tyle że system wykonuje pewne operacje raz dziennie i później te dane są wyświetlane przez cały dzień do momentu ponownego uruchomienia crona.
a to co mi poradziłeś:
"TCEMAIN.clearCacheCmd = 123,124"
to skąd system będzie wiedział ze coś się zmieniło z poziomu bazy danych, np. jeśli skrypt wykona jakiś update rekordu ... rozumiem jeżeli bym coś zmienił w BE to takie rozwiązanie zadziała. Może się mylę ?
[Ten temat był edytowany 1 razy. Ostatnio 15.01.2010 o 14:50.]
|