130 Zeilen
		
	
	
	
		
			3,4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			130 Zeilen
		
	
	
	
		
			3,4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * This file is part of MySQLDumper released under the GNU/GPL 2 license
 | 
						|
 * http://www.mysqldumper.net
 | 
						|
 *
 | 
						|
 * @package         MySQLDumper
 | 
						|
 * @subpackage      File
 | 
						|
 * @version         SVN: $rev: 1207 $
 | 
						|
 * @author          $Author$
 | 
						|
 */
 | 
						|
/**
 | 
						|
 * File-Helper Class
 | 
						|
 *
 | 
						|
 * Class offers some methods for file handling
 | 
						|
 *
 | 
						|
 * @package         MySQLDumper
 | 
						|
 * @subpackage      File
 | 
						|
 */
 | 
						|
class Msd_File
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Get CHMOD of a file
 | 
						|
     *
 | 
						|
     * @param string $file The file to get chmod for
 | 
						|
     *
 | 
						|
     * @return int
 | 
						|
     */
 | 
						|
    public static function getChmod($file)
 | 
						|
    {
 | 
						|
        clearstatcache();
 | 
						|
        return @substr(decoct(fileperms($file)), -3);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Detects if file or directory is writable and trys to chmod it.
 | 
						|
     *
 | 
						|
     * Returns if file or directory is writable after chmodding.
 | 
						|
     *
 | 
						|
     * @param string $path
 | 
						|
     * @param string $chmod
 | 
						|
     *
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public static function isWritable($path, $chmod)
 | 
						|
    {
 | 
						|
        $fileValidator = new Msd_Validate_File_Accessible(
 | 
						|
            array('accessType' => array('write'))
 | 
						|
        );
 | 
						|
        if (!$fileValidator->isValid($path)) {
 | 
						|
            @chmod($path, $chmod);
 | 
						|
        }
 | 
						|
        return $fileValidator->isValid($path);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * Get information of latest backup file
 | 
						|
     *
 | 
						|
     * @return array
 | 
						|
     */
 | 
						|
    public static function getLatestBackupInfo()
 | 
						|
    {
 | 
						|
        $config = Msd_Configuration::getInstance();
 | 
						|
        $latestBackup = array();
 | 
						|
        $dir = new DirectoryIterator($config->get('paths.backup'));
 | 
						|
        foreach ($dir as $file) {
 | 
						|
            if ($file->isFile()) {
 | 
						|
                $fileMtime = $file->getMTime();
 | 
						|
                if (!isset($latestBackup['mtime']) ||
 | 
						|
                    $fileMtime > $latestBackup['mtime']) {
 | 
						|
                    $filename = $file->getFilename();
 | 
						|
                    $latestBackup['filename'] = $filename;
 | 
						|
                    $latestBackup['fileMtime'] = date("d.m.Y H:i", $fileMtime);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return $latestBackup;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns an array with the names of all saved configuration files
 | 
						|
     *
 | 
						|
     * Strips extensions.
 | 
						|
     *
 | 
						|
     * @return array List of configuration names
 | 
						|
     */
 | 
						|
    public static function getConfigNames()
 | 
						|
    {
 | 
						|
        $config = Msd_Configuration::getInstance();
 | 
						|
        $configPath = $config->get('paths.config');
 | 
						|
        if (!is_readable($configPath)) {
 | 
						|
            return array();
 | 
						|
        }
 | 
						|
        $dir = new DirectoryIterator($configPath);
 | 
						|
        $files = array();
 | 
						|
        foreach ($dir as $file) {
 | 
						|
            if ($file->isFile()) {
 | 
						|
                $filename = $file->getFilename();
 | 
						|
                if (substr($filename, -4) == '.ini') {
 | 
						|
                    $files[] = substr($filename, 0, - 4);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        @sort($files);
 | 
						|
        return $files;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get list of available themes.
 | 
						|
     *
 | 
						|
     * @return array
 | 
						|
     */
 | 
						|
    public static function getThemeList()
 | 
						|
    {
 | 
						|
        $dir = new DirectoryIterator(APPLICATION_PATH . '/../public/css/');
 | 
						|
        $themes = array();
 | 
						|
        while ($dir->valid()) {
 | 
						|
            $current = $dir->current();
 | 
						|
            if ($current->isDir() &&
 | 
						|
                !$current->isDot() &&
 | 
						|
                $current->getBasename() != '.svn'
 | 
						|
            ) {
 | 
						|
                $themeName= $current->getBasename();
 | 
						|
                $themes[$themeName] = $themeName;
 | 
						|
            }
 | 
						|
            $dir->next();
 | 
						|
        }
 | 
						|
 | 
						|
        return $themes;
 | 
						|
    }
 | 
						|
 | 
						|
}
 |