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; } }