SmartyTags, tiny mce und der Absatz drumherum

Hilfe zu Modulen und Tags
mike-r

Re: SmartyTags, tiny mce und der Absatz drumherum

Post by mike-r »

Mal eine Idee dazu, keine Ahnung, ob und wie man das umsetzen kann.
Da es scheinbar keine Möglichkeit gibt Tinymce beizubringen, dass smarty"module" ausserhalb der Absätze stehen können (bzw sollen bei gallery & co) wäre doch eine Code-ersetzung ganz brauchbar.
Wenn ich nichts übersehe ist die Syntax generell so, dass alleinstehende Smartys niemals innerhalb stehen. Beispiel:

Code: Select all

#1 <p>Ich bin {smarty} Fliesstext</p>

#2 <p>{smarty}</p>
Beispiel 2 kann theoretisch und semantisch nie vorkommen.

Hier braucht's eigentlich "nur" einen XHTML-validier-Filter, jemand ne Idee?

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.
NaN

Re: SmartyTags, tiny mce und der Absatz drumherum

Post by NaN »

boerliner wrote:
2. Abschliessend, mittendrin, oder vorneweg wird ein smarty-tag eingebunden. Nicht innerhalb eines Absatzes, sondern in einer eigenen Zeile – und eben das wird das Problem sein – und tiny_mce packt dann grundsätzlich Absatztags drumherum.
Und wie wird diese Zeile erzeugt?
Via
oder via ?

Deshalb ist das Erste was ich immer mache, gleich in Einstellungen des TinyMCE zu sagen, dass neue Zeilen mit
erzeugt werden.
Sonst hab ich am Ende einen Haufen leere Absätze nur weil der Kunde nicht versteht, dass ENTER = neuer Absatz ist und neue Zeilen mit SHIFT + ENTER erzeugt werden (wie in Word eigentich auch).
Oder ich habe eben Module mit Absätzen in Absätzen etc.
Da verzichte ich lieber ganz auf Absätze im Tiny.
NaN

Re: SmartyTags, tiny mce und der Absatz drumherum

Post by NaN »

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.
mike-r

Re: SmartyTags, tiny mce und der Absatz drumherum

Post by mike-r »

Wenn "{smarty}" am Ende auch noch Absätze ausgibt, dann muss man eben selber darauf achten, dass {smarty} nie in einem Absatz steht.
Das wurde hier im Thread schon angesprochen; als Entwickler kann ich natürlich im Code rumpfuschen, wie ich will, geht aber der Kunde einmal auf bearbeiten fügt tinymce die Tags wieder ein. Hierbei ist unerheblich ob es sich um p oder br handelt. Ich habe bei beiden Lösungen nur Nachteile. (davon ab, dass sich TinyMce eh nicht davon beeindrucken lässt, was man einstellt, es kommen generell p)
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.
Klingt prima, wie geht das? (Absätze bei einem "einzeiligen Smarty" können übrigens nie gewollt sein, kann mir da gerade überhaupt keinen Anwendungsfall vorstellen.)
Es braucht einen Filter der mit Bedingungen arbeitet. If {*} dann {*} sonst nix. Zusätzlich müsste der mehrere Smartys erkennen a la {*}{*} oder mit Leerzeichen: {*} {*}
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.
Mhh, stimmt auffallend. Eine Option für sowas wäre nett. Es gibt da noch in den Einstellungen des Tiny ein:
Weitere Optionen:

Eine Vorgabe pro Zeile, Kommatas werden vor dem nach diesem Inhalt hinzugefügt. Für weitere Informationen schauen Sie ins Wiki auf der TinyMCE-Webseite.
Möglicherweise könnte man dort schon was reissen, finde aber spontan keine Doku dazu.
cyberman

Re: SmartyTags, tiny mce und der Absatz drumherum

Post by cyberman »

mike-r wrote: Hier braucht's eigentlich "nur" einen XHTML-validier-Filter, jemand ne Idee?
Das klingt doch sehr nach Tidy :)

http://www.coggeshall.org/code/tidy/
Post Reply

Return to “Module und Tags”