/** * Удаление каталога со всеми вложенными файлами и подкаталогами * * @param string $location полный путь к каталогу * * @return bool результат полного удаления каталога и вложенных файлов и каталогов */ public static function delete($location) { if (is_dir($location) && file_exists($location)) { foreach (glob($location . '/*') as $file) { if (!(is_dir($file) ? joosFolder::delete($file) : joosFile::delete($file))) { return false; } } return rmdir($location); } return false; }
/** * Упрощённая процедура загрузки файла * @param string $element_name название элемента массива $_FILES для загрузки * @param string $upload_location каталог размещения загруженного файла * @param array $params массив расширенных парамтеров загрузки * string new_name - новое имя для файла * string new_extension - переименовать расширение файла * */ public static function easy_upload($element_name, $upload_location, array $params = array()) { $file_name = $_FILES[$element_name]['name']; //Если нужно сменить имя файла if (isset($params['new_name'])) { $file_name = $params['new_name'] . '.' . substr($file_name, strrpos($file_name, '.') + 1); } else { //иначе - очищаем исходное имя файла от мусора $file_name = joosFile::make_safe_name($file_name); } //директория загрузки $upload_location = rtrim($upload_location, '/'); if (!joosFolder::is_writable($upload_location)) { throw new joosUploadLibrariesException('Каталог :upload_location недоступен для создания подкаталогов и записи', array(':upload_location' => $upload_location)); } //если её нет, создаём is_dir($upload_location) ? null : mkdir($upload_location, 0755, true); //перемещаем файл в директорию назначения $file_base_location = $upload_location . DS . $file_name; $success = move_uploaded_file($_FILES[$element_name]['tmp_name'], $file_base_location); //получаем путь файла для http $file_live_location = str_replace(JPATH_BASE, '', $upload_location); $file_live_location = str_replace("\\", DS, $file_live_location); return array('success' => $success, 'file_location' => $file_live_location, 'file_name' => $file_name, 'file_live_location' => sprintf('%s%s/%s', JPATH_SITE, $file_live_location, $file_name), 'file_base_location' => sprintf('%s%s/%s', JPATH_BASE, $file_live_location, $file_name)); }
public function filegenerator() { $codes = self::codegenerator(); $files = $codes['files_body']; $name = $codes['component_name']; if (!joosFile::is_writable(JPATH_APP_BASE . '/components/')) { return array('success' => false, 'message' => 'Не хватает прав для создания каталога компонента'); } $component_root = JPATH_APP_BASE . '/components/' . $name; if (joosFile::exists($component_root)) { return array('success' => false, 'message' => 'Каталог компонента уже существует'); } $dir_structure = array('{app}/components/{name}', '{app}/components/{name}/helpers', '{app}/components/{name}/media', '{app}/components/{name}/media/js', '{app}/components/{name}/media/css', '{app}/components/{name}/models', '{app}/components/{name}/views', '{app}/components/{name}/views_admin'); $oldumask = umask(0); foreach ($dir_structure as $dir) { $create_dir = strtr($dir, array('{app}' => JPATH_APP_BASE, '{name}' => $name)); joosFolder::create($create_dir, 0777); } foreach ($files as $file_name => $file_body) { echo $file_name . "\n"; joosFile::put_content(sprintf('%s/components/%s/%s.php', JPATH_APP_BASE, $name, $file_name), $file_body); } umask($oldumask); //_xdump($files); }
public static function init() { self::$cache_folder = JPATH_BASE_CACHE . DS . 'jscache'; joosFolder::exists(self::$cache_folder) ? null : joosFolder::create(self::$cache_folder); self::$data = array(); }