code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP:class Dir2Array -> lib -> IconSelector.class.php
md5:b3b189abb0770d0e52f264cc1cdeca42
sha1:26e222dff7d0bd682d97ae42823ae12e4f0e5ba6
Download-Link:Download
  1. <?php
  2. /**
  3.  * @author: Jörg Reinholz, fastix Webdesign, Kassel http://www.fastix.org
  4.  * @return string
  5.  * @uses a dir with nice icons for mime-types of files
  6. **/
  7.  
  8.  
  9. class IconSelector
  10. {
  11.     protected $arIconFiles;
  12.     protected $mimeIconsDir;
  13.  
  14.     public function __construct ( $mimeIconsDir ) {
  15.  
  16.         $DH = opendir( $_SERVER['DOCUMENT_ROOT'] . $mimeIconsDir ) or die('Konnte Icons-Dir nicht lesen');
  17.         while ( $filename = readdir( $DH ) ) {
  18.             $t = $filename[0];
  19.             if ( '.' != $t ) {
  20.                 $arIconFiles[] = $filename;
  21.             }
  22.         }
  23.  
  24.         $this -> arIconFiles  = $arIconFiles;
  25.         $this -> mimeIconsDir = $mimeIconsDir;
  26.     }
  27.  
  28.     public function selectIcon( $mimeType ) {
  29.         $mimeType    = str_replace( '/', '-x-', $mimeType );
  30.         $defaultIcon = $this -> mimeIconsDir . 'gtk-file.svg';
  31.         $arIconFiles = $this -> arIconFiles;
  32.         foreach ($arIconFiles as $haystack) {
  33.             if ( 0 === strpos($haystack, $mimeType) ) {
  34.                 return( $this -> mimeIconsDir . $haystack );
  35.             }
  36.         }
  37.         $mimeType    = str_replace( '-x-', '-', $mimeType );
  38.         $defaultIcon = '/mime-icons/gtk-file.svg';
  39.         $arIconFiles = $this -> arIconFiles;
  40.         foreach ( $arIconFiles as $haystack ) {
  41.             if ( 0 === strpos( $haystack, $mimeType ) ) {
  42.                 return( $this -> mimeIconsDir . $haystack );
  43.             }
  44.         }
  45.  
  46.         $mimeTypeParts = explode( '-', $mimeType );
  47.         $mimeTypeFirst = $mimeTypeParts[0];
  48.         $mimeTypeLast  = $mimeTypeParts[count( $mimeTypeParts ) -1 ];
  49.  
  50.         foreach ( $arIconFiles as $haystack ) {
  51.             if ( strpos( $haystack, '-' . $mimeTypeLast ) ) {
  52.                 return( $this -> mimeIconsDir . $haystack );
  53.             }
  54.         }
  55.  
  56.         foreach ( $arIconFiles as $haystack ) {
  57.             if ( 0 === strpos( $haystack, $mimeTypeFirst ) ) {
  58.                 return( $this -> mimeIconsDir . $haystack );
  59.             }
  60.         }
  61.  
  62.         return $defaultIcon;
  63.     }
  64. }