Siehe Edit weiter unten
Meine Datei (prefilter.replaceanchor.php) sieht dabei so aus:
[noparse]function smarty_prefilter_replaceanchor($tpl_source, &$smarty)
{
return preg_replace('/(.+)/', '{anchor anchor="$1" text="$2"}', $tpl_source);
}
Wenn ich diese Datei jetzt im Ordner /lib/smarty/plugins ablege und in der/lib/content.functions.php per
$this->autoload_filters = array('pre' => array('replaceanchor'));[/noparse]
einbinde, wird das Plugin zwar geladen (ein echo "blubb"; wird angezeigt), allerdings wird mein Link nicht durch den entsprechenden Anker ersetzt.
Kann mir da jemand helfen? (Der reguläre Ausdruck sollte funktionieren, habe es im RegexBuddy getestet).
Edit: Mir kommt grad so der Gedanke, dass dieser prefilter garnicht auf den Seiteninhalt angewendet wird sondern nur auf das Template o.O
Edit2: In der Tat, habe es gerade ausprobiert - wenn ich einen Anker im Template habe, wird der korrekt umgewandelt. Allerdings steht dann auch nur der {anchor}-Tag in der Ausgabe und nicht der durch Smarty ersetzte

Weiß jemand, wie ich mein Vorhaben, anders lösen kann? Also dass, bevor Smarty den Content zu fassen bekommt, alle Anker-Links durch den {anchor}-Tag ersetzt werden, sodass Smarty diesen dann wieder in einen korrekten Link umsetzen kann?
Ich weiß nicht, wie ich es z.B. mit einem User-Tag umsetzen sollte.