mike-r wrote:
Code: Select all
#1 <p>Ich bin {smarty} Fliesstext</p>
#2 <p>{smarty}</p>
Beispiel 2 kann theoretisch und semantisch nie vorkommen.
Wieso nicht? Der Tag kann doch einfach nur reinen Text, einen Link oder ein Bild ausgeben?
Woher soll der TinyMCE wissen, was "{smarty}" am Ende ausgibt?
Für ihn ist das nur Text in einem Absatz. Der weiß nicht, dass es sich hier um ein Plugin oder Modul handelt.
Wenn "{smarty}" am Ende auch noch Absätze ausgibt, dann muss man eben selber darauf achten, dass {smarty} nie in einem Absatz steht.
Der Javascript-Editor kennt doch das Ergebnis der Smarty-Engine nicht.
mike-r wrote:
Hier braucht's eigentlich "nur" einen XHTML-validier-Filter, jemand ne Idee?
Das könnte man über die Ereignisverwaltung lösen.
Entweder mit einem UDT, der ausgeführt wird, wenn Inhalte geändert wurden, den Inhalt abfängt und Absätze um Smarty-Tags entfernt.
Allerdings könnten die Absätze ja manchmal auch gewollt sein.
Daher wäre es vermutlich besser mit einem Smarty-Postfilter zu arbeiten.
D.h. bevor das ganze an den Browser gesendet wird, wird ein Plugin ausgeführt, das den Quelltext bereinigt.
mike-r wrote:
Nochwas; in Wordpress gibt es eine Funktion, den Quelltext immer um falsch verschachteltes XHTML zu bereinigen. Ich weiss leider nicht, ob das ein WP-filter ist, oder ob diese Funktion von TinyMce kommt. Ich finde zwar kein Plugin etc dafür, aber das wäre schon ein Ansatz.
Die Funktion hat der Tiny schon, aber wie gesagt, bei "{smarty}" ist der Tiny machtlos, weil er es für reinen Text hält.
{smarty} ist nunmal vollkommen valide.
Die Verschachtelung entsteht doch erst im Frontend wenn das Template gerendert wird.
Und davon hat der TinyMCE keine Ahnung.