
Hallo, es gibt eine kurze Diskussion zu Zeilenumbrüchen im FAQ-Modul von OTRS vom März 2007. So wie ich das sehe hat sich diesbezüglich nichts getan in der Zwischenzeit so dass ich das Thema als "neuer" OTRS-Nutzer gerne nochmal aufgreifen möchte. In der Tat wird ein FAQ-Beitrag nach einer festen Anzahl Zeichen umgebrochen und in der HTML-Darstellung durch ein <br> ersetzt. Die Anzahl der Zeichen wird anscheinend von der Breite des Formularfeldes bestimmt, in das der Beitrag eingegeben wird. Die automatischen Zeilenumbrüche im Formularfeld wandern dann anscheinend als \n in die Datenbank und werden bei der Darstellung entsprechend ersetzt. Das hat wohl den Sinn, dass selbst eingegebene Zeilenumbrüche im Text (\n) auch in HTML als solche dargestellt werden. Es ist mir allerdings nicht klar, warum ich, falls ich für das FAQ-Modul die Darstellung HTML gewählt habe, meine Textgestaltung nicht komplett in HTML machen sollte, also selbst tags wie <br> oder <p> oder ... verwenden sollte um das zu erreichen was ich möchte. Richtig störend ist das automatische Ersetzen von \n durch <br> dann wenn das Formularfeld Zeilenumbrüche an Stellen macht, an denen Sie bei der Darstellung dazu führen den Text zu zerhacken. Das passiert bei mir etwa bei der Verwendung des Konquerors unter OpenSUSE 10.3 und sieht dann so aus: ... Das Kernelupdate schreibt neue Einträge in das Bootmenu von grub was dazu führt, dass der neue Kernel von einer anderen Partition aus gestartet werden will. Statt ... Was ich nun gemacht habe, ist, diese Ersetzung im FAQ-Modul in Zeile 542 auszukommentieren, wie im folgeden Ausschnitt: # html quoting for my $Key (qw (Field1 Field2 Field3 Field4 Field5 Field6)) { if ( $Self->{ConfigObject}->Get('FAQ::Item::HTML') ) { my @Array = split /pre>/, $ItemData{$Key}; my $Text = ''; for (@Array) { if ( $_ =~ /(.*)\<\/$/ ) { $Text .= 'pre>' . $_ . 'pre>'; } else { # $_ =~ s/\n/\<br\>/g; $Text .= $_; } } $ItemData{$Key} = $Text; } else { $ItemData{$Key} = $Self->{LayoutObject}->Ascii2Html( NewLine => 0, Text => $ItemData{$Key}, VMax => 5000, HTMLResultMode => 1, LinkFeature => 1, ); } } if ( !%ItemData ) { return $Self->{LayoutObject}->ErrorScreen(); } Damit kann ich dann zwar kein Return mehr nutzen, um Zeilenumbrüche in HTML zu erzwingen, aber das ist es mir Wert. Eine andere Lösung, und vielleicht sogar eine bessere, könnte darin bestehen, die *automatischen* Zeilenumbrüche gar nicht erst in die Datenbank zu übernehmen, falls das machbar wäre. Ansonsten plädiere ich für die obige Lösung, da es mir stringenter erscheint, wirklich auch HTML zu nutzen wenn ich das will und dann auch in der Pflicht bin, Zeilenumbrüche in meinem HTML Code durch <br /> oder was auch immer zu erzwingen. Grüße Klaus -- [ Dr. Klaus Braun Institut für Physische Geographie Universität Freiburg Werthmannstraße 4, D-79085 Freiburg Phone: +49-761-203-9223 Fax: +49-761-203-3596 Email: klaus.braun@geographie.uni-freiburg.de ]