From 744b64ff5d513d7f6f36bdb87a71a84bd481be19 Mon Sep 17 00:00:00 2001 From: skodak Date: Mon, 4 Aug 2008 13:21:38 +0000 Subject: [PATCH] MDL-14589 filedir location now fully configurable through file storage constructor --- lib/file/file_storage.php | 17 ++++++++++------- lib/file/stored_file.php | 7 +------ lib/moodlelib.php | 8 +++++++- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/lib/file/file_storage.php b/lib/file/file_storage.php index 40befb7987b..948408c05fb 100644 --- a/lib/file/file_storage.php +++ b/lib/file/file_storage.php @@ -9,13 +9,8 @@ class file_storage { * Contructor * @param string $filedir full path to pool directory */ - public function __construct() { - global $CFG; - if (isset($CFG->filedir)) { - $this->filedir = $CFG->filedir; - } else { - $this->filedir = $CFG->dataroot.'/filedir'; - } + public function __construct($filedir) { + $this->filedir = $filedir; // make sure the file pool directory exists if (!is_dir($this->filedir)) { @@ -28,6 +23,14 @@ class file_storage { } } + /** + * Returns location of filedir (file pool) + * @return string pathname + */ + public function get_filedir() { + return $this->filedir; + } + /** * Calculates sha1 hash of unique full path name information * @param int $contextid diff --git a/lib/file/stored_file.php b/lib/file/stored_file.php index b7bf489faed..02a4799b467 100644 --- a/lib/file/stored_file.php +++ b/lib/file/stored_file.php @@ -41,12 +41,7 @@ class stored_file { * @return ful path to pool file with file content **/ protected function get_content_file_location() { - global $CFG; - if (isset($CFG->filedir)) { - $filedir = $CFG->filedir; - } else { - $filedir = $CFG->dataroot.'/filedir'; - } + $filedir = $this->fs->get_filedir(); $contenthash = $this->file_record->contenthash; $l1 = $contenthash[0].$contenthash[1]; $l2 = $contenthash[2].$contenthash[3]; diff --git a/lib/moodlelib.php b/lib/moodlelib.php index b4999efbe2e..44c3afeac93 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -4502,7 +4502,13 @@ function get_file_storage() { require_once("$CFG->libdir/filelib.php"); - $fs = new file_storage(); + if (isset($CFG->filedir)) { + $filedir = $CFG->filedir; + } else { + $filedir = $CFG->dataroot.'/filedir'; + } + + $fs = new file_storage($filedir); return $fs; }