Outputfilter funktionieren nur ungecached

Deutschsprachiger Support für CMS Made Simple
Post Reply
papa_whiskey

Outputfilter funktionieren nur ungecached

Post by papa_whiskey »

Hallo,

seit gut einer Woche beschäftige ich mich mit CMSms.
Allein die Benutzung von Smarty als Templateengine, fand ich ganz praktisch, da ich mich bereits vor einigen Monaten in dessen Materie eingearbeitet habe.

Nun ergibt sich mit der Verwendung von CMSms folgendes Problem.
Ich bin dabei, per Outputfilter die dynamischen Links allá index.php?page=contact-us in statisch lesbare Links wie z.B. contact-us.html umzuwandeln zwecks SEO.
Das Funktioniert auch, aber leider nur so lange, wie die Seite nicht gecached wurde.
Lösche ich den Cache, läuft es bei jeder Seite genau einmal.

Deaktiviere ich den Cache

Code: Select all

$smarty->caching = false;
funktioniert es permanent, jedoch die Seiten bleiben recht statisch und zwecks Performance möchte ich den Cache auch gern aktiviert lassen.

Meinen Outputfilter initialisiere ich per benutzerdefinierten Tag {short_url}

Code: Select all

$smarty->load_filter('output', 'short_url');
Der Smartytag {short_url} kommt an erster Stelle in mein Template.
Das Verpacken der Navigation, dessen Links halt umgewandet werden sollen zwischen {nocache}{/nocach} brachte keinen Erfolg obwohl dieser Teil aus den Cachedateien in {nocache:5e[..]#1} umbenannt wurde, bei der aktuellen Beta bringt dessen Verwendung nur die Fehlermeldung
syntax error: unrecognized tag 'nocache'
Initialisiere ich den Filter 'hardcodiert' in die index.php bringt das auch keine Besserung.

Mein Plugin sieht wie folgt aus:
erstmal ein plumpes Regexp's-Beispiel, die Dynamik kommt sofern das Teil dann mal läuft.

Code: Select all

<?php
     
     function smarty_outputfilter_short_url($source, &$smarty)
     {
     
     $in = array(
	'/index.php\?page=contact-us/');
	
     $out = array(
	'contact-us.html');
     
     $source = preg_replace($in, $out, $source);
     return $source;
?>
 }
Wer von euch steckt etwas mehr im CMSms-Code als ich und kann mir dabei helfen?


Grüße
papa_whiskey
vioos

Re: Outputfilter funktionieren nur ungecached

Post by vioos »

ich hab jetzt nur die ersten fünf zeilen gelesen.
Für dein Problem gibt es doch im CMSMS schon längst eine Lösung.
nachzulesen auf http://wiki.cmsmadesimple.org/tiki-inde ... Clean+Urls
  • config.php öffnen und $config["assume_mod_rewrite"] auf true setzen
  • Kopiere /doc/htaccess.txt nach / und benenne es in .htaccess um
ich hoffe, ich konnte dir helfen
papa_whiskey

Re: Outputfilter funktionieren nur ungecached

Post by papa_whiskey »

Hallo vioos,

leider konntest du mir nicht helfen.
Dieses Feature hatte ich mir angeguckt, jedoch finde ich es recht unpraktisch wenn es darum geht eigene URLs umzuwandeln, die nicht dem Schema index.php?page=value entsprechen zumal auch im Content eingebettete URLs, die nicht per {cms_selflink} gereriert werden auch nicht umgewandelt werden.
Klar könnte man die Coredatei hacken und seine eigenen Zusätze einbringen, bei jedem Update darf ich das leider immer wiederholen.

Deshalb der Gedanke mit eigenen Smarty-Filtern, man muss die Flexibilität von Smarty ja ausnutzen ;-).

...dennoch danke für deine Hilfe
Post Reply

Return to “German - Deutsch”