/**
  * Return moodle files listing
  *
  * @param int $contextid
  * @param int $component
  * @param int $filearea
  * @param int $itemid
  * @param string $filepath
  * @param string $filename
  * @return array
  * @since Moodle 2.0
  * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more.
  * @see core_files_external::get_files()
  */
 public static function get_files($contextid, $component, $filearea, $itemid, $filepath, $filename)
 {
     return core_files_external::get_files($contextid, $component, $filearea, $itemid, $filepath, $filename);
 }
예제 #2
0
 /**
  * Test getting a list of files with and without a context ID.
  */
 public function test_get_files()
 {
     global $USER, $DB;
     $this->resetAfterTest();
     // Set the current user to be the administrator.
     $this->setAdminUser();
     $USER->email = '*****@*****.**';
     // Create a course.
     $course = $this->getDataGenerator()->create_course();
     $record = new stdClass();
     $record->course = $course->id;
     $record->name = "Mod data upload test";
     $record->intro = "Some intro of some sort";
     // Create a database module.
     $module = $this->getDataGenerator()->create_module('data', $record);
     // Create a new field in the database activity.
     $field = data_get_field_new('file', $module);
     // Add more detail about the field.
     $fielddetail = new stdClass();
     $fielddetail->d = $module->id;
     $fielddetail->mode = 'add';
     $fielddetail->type = 'file';
     $fielddetail->sesskey = sesskey();
     $fielddetail->name = 'Upload file';
     $fielddetail->description = 'Some description';
     $fielddetail->param3 = '0';
     $field->define_field($fielddetail);
     $field->insert_field();
     $recordid = data_add_record($module);
     // File information for the database module record.
     $datacontent = array();
     $datacontent['fieldid'] = $field->field->id;
     $datacontent['recordid'] = $recordid;
     $datacontent['content'] = 'Simple4.txt';
     // Insert the information about the file.
     $contentid = $DB->insert_record('data_content', $datacontent);
     // Required information for uploading a file.
     $context = context_module::instance($module->cmid);
     $usercontext = context_user::instance($USER->id);
     $component = 'mod_data';
     $filearea = 'content';
     $itemid = $contentid;
     $filename = $datacontent['content'];
     $filecontent = base64_encode("Let us create a nice simple file.");
     $filerecord = array();
     $filerecord['contextid'] = $context->id;
     $filerecord['component'] = $component;
     $filerecord['filearea'] = $filearea;
     $filerecord['itemid'] = $itemid;
     $filerecord['filepath'] = '/';
     $filerecord['filename'] = $filename;
     // Create an area to upload the file.
     $fs = get_file_storage();
     // Create a file from the string that we made earlier.
     $file = $fs->create_file_from_string($filerecord, $filecontent);
     $timemodified = $file->get_timemodified();
     $timecreated = $file->get_timemodified();
     $filesize = $file->get_filesize();
     // Use the web service function to return the information about the file that we just uploaded.
     // The first time is with a valid context ID.
     $filename = '';
     $testfilelisting = core_files_external::get_files($context->id, $component, $filearea, $itemid, '/', $filename);
     $testfilelisting = external_api::clean_returnvalue(core_files_external::get_files_returns(), $testfilelisting);
     // With the information that we have provided we should get an object exactly like the one below.
     $coursecontext = context_course::instance($course->id);
     $testdata = array();
     $testdata['parents'] = array();
     $testdata['parents']['0'] = array('contextid' => 1, 'component' => null, 'filearea' => null, 'itemid' => null, 'filepath' => null, 'filename' => 'System');
     $testdata['parents']['1'] = array('contextid' => 3, 'component' => null, 'filearea' => null, 'itemid' => null, 'filepath' => null, 'filename' => 'Miscellaneous');
     $testdata['parents']['2'] = array('contextid' => $coursecontext->id, 'component' => null, 'filearea' => null, 'itemid' => null, 'filepath' => null, 'filename' => 'Test course 1');
     $testdata['parents']['3'] = array('contextid' => $context->id, 'component' => null, 'filearea' => null, 'itemid' => null, 'filepath' => null, 'filename' => 'Mod data upload test (Database)');
     $testdata['parents']['4'] = array('contextid' => $context->id, 'component' => 'mod_data', 'filearea' => 'content', 'itemid' => null, 'filepath' => null, 'filename' => 'Fields');
     $testdata['files'] = array();
     $testdata['files']['0'] = array('contextid' => $context->id, 'component' => 'mod_data', 'filearea' => 'content', 'itemid' => $itemid, 'filepath' => '/', 'filename' => 'Simple4.txt', 'url' => 'http://www.example.com/moodle/pluginfile.php/' . $context->id . '/mod_data/content/' . $itemid . '/Simple4.txt', 'isdir' => false, 'timemodified' => $timemodified, 'timecreated' => $timecreated, 'filesize' => $filesize, 'author' => null, 'license' => null);
     // Make sure that they are the same.
     $this->assertEquals($testdata, $testfilelisting);
     // Try again but without the context. Minus one signals the function to use other variables to obtain the context.
     $nocontext = -1;
     $modified = 0;
     // Context level and instance ID are used to determine what the context is.
     $contextlevel = 'module';
     $instanceid = $module->cmid;
     $testfilelisting = core_files_external::get_files($nocontext, $component, $filearea, $itemid, '/', $filename, $modified, $contextlevel, $instanceid);
     $testfilelisting = external_api::clean_returnvalue(core_files_external::get_files_returns(), $testfilelisting);
     $this->assertEquals($testfilelisting, $testdata);
 }
예제 #3
0
 /**
  * Return moodle files listing
  *
  * @param int $contextid
  * @param int $component
  * @param int $filearea
  * @param int $itemid
  * @param string $filepath
  * @param string $filename
  * @param int $modified timestamp to return files changed after this time.
  * @param string $contextlevel The context level for the file location.
  * @param int $instanceid The instance id for where the file is located.
  * @return array
  * @since Moodle 2.0
  * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more.
  * @see core_files_external::get_files()
  */
 public static function get_files($contextid, $component, $filearea, $itemid, $filepath, $filename, $modified = null, $contextlevel = null, $instanceid = null)
 {
     return core_files_external::get_files($contextid, $component, $filearea, $itemid, $filepath, $filename, $modified, $contextlevel, $instanceid);
 }