Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

Forum Sefrengo.org _ Anwenderforum _ <br /><br /> zu </p><p>

Geschrieben von: grafzahl Sat. 11. August 2007, 17:55

Hi Leute,

da die Frage glaube ich in den anderen Thread untergegangen ist bzw. wohl das ganze System davon irgendwie betroffen ist dachte ich mir mache ich dazu mal einen neuen Thread auf.

Wie mir scheint wird in Sefrengo bei den Textarea die PHP-Funkion nl2br genutzt um Zeilenumbrüche in Textfeldern automatisch in <br /> umzuwandeln. Das klappt soweit ja ganz gut, allerdings hat diese Funktion den Nachteil das Doppelumbrüche, also Absätze mit <br /><br /> umgewandelt, was aus Sicht der Semantik nicht wirklich fein ist, denn eigentlich sollten Textblöcke ja in <p>'s geschachtelt werden.

Ist es irgendwie möglich Zentral diese nl2br-Funktion durch folgende zu ersetzen:

QUELLTEXT
function nls2p($content) {
  $content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
  $content = str_replace("<br/><br/>", "</p><p>", $content);
  return $content."</p>";
}


Wodurch die Textblöcke nun automatisch in <p>-s verpackt werden würden. Im Gästebuch-Modul fand ich dazu z.B. auch den passenden Codeabschnitt und konnte ihn bearbeiten, doch z.B. bei Contentflex und Textarea sieht das anders aus. Hat von euch jemand Ahnung wo man das Zentral für die Module und Plugins einstellen kann? Wäre vielleicht auch für alle anderen Modul-Entwickler ganz interessant, da <br /><br /> wirklich noch aus alten Zeiten stammt und dringlichst vermieden werden sollte.

Ich hoffe der zusätzliche Thread ist kein Problem und nochmal danke für eure Hilfe.

Geschrieben von: STam Sun. 12. August 2007, 09:01

Hi,

das liegt wohl in den Type-Forms begraben.


Gruss

Geschrieben von: grafzahl Sun. 12. August 2007, 12:09

ZITAT(STam @ Sun. 12. August 2007, 10:01) *
Hi,

das liegt wohl in den Type-Forms begraben.
Gruss


Also ich hab jetzt mal in der fnc.type.php Zeile 932 folgendes Geändert:

QUELLTEXT
    if ($type_config['nl2br'] == 'true') {
        $mod_content = nl2br($mod_content);
    }


zu

QUELLTEXT
    if ($type_config['nl2br'] == 'true') {
        function nls2p($content) {
            $content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
            $content = str_replace("<br/><br/>", "</p><p>", $content);
            return $content."</p>";
        }
        $mod_content = nls2p($mod_content);
    }


leider ohne erfolg, hab den Cache geleert und auch die Inhalte mal neu eingefügt (allerdings nur mit ContentFlex), leider mit dem selben Ergebnis.

Hat sonst noch jemand Ideen wo man die Änderung aufnehmen müsste/könnte?

p.s.: Gibts eigentlich ne Datei für globale Funktionen wo ich meine nls2p einbinden könnte um sie überall in sefrengo zu nutzen?

Geschrieben von: mistral Sun. 12. August 2007, 12:46

ZITAT(grafzahl @ Sun. 12. August 2007, 13:09) *
Also ich hab jetzt mal in der fnc.type.php Zeile 932 folgendes Geändert:

Das ist die falsche Zeile. Wie du am Funktionsnamen erkennen kannst hast du es jetzt für den Tag Sourcecode geändert.
Für die textarea musst du die Zeile 146 ändern

Geschrieben von: grafzahl Sun. 12. August 2007, 19:38

ZITAT(mistral @ Sun. 12. August 2007, 13:46) *
Das ist die falsche Zeile. Wie du am Funktionsnamen erkennen kannst hast du es jetzt für den Tag Sourcecode geändert.
Für die textarea musst du die Zeile 146 ändern


Jupp, das hat gepasst, ich habe die Funktion jetzt einfach mit in die fnc.general.php mit aufgenommen damit ich sie nun direkt überall mit einbinden kann. Es wäre natürlich schön wenn dieser Hack direkt in den nächste Version mit einfließen könnte, wäre das evtl. möglich?

Geschrieben von: amk Sun. 12. August 2007, 19:44

wenn könnte es eine cms-tag-option werden o.ä., da eventuell nicht bei jeder verwendung des textarea-cms-tags eine generierung von absätzen gewünscht sein muss.

veröffentliche die von dir veränderte(n) datei(en) doch unter "hacks, sonstiges" dann haben vielleicht auch andere was davon ...

Geschrieben von: STam Sun. 12. August 2007, 21:43

... bitteschön wink.gif

Gruss

Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)