From bf9201411686775de35d8a7d3d2824b9504cfbc8 Mon Sep 17 00:00:00 2001 From: skodak Date: Tue, 15 May 2007 20:55:21 +0000 Subject: [PATCH] MDL-9380 Adding a Resource of Type directory leads to SQL errors, patch by Andrew Schmadeke --- .../type/directory/resource.class.php | 44 ++++++++++++++++--- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/mod/resource/type/directory/resource.class.php b/mod/resource/type/directory/resource.class.php index b96c9e38885..3e57b98550a 100644 --- a/mod/resource/type/directory/resource.class.php +++ b/mod/resource/type/directory/resource.class.php @@ -6,6 +6,23 @@ function resource_directory($cmid=0) { parent::resource_base($cmid); } +function add_instance($resource) { + $this->_postprocess($resource); + return parent::add_instance($resource); +} + +function update_instance($resource) { + $this->_postprocess($resource); + return parent::update_instance($resource); +} + +function _postprocess(&$resource) { + if($resource->reference=='0') + $resource->reference = ''; + + $resource->popup = ''; + $resource->alltext = ''; +} function display() { global $CFG; @@ -14,13 +31,13 @@ function display() { parent::display(); /// Set up some shorthand variables - $cm = $this->cm; + $cm = $this->cm; $course = $this->course; - $resource = $this->resource; + $resource = $this->resource; require_once($CFG->libdir.'/filelib.php'); - $subdir = optional_param('subdir','', PARAM_PATH); + $subdir = optional_param('subdir','', PARAM_PATH); $resource->reference = clean_param($resource->reference, PARAM_PATH); $formatoptions = new object(); @@ -150,19 +167,34 @@ function setup($form) { global $CFG; parent::setup($form); - + $rawdirs = get_directory_list("$CFG->dataroot/{$this->course->id}", array($CFG->moddata, 'backupdata'), true, true, false); $dirs = array(); foreach ($rawdirs as $rawdir) { $dirs[$rawdir] = $rawdir; } - + include("$CFG->dirroot/mod/resource/type/directory/directory.html"); parent::setup_end(); } +function setup_elements(&$mform) { + global $CFG; + + $rawdirs = get_directory_list($CFG->dataroot.'/'.$this->course->id, array($CFG->moddata, 'backupdata'), true, true, false); + $dirs = array(); + $dirs[0]=get_string('maindirectory', 'resource'); + foreach ($rawdirs as $rawdir) { + $dirs[$rawdir] = $rawdir; + } + + $mform->addElement('select', 'reference', get_string('resourcetypedirectory', 'resource'), $dirs); + $mform->setDefault('windowpopup', 0); } -?> + +} + +?> \ No newline at end of file