/**
  * Formatiert den String <code>$value</code>
  * 
  * @param $value zu formatierender String
  * @param $format_type Formatierungstype
  * @param $format Format
  * 
  * Unterstützte Formatierugen:
  * 
  * - <Formatierungstype>
  *    + <Format>
  * 
  * - sprintf
  *    + siehe www.php.net/sprintf
  * - date 
  *    + siehe www.php.net/date
  * - strftime 
  *    + dateformat
  *    + datetime
  *    + siehe www.php.net/strftime
  * - number
  *    + siehe www.php.net/number_format
  *    + array( <Kommastelle>, <Dezimal Trennzeichen>, <Tausender Trennzeichen>)
  * - email
  *    + array( 'attr' => <Linkattribute>, 'params' => <Linkparameter>,
  * - url
  *    + array( 'attr' => <Linkattribute>, 'params' => <Linkparameter>,
  * - truncate
  *    + array( 'length' => <String-Laenge>, 'etc' => <ETC Zeichen>, 'break_words' => <true/false>,
  * - nl2br
  *    + siehe www.php.net/nl2br
  * - rexmedia
  *    + siehe www.php.net/nl2br
  */
 function format($value, $format_type, $format)
 {
     global $I18N, $REX;
     if ($value === null) {
         return '';
     }
     // Stringformatierung mit sprintf()
     if ($format_type == 'sprintf') {
         $value = rexFormatter::_formatSprintf($value, $format);
     } elseif ($format_type == 'date') {
         $value = rexFormatter::_formatDate($value, $format);
     } elseif ($format_type == 'strftime') {
         $value = rexFormatter::_formatStrftime($value, $format);
     } elseif ($format_type == 'number') {
         $value = rexFormatter::_formatNumber($value, $format);
     } elseif ($format_type == 'email') {
         $value = rexFormatter::_formatEmail($value, $format);
     } elseif ($format_type == 'url') {
         $value = rexFormatter::_formatUrl($value, $format);
     } elseif ($format_type == 'truncate') {
         $value = rexFormatter::_formatTruncate($value, $format);
     } elseif ($format_type == 'nl2br') {
         $value = rexFormatter::_formatNl2br($value, $format);
     } elseif ($format_type == 'rexmedia' && $value != '') {
         $value = rexFormatter::_formatRexMedia($value, $format);
     }
     return $value;
 }
 function formatValue()
 {
     $value = $this->getValue();
     $format_type = $this->getFormatType();
     if ($format_type != '') {
         $value = rexFormatter::format($value, $format_type, $this->getFormat());
     }
     return $value;
 }
 function format($row)
 {
     global $I18N;
     $format = parent::format($row);
     if (strlen($format) != 0) {
         return $format;
     }
     $value = $row[$this->name];
     if ($this->format_type == '') {
         if ($this->format == '') {
             $this->format = '%' . $this->name . '%';
         }
         // Alle Spaltenamen ersetzen durch deren Werte %id%, %name%, etc.
         $value = $this->parseString($this->format, $row);
     } else {
         $value = rexFormatter::format($value, $this->format_type, $this->format);
     }
     return $this->link($value, $this->parseParams($row));
 }