Benutzer-Werkzeuge

Webseiten-Werkzeuge


webedition:textarea:removing-line-breaks-at-the-end-of-the-textarea-content

Überflüssige Zeilenumbrüche am Ende des Inhalts einer Textarea entfernen

Wenn man den <we:textarea wysiwyg="true"/>-Tag verwendet und Redakteure mit einem auf der Gecko-Engine basierenden Browser (SeaMonkey, Firefox) arbeiten, dann befindet sich am Ende des Inhalts der Textarea immer ein Zeilenumbruch. Ist dieser nicht gewollt, dann muss ihn der Redakteur immer entfernen. Dieser Zeilenumbruch (<br> beziehungsweise <br />) ist zunächst nicht sichtbar und wirkt sich meist erst auf dem fertig generierten webEdition-Dokument aus. Dadurch vergessen die meisten Redakteure diesen überflüssigen Zeilenumbruch zu entfernen.

Das folgende Beispiel zeigt, wie man solche überflüssigen Zeilenumbrüche automatisch entfernen kann:

Dabei werden folgende Schritte durchgeführt:

  1. Den Inhalt der WYSIWYG-Textarea in eine globale PHP-Variable schreiben
  2. Überflüssige <br>- beziehungsweise <br />-Tags entfernen
  3. Den Inhalt der globalen PHP-Variable wieder zurück in die WYSIWYG-Textarea schreiben

Die Funktionalität für das Bereinigen ist dabei in eine PHP-Funktion (remove_ending_br()) ausgelagert. Es empfiehlt sich hier diese PHP-Funktion in eine externe Datei auszulagern und dann in den entsprechenden Vorlagen zu includen. Somit wird redundanter Code vermieden.

<!-- Inhalt des Feldes "Text" in eine globale PHP-Variable schreiben -->
<we:setVar to="global" nameto="Text" from="top" namefrom="Text" typefrom="text"/>
 
<?php
   // überflüssige <br>- bzw. <br />-Tags am Ende entfernen
  function remove_ending_br ($str_text) {
    $str_text = trim($str_text);
 
    // Für HTML (<br>)
    while('<br>' === substr($str_text, -4, 4)) {
      $str_text = substr($str_text, 0, -4);
      $str_text = trim($str_text);
    }
 
    // Für XHTML (<br />)
    while('<br />' === substr($str_text, -6, 6)) {
      $str_text = substr($str_text, 0, -6);
      $str_text = trim($str_text);
    }
 
    return $str_text;
  }
 
  // Bereinigung durchführen
  $GLOBALS['Text'] = remove_ending_br ($GLOBALS['Text']);
?>
 
<!-- Inhalt der globalen PHP-Variablen "Text" wieder zurück in das Feld "Text" schreiben -->
<we:setVar to="top" nameto="Text" from="global" namefrom="Text"/>
 
<we:ifEditmode>
  Geben Sie hier den Text ein:
  <we:textarea name="Text" inlineedit="true" wysiwyg="true" width="400" height="300"/>
</we:ifEditmode>
 
<we:ifNotEditmode>
  <we:var type="document" name="Text"/>
</we:ifNotEditmode>
webedition/textarea/removing-line-breaks-at-the-end-of-the-textarea-content.txt · Zuletzt geändert: 2015/12/22 16:47 von Marc Krämer

Recent changes RSS feed