Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.
24. Okt 2008
Teaser

Typo3: Dateigröße automatisch im Link anzeigen lassen

Um auf einer mit dem CMS Typo3 betriebenen Webseite automatisch die Größe einer verlinkten Datei anzeigen zu lassen, nutzen Sie folgende Anpassungen:

Im TypoScript

Fügen Sie dem entsprechenden Typoscript folgende Zeilen hinzu:

page.includeLibs.user_classes = typo3conf/ext/anpassungen_t3/user_classes.php

lib.parseFunc_RTE {
  tags {
    link {
      innerWrap.cObject = COA
      innerWrap.cObject {
        10 = TEXT
        10.value = |
        20 = USER_INT
        20.userFunc = user_classes->fileSize
        20.wrap = (|)
        20.tilo.cObject = TEXT
        20.tilo.cObject {
          data = parameters : allParams
          split {
            token.char = 32
            cObjNum = 1 |*| 2 |*| 2
            1 {
              current = 1
            }
          }
        }
        if.value = t3x,t3d,pdf,zip,rar,doc,wmv
        if.isInList.cObject < .20.tilo.cObject
        if.isInList.cObject {
          split {
            1 {
              crop = -3
              case = lower
            }
          }
        }
      }
    }
  }
}

Im hervorgehobenen Bereich können Sie die Dateiendungen angeben, auf die das Script reagieren soll.

Natürlich benötigen Sie noch die entsprechende PHP Klasse, welche im oberen Script referenziert wurde.
Speichern Sie die folgenden Zeilen unter "typo3conf/ext/anpassungen_t3/user_classes.php" ab:

cObj->TEXT($conf['tilo.']);
    if (file_exists($file)) {
      $fileSize = filesize($file);
      if ($fileSize) {
        $fileSize = t3lib_div::formatSize($fileSize, ' Byte| kB| MB| GB');
        $fileSize = $conf['wrap'] ? $this->cObj->wrap($fileSize, $conf['wrap']) : $fileSize;
      }
    }
    return $fileSize;
  }
}
?>