nl2br() mit P-Absätzen ausstatten, Zum wohle der Semantik ;) |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
nl2br() mit P-Absätzen ausstatten, Zum wohle der Semantik ;) |
Mon. 13. August 2007, 07:50
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 138 Mitglied seit: 26.03.2007 Wohnort: Magdeburg Mitglieds-Nr.: 752 |
Hi Leute,
wie man in diesem Thread nachlesen kann hatte ich ein kleines Problem damit, das in Sefrengo zum Umbrechen der Texteingaben die PHP-Funktion nl2br() genutzt wurde. Die Funktioniert an sich zwar gut, beherrscht aber leider nicht die Schachtelung der Texteingaben in ordentliche <p>-Absätze, dazu ein kurzes Beispiel: Gibt man in Sefrengo folgenden Text in eine Textarea ein: QUELLTEXT Sefrengo ist ein tolles CMS so wird daraus normalerweise QUELLTEXT Sefrengo<br /> ist<br /> <br /> ein tolles<br /> CMS Ich wollte nun der Ordentlichkeit halber und zum besseren Styling via CSS (Abstände etc), dass solche Texteingaben automatisch in die eigentlich dafür vorgesehenen <p>-Tags gesetzt werden, so das unser Beispiel nach dem Hack nun so ausgegeben werden würde. QUELLTEXT <p>Sefrengo<br />ist</p> <p>ein tolles<br />CMS</p> Den im oberen Thread durchgeführten Hack habe ich euch daher mal in den Anhang gepackt. In der fnc.general.php sind direkt am Anfang nun die Funktionen nl2p() und nls2p() eingefügt wurden. Wobei nl2p() keinen Start und End <p>-Tag erstellen (z.B. für das Gästebuch-Modul), nls2p() hingegen fügt diese direkt mit ein. In der fnc.type.php habe ich dann in Zeile 146 die Funktion nl2br() durch nls2p() ersetzt. Es wäre natürlich schön wenn der Hack vielleicht wirklich als Option für die CMS-Tags den Weg in die nächste Version finden könnten. Viel Spaß damit Christian Der Beitrag wurde von grafzahl bearbeitet: Mon. 13. August 2007, 07:50
Angehängte Datei(en)
-------------------- |
|
|
Mon. 13. August 2007, 13:01
Beitrag
#2
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Klingt von der Idee ganz gut. Wenn der Hack Zuspruch findet, werde ich es in einem der nächsten Releases rein nehmen.
-------------------- Es wird, es wird...
|
|
|
Tue. 14. August 2007, 11:56
Beitrag
#3
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 343 Mitglied seit: 26.06.2006 Wohnort: CH Mitglieds-Nr.: 5 |
Aus meiner Sicht sollte dies nicht in den nächsten Release, oder wenn dann nur als optional einschaltbar (z.B. bei den cms:Tags).
Die textarea sollte den Text möglichst genau so ausgeben wie er auch vom User eingegeben wird. Wenn da jetzt immer noch ein p-Absatz um jede textarea Ausgabe erfolgt, hat der Benutzer nicht mehr die Möglichkeit die Ausgabe nach seinen Bedürfnissen anzupassen. Wenn zum Beispiel eine Absatz mit einem Bild realisiert werden soll (<p>{textarea:1}{image:1}</p>, dann würde jetzt ein zusätzlicher, in der meisten Fällen unerwünschter Absatz hinzugefügt. Auch die das zwei br zu einem P umgewandelt wird, wird viele Redaktoren mehr verwirren als das es Ihnen hilft. Insbesondere, wenn sich der wysiwyg dann auch noch anders verhält. Aus meiner Sicht ist es sinvoller, dass die Personen die p und br im selbe Eingabefeld verwenden wollen, denn wysiwyg verwenden und diesen je nach vorlieben Kofigurieren, das ein normales [Enter] ein p erzeugt und ein [Shift]+[Enter] br (analog Word). Die entsprechende Konfiguration ist in projekt01\cms\fckeditor\editor\sefrengo\fckconfig.php zu finden CODE FCKConfig.UseBROnCarriageReturn = false; anstelle von CODE FCKConfig.UseBROnCarriageReturn = true; Gruss Mistral -------------------- So einfach wie möglich, aber nicht einfacher!
(Albert Einstein) |
|
|
Tue. 14. August 2007, 12:41
Beitrag
#4
|
|
purist Gruppe: AdvancedMembers Beiträge: 1.525 Mitglied seit: 30.06.2006 Wohnort: luzern (schweiz) Mitglieds-Nr.: 16 |
Wenn zum Beispiel eine Absatz mit einem Bild realisiert werden soll (<p>{textarea:1}{image:1}</p>, dann würde jetzt ein zusätzlicher, in der meisten Fällen unerwünschter Absatz hinzugefügt. genau hier liegt der knackpunkt. nicht nur, dass ein unerwünschter absatz generiert wird, nein, sondern dass das ganze auch nicht mehr valid ist und es zu fehldarstellugnen kommen kann. da grundsätzlich eher ein nl2br() gewünscht ist würde ich nl2p() höchstens als option zur verfügung stellen. gruss andi -------------------- |
|
|
Tue. 14. August 2007, 13:10
Beitrag
#5
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
grafzahl hat eben dieses vorgeschlagen - wie ich es geraten habe - eben lediglich als cms-tag option ...
-------------------- cheers, Alex
|
|
|
Tue. 14. August 2007, 21:55
Beitrag
#6
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 138 Mitglied seit: 26.03.2007 Wohnort: Magdeburg Mitglieds-Nr.: 752 |
grafzahl hat eben dieses vorgeschlagen - wie ich es geraten habe - eben lediglich als cms-tag option ... Jap, sicherlich würde ich es erstmal nicht zum Standard machen, das würde beim nächsten Update sonst viele aus der Bahn hauen. Zu Mistrals <p>-Beispiel: Dazu könnte man wie oben beschrieben die zweite Funktion nl2p nutzen die nicht automatisch die Ein/Ausgangs-P's setzt, so das man den Rest frei definieren kann. Für mich gehört die Schachtelung von Text in <p>s aber einfach zum guten Ton. Die Zeiten von <br /><br /> sollten eigentlich schon lange der Vergangenheit angehören, hier sollte man zumindest den Leuten die es "ordentlich" haben wollen die Chance geben das das auch ohne große Probleme möglich ist, mir würde daher eine Option schon genügen. Screenreader und co lesen Texte mit <br /><br /> übrigens am laufenden Band vor, eben weil keiner weis das das ja nun ein Absatz ist... da gibts keine Pausen usw. Der Beitrag wurde von grafzahl bearbeitet: Tue. 14. August 2007, 21:56 -------------------- |
|
|
Tue. 14. August 2007, 22:22
Beitrag
#7
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
Die textarea sollte den Text möglichst genau so ausgeben wie er auch vom User eingegeben wird. Wenn da jetzt immer noch ein p-Absatz um jede textarea Ausgabe erfolgt, hat der Benutzer nicht mehr die Möglichkeit die Ausgabe nach seinen Bedürfnissen anzupassen. genau hier liegt der knackpunkt. nicht nur, dass ein unerwünschter absatz generiert wird, nein, sondern dass das ganze auch nicht mehr valid ist und es zu fehldarstellugnen kommen kann. Ich schließe mich da mistral und andi an. Die Anpassbarkeit und Flexibilität ist genau das, was ich an SF schätze! Es ärgert es mich, wenn ein CMS "mitzudenken" versucht und mir irgendwo unerwünschte Tags einbaut, die man nur durch einen Eingriff in den Quellcode verhindern kann. Als Option finde ich den Vorschlag ok. Als Standard: no way! Andererseits nutze ich meistens für die Eingabe den Tiny in einer angepassten Version, der regelt die Absätze dann automatisch mit <p></p>. Bei Bedarf kann man dann dort auch mit Strg-Enter einen <br /> erzeugen. Was ist nun der Unterschied zwischen Tiny und den Textareas?
ZITAT Für mich gehört die Schachtelung von Text in <p>s aber einfach zum guten Ton. Für mich auch. Aber wie gesagt: DAS kann der Tiny. Es geht hier letztlich nur um die Frage, welche Eingabe ich dem Endanwender ermögliche. Das Ergebnis sollte ähnlich sein, d.h. semantisch korrekt und valides xhtml! Viele Grüße Jan -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Tue. 14. August 2007, 23:42
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
Da kann ich mal smail zustimmen.
Gruss |
|
|
Tue. 14. August 2007, 23:43
Beitrag
#9
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 343 Mitglied seit: 26.06.2006 Wohnort: CH Mitglieds-Nr.: 5 |
vorschlag für die cms:Tags textarea und sourcecode Option
QUELLTEXT nl2br = "true|false" erweiternauf QUELLTEXT nl2br = "true|false|nl2p|nls2p" false -> keine Änderung (wie bisher) true -> verwendet nl2br() (wie bisher) nl2p -> verwendet nl2p() (neu) nls2p -> verwendet nls2p() (neu) -------------------- So einfach wie möglich, aber nicht einfacher!
(Albert Einstein) |
|
|
Wed. 15. August 2007, 00:00
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
ZITAT vorschlag für die cms:Tags textarea und sourcecode Option Ups, versteh' ich da grad was falsch? DENN: Im Sourcecode will ich ja erst recht, dass meine Eingabe 1:1 durchgegeben wird. Ein automatisches Einfügen von <p>'s kann hier ja alles zerstören... -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Wed. 15. August 2007, 06:31
Beitrag
#11
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 138 Mitglied seit: 26.03.2007 Wohnort: Magdeburg Mitglieds-Nr.: 752 |
Nein nein, er meint schon die Textareas, und genau so wie oben beschrieben hätte ich es mir auch vorgestellt.
Es geht nur darum das eine Textarea manchmal auch ganz normale Texte beinhalten soll, z.B. irgendein kleines Kästchen am Seitenrand, dafür den Tiny oder FCK zu nehmen find ich etwas zu dick... für sowas würde ich dann z.B. eine einfach Textarea verwendet. Und natürlich erwartet der Redakteuer das sein Text so umgesetzt wird wie er Ihn eingibt, und das ist laut Standard eben mit <p> Aber die oben beschriebene Lösung der Erweiterung der nl2br-Option fände ich sehr gut. -------------------- |
|
|
Wed. 15. August 2007, 09:17
Beitrag
#12
|
|
purist Gruppe: AdvancedMembers Beiträge: 1.525 Mitglied seit: 30.06.2006 Wohnort: luzern (schweiz) Mitglieds-Nr.: 16 |
eine umsetzung mittels cms:mod fände ich eine gelungene lösung. klar ist es semantisch sinnvoll, absätze mit einem p-element zu umschliessen. die textarea sehe ich aber eher als einfache texteingabe und nicht als formatierungs-werkzeug. aus diesem grunde wird bei mir die textarea meistens dort verwendet, wo eine automatische absatzgenerierung zu falschen ergebnissen führen würde.
gruss andi -------------------- |
|
|
Wed. 15. August 2007, 10:00
Beitrag
#13
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 138 Mitglied seit: 26.03.2007 Wohnort: Magdeburg Mitglieds-Nr.: 752 |
eine umsetzung mittels cms:mod fände ich eine gelungene lösung. klar ist es semantisch sinnvoll, absätze mit einem p-element zu umschliessen. die textarea sehe ich aber eher als einfache texteingabe und nicht als formatierungs-werkzeug. aus diesem grunde wird bei mir die textarea meistens dort verwendet, wo eine automatische absatzgenerierung zu falschen ergebnissen führen würde. gruss andi Nun ist <br /> für mich ebenfalls eine Formatierung... aber ich weis was du meinst und gebe mich geschlagen... -------------------- |
|
|
Wed. 15. August 2007, 10:17
Beitrag
#14
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 613 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 30 |
Vielleicht sollte man dazu mal über den Tellerrand schauen? Bei Wordpress wird alles in P's gepackt, ausgenommen Tags die da nicht reingehören. Leider ist es dort so das es auf den gesamten Content angewendet wird, also auch auf Code aus Plugins/Wisywig/includetes PHP usw. Aber die Funktion an sich find ich super. Das, nur für Textareas wo aktiviert.....
-------------------- |
|
|
Mon. 5. January 2009, 13:06
Beitrag
#15
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 1.126 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 7 |
Was ist eigentlich aus diesem Ansatz geworden? Ist er, auch teilweise, umgesetzt worden?
-------------------- ------
Ich gehe spazieren durch Gelsenkirchen |
|
|
Tue. 6. January 2009, 13:13
Beitrag
#16
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Geplant ist, in der 1.6 Version verschiedene Semantikproblematiken anzugehen, u.a. die nl2br Geschichte.
-------------------- Es wird, es wird...
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 27.9.24 - 08:56 |