MDL-23984 improvements of check_dir_exists() - replacing by make_upload_directory...
authorPetr Skoda <skodak@moodle.org>
Sun, 29 Aug 2010 14:51:09 +0000 (14:51 +0000)
committerPetr Skoda <skodak@moodle.org>
Sun, 29 Aug 2010 14:51:09 +0000 (14:51 +0000)
14 files changed:
admin/langimport.php
blocks/community/locallib.php
files/externallib.php
filter/tex/latex.php
lib/filestorage/file_storage.php
lib/filestorage/zip_packer.php
lib/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer.php
lib/moodlelib.php
lib/outputlib.php
lib/simplepie/moodle_simplepie.php
lib/weblib.php
theme/image.php
theme/javascript.php
theme/styles.php

index a01068e..61a1b09 100755 (executable)
@@ -65,8 +65,8 @@ $notice_error = array();
 
 if (($mode == INSTALLATION_OF_SELECTED_LANG) and confirm_sesskey() and !empty($pack)) {
     set_time_limit(0);
-    check_dir_exists($CFG->dataroot.'/temp/');
-    check_dir_exists($CFG->dataroot.'/lang/');
+    make_upload_directory('temp');
+    make_upload_directory('lang');
 
     if (is_array($pack)) {
         $packs = $pack;
@@ -173,8 +173,8 @@ if ($mode == UPDATE_ALL_LANG) {
         }
     }
 
-    check_dir_exists($CFG->dataroot.'/temp/');
-    check_dir_exists($CFG->dataroot.'/lang/');
+    make_upload_directory('temp');
+    make_upload_directory('lang');
 
     $updated = false;       // any packs updated?
     foreach ($neededlangs as $pack) {
index 9cb8424..d2fce8b 100644 (file)
@@ -86,7 +86,7 @@ class block_community_manager {
         $params['courseid'] = $course->id;
         $params['filetype'] = HUB_BACKUP_FILE_TYPE;
 
-        check_dir_exists($CFG->dataroot.'/temp/backup');
+        make_upload_directory('temp/backup');
 
         $filename = md5(time() . '-' . $course->id . '-'. $USER->id . '-'. random_string(20));
 
index 4b1760f..40d7766 100755 (executable)
@@ -207,9 +207,7 @@ class moodle_file_external extends external_api {
             throw new moodle_exception('nofile');
         }
         // saving file
-        if (!check_dir_exists($CFG->dataroot.'/temp/wsupload')) {
-            throw new moodle_exception('cannotcreatetempdir');
-        }
+        make_upload_directory('temp/wsupload');
 
         if (empty($fileinfo['filename'])) {
             $filename = uniqid('wsupload').'_'.time().'.tmp';
index e758d12..47c7c3b 100644 (file)
@@ -20,7 +20,7 @@
 
             // construct directory structure
             $this->temp_dir = $CFG->dataroot . "/temp/latex";
-            check_dir_exists($this->temp_dir);
+            make_upload_directory('temp/latex');
         }
 
         /**
index 1db2e21..974bce8 100644 (file)
@@ -625,7 +625,7 @@ class file_storage {
         $file_record->source = clean_param($source, PARAM_URL);
 
         if ($usetempfile) {
-            check_dir_exists($this->tempdir, true, true);
+            check_dir_exists($this->tempdir);
             $tmpfile = tempnam($this->tempdir, 'newfromurl');
             $content = download_file_content($url, $headers, $postdata, $fullresponse, $timeout, $connecttimeout, $skipcertverify, $tmpfile);
             if ($content === false) {
index cf4e418..a28adc6 100644 (file)
@@ -56,7 +56,7 @@ class zip_packer extends file_packer {
 
         $fs = get_file_storage();
 
-        check_dir_exists($CFG->dataroot.'/temp/zip', true, true);
+        check_dir_exists($CFG->dataroot.'/temp/zip');
         $tmpfile = tempnam($CFG->dataroot.'/temp/zip', 'zipstor');
 
         if ($result = $this->archive_to_pathname($files, $tmpfile)) {
@@ -279,7 +279,7 @@ class zip_packer extends file_packer {
             return $archivefile->extract_to_pathname($this, $contextid, $component, $filearea, $itemid, $pathbase, $userid);
         }
 
-        check_dir_exists($CFG->dataroot.'/temp/zip', true, true);
+        check_dir_exists($CFG->dataroot.'/temp/zip');
 
         $pathbase = trim($pathbase, '/');
         $pathbase = ($pathbase === '') ? '/' : '/'.$pathbase.'/';
index 43fe045..367a67c 100644 (file)
@@ -109,7 +109,7 @@ class HTMLPurifier_DefinitionCache_Serializer extends
      */
     private function _prepareDir($config) {
         $directory = $this->generateDirectoryPath($config);
-        return check_dir_exists($directory, true, true); //Moodle hack
+        return check_dir_exists($directory); //Moodle hack
         if (!is_dir($directory)) {
             $base = $this->generateBaseDirectoryPath($config);
             if (!is_dir($base)) {
index 883b92b..cd129a2 100644 (file)
@@ -1079,12 +1079,8 @@ function purge_all_caches() {
     // purge all other caches: rss, simplepie, etc.
     remove_dir($CFG->dataroot.'/cache', true);
 
-    // some more diagnostics in case site is misconfigured
-    if (!check_dir_exists($CFG->dataroot.'/cache', true, true)) {
-        debugging('Can not create cache directory, please check permissions in dataroot.');
-    } else if (!is_writeable($CFG->dataroot.'/cache')) {
-        debugging('Cache directory is not writeable, please verify permissions in dataroot.');
-    }
+    // make sure cache dir is writable, throws exception if not
+    make_upload_directory('cache');
 
     clearstatcache();
 }
@@ -5759,7 +5755,7 @@ class core_string_manager implements string_manager {
         // caches so we do not need to do all this merging and dependencies resolving again
         $this->cache[$lang][$component] = $string;
         if ($this->usediskcache) {
-            check_dir_exists("$this->cacheroot/$lang", true, true);
+            check_dir_exists("$this->cacheroot/$lang");
             file_put_contents("$this->cacheroot/$lang/$component.php", "<?php \$this->cache['$lang']['$component'] = ".var_export($string, true).";");
         }
         return $string;
index f5403da..9679120 100644 (file)
@@ -627,7 +627,7 @@ class theme_config {
             $candidatesheet = "$CFG->dataroot/cache/theme/$this->name/designer.ser";
             if (!file_exists($candidatesheet)) {
                 $css = $this->css_content();
-                check_dir_exists(dirname($candidatesheet), true, true);
+                check_dir_exists(dirname($candidatesheet));
                 file_put_contents($candidatesheet, serialize($css));
 
             } else if (filemtime($candidatesheet) > time() - THEME_DESIGNER_CACHE_LIFETIME) {
index 8c4d562..c6e1f6d 100644 (file)
@@ -60,7 +60,7 @@ class moodle_simplepie extends SimplePie
         $this->file_class = 'moodle_simplepie_file';
 
         $cachedir = moodle_simplepie::get_cache_directory();
-        check_dir_exists($cachedir, true, true);
+        check_dir_exists($cachedir);
 
         parent::__construct();
         // Match moodle encoding
index 76deff6..500aa27 100644 (file)
@@ -1493,11 +1493,11 @@ function purify_html($text) {
 
     // this can not be done only once because we sometimes need to reset the cache
     $cachedir = $CFG->dataroot.'/cache/htmlpurifier';
-    $status = check_dir_exists($cachedir, true, true);
+    check_dir_exists($cachedir);
 
     static $purifier = false;
-    static $config;
     if ($purifier === false) {
+        check_dir_exists($cachedir);
         require_once $CFG->libdir.'/htmlpurifier/HTMLPurifier.safe-includes.php';
         $config = HTMLPurifier_Config::createDefault();
         $config->set('Output.Newline', "\n");
index 1324ca7..350db3e 100644 (file)
@@ -105,7 +105,7 @@ if ($rev > -1) {
     $pathinfo = pathinfo($imagefile);
     $cacheimage = "$candidatelocation/$image.".$pathinfo['extension'];
     if (!file_exists($cacheimage)) {
-        check_dir_exists(dirname($cacheimage), true, true);
+        check_dir_exists(dirname($cacheimage));
         copy($imagefile, $cacheimage);
     }
     send_cached_image($cacheimage, $rev);
index 6e1e11a..6e44df1 100644 (file)
@@ -73,7 +73,7 @@ require_once('Minify.php');
 $theme = theme_config::load($themename);
 
 if ($rev > -1) {
-    check_dir_exists(dirname($candidate), true, true);
+    check_dir_exists(dirname($candidate));
     $fp = fopen($candidate, 'w');
     fwrite($fp, minify($theme->javascript_files($type)));
     fclose($fp);
index b64cad0..b68aa67 100644 (file)
@@ -109,7 +109,7 @@ send_cached_css($candidatesheet, $rev);
 
 function store_css(theme_config $theme, $csspath, $cssfiles) {
     $css = $theme->post_process(minify($cssfiles));
-    check_dir_exists(dirname($csspath), true, true);
+    check_dir_exists(dirname($csspath));
     $fp = fopen($csspath, 'w');
     fwrite($fp, $css);
     fclose($fp);