Example #1
0
 /**
  * Удаление каталога со всеми вложенными файлами и подкаталогами
  *
  * @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;
 }
Example #2
0
 /**
  * Упрощённая процедура загрузки файла
  * @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);
 }
Example #4
0
 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();
 }