Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 14. Januar 2014 13:13
- antiheld2000
- kennt CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 128
[Gelöst] Cache automatisch leeren
Moin, Moin,
ich habe hier gerade ein Projekt bei dem die Änderungen auf einer Seite im Frontend einfach nicht sichtbar werden. Es muss jedes mal der CMS Cache gelöscht werden. Einerseits verstehe ich nicht warum, andererseits sage ich mir: egal, UDT erstellt und diesen in der Ereignisverwaltung bei ContentEditPost ausführen lassen. Klappt aber auch nicht… Was kann ich denn noch so tun? Oder mach ich was falsch?
UDT:
[== PHP ==]
if (is_file(cms_join_path(TMP_CACHE_LOCATION, 'contentcache.php'))) {
$ok = unlink(cms_join_path(TMP_CACHE_LOCATION, 'contentcache.php'));
if (!$ok) die('contentcache.php wurde nicht gelöscht');
}
Mit freundlichen Grüßen
anti
Beitrag geändert von antiheld2000 (14. Januar 2014 14:59)
Offline
#2 14. Januar 2014 14:18
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [Gelöst] Cache automatisch leeren
Mann muss halt mehr machen, als nur die contentcache.php zu löschen.
Versuchs einfach mal mit dieser einen Zeile:
cmsms()->GetContentOperations()->ClearCache();
Oder diese Zeile:
cmsms()->clear_cached_files();
Diese Funktionen zum Löschen des Cache sind allerdings als "internal" gekennzeichnet und sollten nicht von Dritten verwendet werden. D.h. es kann passieren, dass Dein UDT irgendwann nicht mehr funktioniert, weil sich z.B. der Name der Funktion ohne große Ankündigungen ändern kann.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#3 14. Januar 2014 14:59
- antiheld2000
- kennt CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 128
Re: [Gelöst] Cache automatisch leeren
Vielen Dank! Das klappt auf jeden Fall erst einmal. Ich werde dann wohl oder übel nach jedem Update drauf achten, ob's noch funktioniert. Danke dir.
Offline
#4 14. Januar 2014 16:26
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [Gelöst] Cache automatisch leeren
Zu Sicherheit kann man ja vorher prüfen, ob die Funktion existiert bzw. aufgerufen werden kann:
$content_ops =& cmsms()->GetContentOperations();
if(is_callable(array($content_ops, 'ClearCache')))
$content_ops->ClearCache();
else
{
$config = cmsms()->GetConfig();
if($config['debug'])
trigger_error('UDT: [name des UDTs einfügen] - method "ContentOperations::ClearCache()" does not exist!, E_USER_WARNING);
}
bzw.:
$cmsms =& cmsms();
if(is_callable(array($cmsms, 'clear_cached_files')))
$cmsms->clear_cached_files();
else
{
$config = $cmsms->GetConfig();
if($config['debug'])
trigger_error('UDT: [name des UDTs einfügen] - method "CmsApp::clear_cached_files()" does not exist!, E_USER_WARNING);
}
Ich glaube zwar, dass das in den seltensten Fällen nötig sein wird, aber es schadet auch nicht.
So könnte man es übrigens zur Sicherheit mit allen Funktionen machen, die im Code als "internal" oder "private" gekennzeichnet sind. Dann schmiert das System im Fall der Fälle wenigstens nicht mit einem fatalen Fehler ab.
Und wenn in der config.php debug auf true gesetzt wird, kann man den Fehler auch leichter finden.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#5 14. Januar 2014 19:46
- antiheld2000
- kennt CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 128
Re: [Gelöst] Cache automatisch leeren
Zucker. Das sind super Tipps. Danke dir!
Offline
#6 16. Januar 2014 05:33
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [Gelöst] Cache automatisch leeren
ich habe hier gerade ein Projekt bei dem die Änderungen auf einer Seite im Frontend einfach nicht sichtbar werden. Es muss jedes mal der CMS Cache gelöscht werden.
Normal ist das nicht!
Allerdings bietet CMSMS aktuell eine ganze Reihe an Möglichkeiten zur Zwischenspeicherung, so dass es schlicht und ergreifend an deinen Einstellungen liegen kann.
Offline
Seiten: 1