Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.

Differences Between: [Versions 310 and 401] [Versions 311 and 401] [Versions 39 and 401] [Versions 400 and 401] [Versions 401 and 402] [Versions 401 and 403]

Base for all file browsing classes.

Copyright: 2008 Petr Skoda (http://skodak.org)
License: http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
File Size: 455 lines (14 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class


Class: file_info  - X-Ref

Base class for things in the tree navigated by {@link file_browser}.

__construct($browser, $context)   X-Ref
Constructor

param: file_browser $browser file_browser instance
param: stdClass $context

get_params()   X-Ref
Returns list of standard virtual file/directory identification.
The difference from stored_file parameters is that null values
are allowed in all fields

return: array with keys contextid, component, filearea, itemid, filepath and filename

build_search_files_sql($extensions, $prefix = null)   X-Ref
Builds SQL sub query (WHERE clause) for selecting files with the specified extensions

If $extensions == '*' (any file), the result is array('', array())
otherwise the result is something like array('AND filename ...', array(...))

param: string|array $extensions - either '*' or array of lowercase extensions, i.e. array('.gif','.jpg')
param: string $prefix prefix for DB table files in the query (empty by default)
return: array of two elements: $sql - sql where clause and $params - array of parameters

get_non_empty_children($extensions = '*')   X-Ref
Returns list of children which are either files matching the specified extensions
or folders that contain at least one such file.

It is recommended to overwrite this function so it uses a proper SQL
query and does not create unnecessary file_info objects (might require a lot of time
and memory usage on big sites).

param: string|array $extensions, either '*' or array of lowercase extensions, i.e. array('.gif','.jpg')
return: array of file_info instances

count_non_empty_children($extensions = '*', $limit = 1)   X-Ref
Returns the number of children which are either files matching the specified extensions
or folders containing at least one such file.

We usually don't need the exact number of non empty children if it is >=2 (see param $limit)
This function is used by repository_local to evaluate if the folder is empty. But
it also can be used to check if folder has only one subfolder because in some cases
this subfolder can be skipped.

It is strongly recommended to overwrite this function so it uses a proper SQL
query and does not create file_info objects (later might require a lot of time
and memory usage on big sites).

param: string|array $extensions, for example '*' or array('.gif','.jpg')
param: int $limit stop counting after at least $limit non-empty children are found
return: int

get_params_rawencoded()   X-Ref
Returns array of url encoded params.

return: array with numeric keys

get_url($forcedownload=false, $https=false)   X-Ref
Returns file download url

param: bool $forcedownload whether or not force download
param: bool $https whether or not force https
return: string url

is_readable()   X-Ref
Whether or not I can read content of this file or enter directory

return: bool

is_writable()   X-Ref
Whether or not new files or directories can be added

return: bool

is_empty_area()   X-Ref
Is this info area and is it "empty"? Are there any files in subfolders?

This is used mostly in repositories to reduce the
number of empty folders. This method may be very slow,
use with care.

return: bool

get_filesize()   X-Ref
Returns file size in bytes, null for directories

return: int bytes or null if not known

get_mimetype()   X-Ref
Returns mimetype

return: string mimetype or null if not known

get_timecreated()   X-Ref
Returns time created unix timestamp if known

return: int timestamp or null

get_timemodified()   X-Ref
Returns time modified unix timestamp if known

return: int timestamp or null

get_license()   X-Ref
Returns the license type of the file

return: string license short name or null

get_author()   X-Ref
Returns the author name of the file

return: string author name or null

get_source()   X-Ref
Returns the source of the file

return: string a source url or null

get_sortorder()   X-Ref
Returns the sort order of the file

return: int

is_external_file()   X-Ref
Whether or not this is a external resource

return: bool

get_status()   X-Ref
Returns file status flag.

return: int 0 means file OK, anything else is a problem and file can not be used

get_readable_fullname()   X-Ref
Returns the localised human-readable name of the file together with virtual path

return: string

create_directory($newdirname, $userid = NULL)   X-Ref
Create new directory, may throw exception - make sure
params are valid.

param: string $newdirname name of new directory
param: int $userid id of author, default $USER->id
return: file_info new directory

create_file_from_string($newfilename, $content, $userid = NULL)   X-Ref
Create new file from string - make sure
params are valid.

param: string $newfilename name of new file
param: string $content of file
param: int $userid id of author, default $USER->id
return: file_info new file

create_file_from_pathname($newfilename, $pathname, $userid = NULL)   X-Ref
Create new file from pathname - make sure
params are valid.

param: string $newfilename name of new file
param: string $pathname location of file
param: int $userid id of author, default $USER->id
return: file_info new file

create_file_from_storedfile($newfilename, $fid, $userid = NULL)   X-Ref
Create new file from stored file - make sure
params are valid.

param: string $newfilename name of new file
param: int|stored_file $fid id or stored_file of file
param: int $userid id of author, default $USER->id
return: file_info new file

delete()   X-Ref
Delete file, make sure file is deletable first.

return: bool success

copy_to_storage($filerecord)   X-Ref
Copy content of this file to local storage, overriding current file if needed.

param: array|stdClass $filerecord contains contextid, component, filearea,
return: bool success

copy_to_pathname($pathname)   X-Ref
Copy content of this file to local storage, overriding current file if needed.

param: string $pathname real local full file name
return: boolean success