Dieser Commit ist enthalten in:
Ursprung
2b21070b1a
Commit
f7a7c71f86
1583 geänderte Dateien mit 454759 neuen und 0 gelöschten Zeilen
130
library/Msd/File.php
Normale Datei
130
library/Msd/File.php
Normale Datei
|
|
@ -0,0 +1,130 @@
|
|||
<?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;
|
||||
}
|
||||
|
||||
}
|
||||
Laden …
Tabelle hinzufügen
Einen Link hinzufügen
In neuem Issue referenzieren