Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#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:

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

antiheld2000 schrieb:

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