Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 05. Juli 2012 16:35
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
TinyMCE 2.9.9: geändertes Verhalten p/br
Servus!
FYI:
in der neuen Version werden standardmäßig beim Drücken der ENTER-Taste nicht wie bisher P eingefügt sondern BR.
Siehe: http://www.tinymce.com/forum/viewtopic.php?id=28724
Um das normale Verhalten zu bekommen, *muss* unter "Erweiterte Eigenschaften" das Häkchen bei "Absatz erzwingen:" gesetzt werden.
Leider ergibt (und ergab übrigens schon immer - ist anscheinend niemanden aufgefallen, auch mir nicht) das invalides HTML im Falle von
[== html ==]
<p>{irgendeintag}</p>
Sieht jemand da eine Lösung?
Ich bin kein Smarty-Experte, aber könnte man da nicht sowas wie ein prefilter.freeTag.php schreiben welches die P-Umklammerung vom {tag} entfernt?
Servus,
Alex
Beitrag geändert von faglork (05. Juli 2012 17:23)
Offline
#2 05. Juli 2012 19:16
- spike
- hat von CMS/ms gehört
- Registriert: 04. Dezember 2010
- Beiträge: 6
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Für <p> und <br /> wie gehabt - folgendes:
TinyMCE/Advanced/Extra Configuration Fenster:
forced_root_block:true
siehe mein thread beim .org Forum
für dein annere Problem null Ahnung.
gruss - spike
Beitrag geändert von spike (05. Juli 2012 19:18)
Offline
#3 06. Juli 2012 22:35
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Ich bin kein Smarty-Experte, aber könnte man da nicht sowas wie ein prefilter.freeTag.php schreiben welches die P-Umklammerung vom {tag} entfernt?
das Thema hatten wir hier (und drüben glaube auch) schon einige Male, finde nur gerade keinen Thread dazu.
Mein Kenntnis-Stand ist der, dass es keine vernünftige Lösung gibt dafür.
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#4 06. Juli 2012 10:36
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
als notlösung hatte ich mal sowas vorgeschlagen:
{content assign="content"}
{$content|strip|replace:"> <":"><"|replace:"<p><div":"<div"|replace:"</div></p>":"</div>"}
Funktioniert in den meistens Fällen gut.
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#5 06. Juli 2012 11:47
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Könnt ihr das bitte mal testen:
prefilter.freetags.php
[== php ==]
<?php function smarty_cms_prefilter_freetag($tpl_source, &$smarty)
{
return preg_replace('/<p>(\{[A-Za-z0-9\\._-]+\})<\/p>/', "$1", $tpl_source);
}
?>
Bisher funzt das, aber da das Teil ja auch im Backend arbeitet müsste man erstmal testen ob das dort keine negativen Auswirkungen hat. Ich habe bisher nix gefunden.
Calguy hat Einwände, in seiner unnachamlichen freundlichen Art:
http://forum.cmsmadesimple.org/viewtopi … 74#p281973
Servus,
Alex
Beitrag geändert von faglork (06. Juli 2012 16:07)
Offline
#6 06. Juli 2012 19:34
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Scheint zu funktionieren. Bisher habe ich noch keine Probleme festgestellt, werde im Frontend noch im Backend.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#7 07. Juli 2012 12:17
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Scheint zu funktionieren. Bisher habe ich noch keine Probleme festgestellt, werde im Frontend noch im Backend.
Danke für das Feedback. Mich würde ja sehr interessieren warum CG "tonnes" von Problemen sieht. Mag ja sein, dass es da irgendeinen Mechanismus (wohl eher im Backend) gibt der damit kollidiert. Irgedwas scheint da ja zu sein. Oder er irrt, was ja auch nicht unmöglich wäre
Servus,
Alex
Offline
#8 07. Juli 2012 14:12
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Ich vermute mal das Hauptproblem ist dieses Pattern:
[A-Za-z0-9\\._-]+
Nur Buchstaben, Zahlen, Unterstriche, Minus und ... keine Anführngszeichen, keine Kommas, keine Dollarzeichen (für Variablen), keine Klammern, keine Leerzeichen, kein =, keine Backticks ...
Kurz: Ein Modulaufruf kann durchaus komplexer sein als einfach nur
{module_name}
Z.B.
{module_name param="foo"|cat:'bar' param2=$foo->bar param3=$foo.bar ... }
Ich kann mir nicht vorstellen, dass das wirklich problemlos funktioniert.
Ich glaube nicht, dass dieses Pattern tatsächlich alle möglichen Modulaufrufe finden kann.
Ich hätte es evtl. so gemacht:
/<p>(\{[^}]+\})<\/p>/i
(Ich habe allerdings beides nicht getestet)
Mal ganz davon abgesehen, dass man im WYSIWYG Editor überhaupt nicht alle Zeichen verwenden kann. Aber CG denkt gerne mal etwas "globaler".
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
#9 07. Juli 2012 15:21
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Ich vermute mal das Hauptproblem ist dieses Pattern:
[A-Za-z0-9\\._-]+
Nur Buchstaben, Zahlen, Unterstriche, Minus und ... keine Anführngszeichen, keine Kommas, keine Dollarzeichen (für Variablen), keine Klammern, keine Leerzeichen, kein =, keine Backticks ...
Kurz: Ein Modulaufruf kann durchaus komplexer sein als einfach nur{module_name}
Z.B.
{module_name param="foo"|cat:'bar' param2=$foo->bar param3=$foo.bar ... }
Ich kann mir nicht vorstellen, dass das wirklich problemlos funktioniert.
Ich glaube nicht, dass dieses Pattern tatsächlich alle möglichen Modulaufrufe finden kann.
Na wenn das das einzige problem ist ...
Ich hätte es evtl. so gemacht:
/<p>(\{[^}]+\})<\/p>/i
(Ich habe allerdings beides nicht getestet)
Danke! Aber das matcht nicht mal einfache Aufrufe.
Kann man übrigens hier sehr schön testen:
http://regexpal.com/
Mal ganz davon abgesehen, dass man im WYSIWYG Editor überhaupt nicht alle Zeichen verwenden kann. Aber CG denkt gerne mal etwas "globaler".
Das alles sehe ich NICHT als Problem. Ein "wirkliches" Problem wäre es z.b. - wie mir in der Testphase passiert ist - dass Modulaufrufe im Backend ausgefiltert werden. Und damit Module unbrauchbar. Oder sowas in der Art.
Sieht jemand eine Möglichkeit, die Filterung explizit auf das Frontend zu beschränken?
Servus,
Alex
Offline
#10 07. Juli 2012 15:34
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Habs grad mit (\{[\S\s]+\}) gestestet - regexmäßig ist das ok, funzt mit dem von NaN oben angegebenen Beispiel-Modulaufruf. Das dürfte so ziemlich fast alles abdecken - siehe untenstehende Beschreibung der Parameter.
Dann in das Plugin eingebaut - alles läuft.
Zu was Self_html nicht alles gut ist:
\s /\s/ findet jede Art von Weißraum-Zeichen ("Whitespace"), also \f, \n, \t, \v und das Leerzeichen.
\S /\S+/ findet ein beliebiges einzelnes Zeichen, das kein "Whitespace" ist, also kein \f\n\t\v und kein Leerzeichen.
http://de.selfhtml.org/javascript/objekte/regexp.htm
Der aktuelle Code lautet jetzt:
[== php ==]
<?php function smarty_cms_prefilter_freetag($tpl_source, &$smarty)
{
return preg_replace('/<p>(\{[\S\s]+\})<\/p>/', "$1", $tpl_source);
}
?>
Man kann das Filter übrigens - falls es mal nötig sein sollte - einfach umgehen, indem man dem Modulaufruf ein Leerzeichen folgen lässt.
Eine Bitte an alle: falls Ihr ein Testsystem zur Verfügung habt, bitte testen. Auf ne Live-Installation würde ich das noch nicht loslassen.
Und: falls jemandem ein *grundsätzliches* Problem in diesem Zusammenhang auffällt, seid so nett und sagt es. Nicht wie dieser Idi von CG.
Servus,
Alex
Beitrag geändert von faglork (07. Juli 2012 15:54)
Offline
#11 07. Juli 2012 21:16
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Ein Problem könnte das noch haben:
Ich habe den Code mit http://gskinner.com/RegExr/ getestet. Wenn ich nun im Text folgendes Teste:
<p>{News meier=1 test="Hallo{}" asdtedad}</p>
* real time results: shows results as you type
* code hinting: roll over your expression to see info on specific elements
* detailed results: roll over a match to see details & view group info below
* built in regex guide: double click entries to insert them into your expression
<p>Test</p>
<p>{News}</p>
markiert er als gefunden den kompletten Text zwischen den 2 Funktionsaufrufen. Somit wird der eigentliche Funktionsaufruf nicht genügend abgesichert kontrolliert.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#12 08. Juli 2012 01:09
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: TinyMCE 2.9.9: geändertes Verhalten p/br
Das liegt daran:
S /\S+/ findet ein beliebiges einzelnes Zeichen, das kein "Whitespace" ist,
Also findet es auch Geschweifte Klammern.
Daher muss man eben sagen, dass Geschweifte Klammern ausgeschlossen werden sollen:
[^}]+
oder
[^\}]+
Ich hab mein Beispiel sowohl mit gskinners RegExr als auch mit regexpal getestet.
Funktioniert.
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
Seiten: 1