Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> nl2br() mit P-Absätzen ausstatten, Zum wohle der Semantik ;)
grafzahl
Beitrag 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)
Angehängte Datei  nl2br_to_nls2p.zip ( 15.5KB ) Anzahl der Downloads: 9
 


--------------------
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post
mistral
Beitrag 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)
Go to the top of the page
 
+Quote Post
andi
Beitrag 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



ZITAT(mistral @ Tue. 14. August 2007, 12:56) *
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


--------------------
Go to the top of the page
 
+Quote Post
amk
Beitrag 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
Go to the top of the page
 
+Quote Post
grafzahl
Beitrag 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



ZITAT(amk @ Tue. 14. August 2007, 14:10) *
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


--------------------
Go to the top of the page
 
+Quote Post
smail
Beitrag Tue. 14. August 2007, 22:22
Beitrag #7


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 587
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 62



ZITAT(mistral @ Tue. 14. August 2007, 12:56) *
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.


ZITAT(andi @ Tue. 14. August 2007, 13:41) *
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?
  • Bei einem WYSIWYG-Editor erwartet man, dass die Ausgabe xhtml-konform & semantisch korrekt formatiert wird (und der Tiny kann das auch tongue.gif )
  • Bei einer simplen Textarea erwarte ich dieses Verhalten nicht

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.
Go to the top of the page
 
+Quote Post
STam
Beitrag 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
Go to the top of the page
 
+Quote Post
mistral
Beitrag 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"
erweitern

auf
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)
Go to the top of the page
 
+Quote Post
smail
Beitrag 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.
Go to the top of the page
 
+Quote Post
grafzahl
Beitrag 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> smile.gif

Aber die oben beschriebene Lösung der Erweiterung der nl2br-Option fände ich sehr gut.


--------------------
Go to the top of the page
 
+Quote Post
andi
Beitrag 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


--------------------
Go to the top of the page
 
+Quote Post
grafzahl
Beitrag 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



ZITAT(andi @ Wed. 15. August 2007, 10:17) *
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... rolleyes.gif


--------------------
Go to the top of the page
 
+Quote Post
Olaf
Beitrag 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.....


--------------------
Gruß Olaf aus Ohorn

Lieber spät und richtig als nie und falsch.
Go to the top of the page
 
+Quote Post
gunwalt
Beitrag 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
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 28.3.24 - 15:02

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.