MediaLibrary
Provides abstraction level for the Media Library operations.
class Cms\Classes\MediaLibrary
extends System\Classes\MediaLibrary
Implements the library caching features and security checks.
Extends
Class | Description |
---|---|
MediaLibrary
|
Provides abstraction level for the Media Library operations. |
Traits
Trait | Description |
---|---|
Singleton
|
Singleton trait. |
Constants
Constant | Type | Value | Description |
---|---|---|---|
SORT_BY_MODIFIED
|
string |
"modified"
|
string
"modified"
|
SORT_BY_SIZE
|
string |
"size"
|
string
"size"
|
SORT_BY_TITLE
|
string |
"title"
|
string
"title"
|
SORT_DIRECTION_ASC
|
string |
"asc"
|
string
"asc"
|
SORT_DIRECTION_DESC
|
string |
"desc"
|
string
"desc"
|
Properties
inherited
protected
$cacheKey
:
string
= "system-media-library-contents"
Cache key
inherited protected $ignoreNames : array
Contains a list of files and directories to ignore. The list can be customized with cms.storage.media.ignore configuration option.
inherited protected $ignorePatterns : array
Contains a list of regex patterns to ignore in files and directories. The list can be customized with cms.storage.media.ignorePatterns configuration option.
inherited protected $storageDisk : mixed
A reference to the Media Library disk.
inherited protected $storageFolder : string
The root Library folder path.
inherited protected $storageFolderNameLength : int
Cache for the storage folder name length.
inherited protected $storagePath : string
Relative or absolute URL of the Library root folder.
Methods
protected init ()
Initialize this singleton.
inherited public __clone ()
inherited public __wakeup ()
inherited public copyFolder (string $originalPath, string $newPath) : bool
Copies a folder.
Property | Type | Description |
---|---|---|
$originalPath | string |
string
Specifies the original path of the folder. |
$newPath | string |
string
Specifies the new path of the folder. |
inherited public deleteFiles (array $paths)
Deletes a file from the Library.
Property | Type | Description |
---|---|---|
$paths | array |
array
A list of file paths relative to the Library root to delete. |
inherited public deleteFolder (string $path)
Deletes a folder from the Library.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the folder path relative to the Library root. |
inherited public exists (string $path) : bool
Determines if a file with the specified path exists in the library.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the file path relative the the Library root. |
Returns TRUE if the file exists.
inherited
public
findFiles (string $searchTerm, string $sortBy = "title"
, string $filter = null
)
: array
Finds files in the Library.
Property | Type | Description |
---|---|---|
$searchTerm | string |
string
Specifies the search term. |
$sortBy | string |
string
Determines the sorting preference. Supported values are 'title', 'size', 'lastModified' (see SORT_BY_XXX class constants), FALSE (to disable sorting), or an associative array with a 'by' key and a 'direction' key: ['by' => SORT_BY_XXX, 'direction' => SORT_DIRECTION_XXX]. |
$filter | string |
string
Determines the document type filtering preference. Supported values are 'image', 'video', 'audio', 'document' (see FILE_TYPE_XXX constants of MediaLibraryItem class). |
Returns an array of MediaLibraryItem objects.
inherited public folderExists (string $path) : bool
Determines if a folder with the specified path exists in the library.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the folder path relative the the Library root. |
Returns TRUE if the folder exists.
inherited
public
static
final
forgetInstance ($container = null
)
: void
Forget this singleton's instance if it exists
Property | Type | Description |
---|---|---|
$container | mixed |
mixed
|
inherited public get (string $path) : string
Returns a file contents.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the file path relative the the Library root. |
Returns the file contents
inherited public getCacheKey () : string
Get the cache key
The cache key to set as the cache key for this instance
inherited public getMediaPath (string $path) : string
Returns a file or folder path with the prefixed storage folder.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies a path to process. |
Returns a processed string.
inherited public getPathUrl (string $path) : string
Returns a public file URL.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the file path relative the the Library root. |
inherited public getStorageDisk () : Illuminate\Filesystem\FilesystemAdapter
Initializes and returns the Media Library disk.
This method should always be used instead of trying to access the $storageDisk property directly as initializing the disc requires communicating with the remote storage.
Returns the storage disk object.
inherited
public
static
final
instance ($container = null
)
: static
Create a new instance of this singleton.
Property | Type | Description |
---|---|---|
$container | mixed |
mixed
|
inherited
public
listAllDirectories (array $exclude = []
)
: array
Returns a list of all directories in the Library, optionally excluding some of them.
Property | Type | Description |
---|---|---|
$exclude | array |
array
A list of folders to exclude from the result list. The folder paths should be specified relative to the Library root. |
inherited
public
listFolderContents (string $folder = "\/"
, string $sortBy = "title"
, string $filter = null
, boolean $ignoreFolders = false
)
: array
Returns a list of folders and files in a Library folder.
Property | Type | Description |
---|---|---|
$folder | string |
string
Specifies the folder path relative the the Library root. |
$sortBy | string |
string
Determines the sorting preference. Supported values are 'title', 'size', 'lastModified' (see SORT_BY_XXX class constants), FALSE (to disable sorting), or an associative array with a 'by' key and a 'direction' key: ['by' => SORT_BY_XXX, 'direction' => SORT_DIRECTION_XXX]. |
$filter | string |
string
Determines the document type filtering preference. Supported values are 'image', 'video', 'audio', 'document' (see FILE_TYPE_XXX constants of MediaLibraryItem class). |
$ignoreFolders | boolean |
boolean
Determines whether folders should be suppressed in the result list. |
Returns an array of MediaLibraryItem objects.
inherited public makeFolder (string $path) : bool
Creates a folder.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the folder path. |
inherited
public
moveFile (string $oldPath, string $newPath, boolean $isRename = false
)
: bool
Moves a file to another location.
Property | Type | Description |
---|---|---|
$oldPath | string |
string
Specifies the original path of the file. |
$newPath | string |
string
Specifies the new path of the file. |
$isRename | boolean |
boolean
|
inherited public moveFolder (string $originalPath, string $newPath) : bool
Moves a folder.
Property | Type | Description |
---|---|---|
$originalPath | string |
string
Specifies the original path of the folder. |
$newPath | string |
string
Specifies the new path of the folder. |
inherited public put (string $path, string $contents) : bool
Puts a file to the library.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the file path relative the the Library root. |
$contents | string |
string
Specifies the file contents. |
inherited public resetCache ()
Resets the Library cache.
The cache stores the library table of contents locally in order to optimize the performance when working with remote storages. The default cache TTL is 10 minutes. The cache is deleted automatically when an item is added, changed or deleted. This method allows to reset the cache forcibly.
inherited public setCacheKey (string $cacheKey)
Set the cache key
Property | Type | Description |
---|---|---|
$cacheKey | string |
string
The key to set as the cache key for this instance |
inherited public static url (string $file) : string
Helper that makes a URL for a media file.
Property | Type | Description |
---|---|---|
$file | string |
string
|
inherited
public
static
validatePath (string $path, boolean $normalizeOnly = false
)
: string
Checks if file path doesn't contain any substrings that would pose a security threat.
Throws an exception if the path is not valid.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the path. |
$normalizeOnly | boolean |
boolean
Specifies if only the normalization, without validation should be performed. |
Returns a normalized path.
inherited protected final __construct ()
Constructor.
inherited protected filterItemList (array $itemList, string $filter)
Filters item list by file type.
Property | Type | Description |
---|---|---|
$itemList | array |
array
Specifies the item list to sort. |
$filter | string |
string
Determines the document type filtering preference. Supported values are 'image', 'video', 'audio', 'document' (see FILE_TYPE_XXX constants of MediaLibraryItem class). |
inherited protected generateRandomTmpFolderName ($location)
Property | Type | Description |
---|---|---|
$location | mixed |
mixed
|
inherited protected getFolderItemCount (string $path) : int
Returns a number of items on a folder.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies the folder path relative to the storage disk root. |
Returns the number of items in the folder.
inherited protected getMediaRelativePath (string $path) : string
Returns path relative to the Library root folder.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies a path relative to the Library disk root. |
Returns the updated path.
inherited protected initLibraryItem (array $item, string $itemType) : mixed
Initializes a library item from file metadata and item type.
Property | Type | Description |
---|---|---|
$item | array |
array
Specifies the file metadata as returned by the storage adapter. |
$itemType | string |
string
Specifies the item type. |
Returns the MediaLibraryItem object or NULL if the item is not visible.
inherited protected isVisible (string $path) : bool
Determines if the path should be visible (not ignored).
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies a path to check. |
Returns TRUE if the path is visible.
inherited protected pathMatchesSearch (string $path, array $words) : bool
Determines if file path contains all words form the search term.
Property | Type | Description |
---|---|---|
$path | string |
string
Specifies a path to examine. |
$words | array |
array
A list of words to check against. |
inherited protected scanFolderContents (string $fullFolderPath) : array
Fetches the contents of a folder from the Library.
Property | Type | Description |
---|---|---|
$fullFolderPath | string |
string
Specifies the folder path relative the the storage disk root. |
Returns an array containing two elements - 'files' and 'folders', each is an array of MediaLibraryItem objects.
inherited protected sortItemList (array $itemList, mixed $sortSettings)
Sorts the item list by title, size or last modified date.
Property | Type | Description |
---|---|---|
$itemList | array |
array
Specifies the item list to sort. |
$sortSettings | mixed |
mixed
Determines the sorting preference. Supported values are 'title', 'size', 'lastModified' (see SORT_BY_XXX class constants) or an associative array with a 'by' key and a 'direction' key: ['by' => SORT_BY_XXX, 'direction' => SORT_DIRECTION_XXX]. |