openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit ad9a025991b0962b2856fac92a8f305a075c6516
parent 3cdc3223a840706e8fece80bdb3fdf039997886e
Author: dankert <devnull@localhost>
Date:   Mon, 16 Mar 2009 22:34:18 +0100

Beim Lesen der Konfigurationsdateien kein unnötiges is_file() mehr.

Diffstat:
serviceClasses/FileUtils.class.php | 46++++++++++++++++++++++++++++++++++++++++++----
serviceClasses/Preferences.class.php | 34+++++++++++++++++-----------------
2 files changed, 59 insertions(+), 21 deletions(-)

diff --git a/serviceClasses/FileUtils.class.php b/serviceClasses/FileUtils.class.php @@ -1,16 +1,16 @@ <?php /** - * Werkzeugklasse für Datei-Operationen. + * Werkzeugklasse f�r Datei-Operationen. * */ class FileUtils { /** - * Fügt einen Slash ("/") an das Ende an, sofern nicht bereits vorhanden. + * Fuegt einen Slash ("/") an das Ende an, sofern nicht bereits vorhanden. * * @param String $pfad - * @return Pfad mit angehängtem Slash. + * @return Pfad mit angeh�ngtem Slash. */ function slashify($pfad) { @@ -22,7 +22,7 @@ class FileUtils /** - * Ermittelt das temporäre Verzeichnis. + * Ermittelt das tempor�re Verzeichnis. * * @return String */ @@ -32,6 +32,44 @@ class FileUtils @unlink($tmpFilename); return FileUtils::slashify( dirname($tmpFilename) ); } + + + + /** + * Liest die Dateien aus dem angegebenen Ordner in ein Array. + * + * @param $dir Verzeichnis, welches gelesen werden soll + * @return Array Liste der Dateien im Ordner + */ + function readDir($dir) + { + $dir = FileUtils::slashify($dir); + $dateien = array(); + + if ( !is_dir($dir) ) + { + return false; + } + + if ( $dh = opendir($dir) ) + { + while( ($verzEintrag = readdir($dh)) !== false ) + { + if ( substr($verzEintrag,0,1) != '.' ) + { + $dateien[] = $verzEintrag; + } + } + closedir($dh); + + return $dateien; + } + else + { + die('unable to open directory: '.$dir); + } + + } } ?> \ No newline at end of file diff --git a/serviceClasses/Preferences.class.php b/serviceClasses/Preferences.class.php @@ -9,6 +9,13 @@ */ class Preferences { + /** + * Liest die Konfigurationsdateien im angegebenen Ordner. + * + * @param $dir Verzeichnis, welche gelesen wird. Optional. Falls nicht gesetzt, wird + * das Standard-Konfigurationsverzeichnis verwendet. + * @return Array + */ function load( $dir='' ) { if ( !defined('QUOTE') ) @@ -31,26 +38,19 @@ class Preferences exit; } - if ( $dh = opendir($dir) ) + $dateien = FileUtils::readDir($dir); + + foreach( $dateien as $datei ) { - while( ($verzEintrag = readdir($dh)) !== false ) + $filename = $dir.$datei; + + if ( is_file($filename) && eregi('\.(ini.*|conf)$',$datei) ) { - $filename = $dir.$verzEintrag; - - if ( is_file($filename) && eregi('\.(ini.*|conf)$',$verzEintrag) ) - { - $nameBestandteile = explode('.',$verzEintrag); - - $values[$nameBestandteile[0]] = parse_ini_file( $filename,true ); - } - } - closedir($dh); + $nameBestandteile = explode('.',$datei); + $values[$nameBestandteile[0]] = parse_ini_file( $filename,true ); + } } - else - { - die('unable to open directory: '.$dir); - } - + ksort($values); return $values;