DBFile
class DBFile extends DBComposite implements AssetContainer, Thumbnail
Represents a file reference stored in a database
Traits
Config options
supported_images | array | List of image mime types supported by the image manipulations API |
Properties
string | $Hash | SHA of the file | |
string | $Filename | Name of the file, including directory | |
string | $Variant | Variant of the file |
Methods
Attempts to locate and call a method dynamically added to a class at runtime if a default cannot be located
Return the names of all the methods available on this object
Add an extension to a specific class.
No description
Get extra config sources for this class
Return TRUE if a class has a specified extension.
Calls a method if available on both this object and all applied {@link Extensions}, and then attempts to merge all results into an array
Run the given function on all of this object's extensions. Note that this method originally returned void, so if you wanted to return results, you're hosed
Get an extension instance attached to this object by name.
Returns TRUE if this object instance has a specific extension applied in {@link $extension_instances}. Extension instances are initialized at constructor time, meaning if you use {@link add_extension()} afterwards, the added extension will just be added to new instances of the extended class. Use the static method {@link has_extension()} to check if a class (not an instance) has a specific extension.
Get all extension instances for this specific object instance.
An implementation of the factory method, allows you to create an instance of a class
Creates a class instance by the "singleton" design pattern.
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .
Gets the uninherited value for the given config option
Create a new image manipulation
Check if a field exists on this object or its failover.
Get the value of a property/field on this object. This will check if a method called get{$property} exists, then check if a field is available using {@link ViewableData::getField()}, then fall back on a failover object.
Set a property/field on this object. This will check for the existence of a method called set{$property}, then use the {@link ViewableData::setField()} method.
Set a failover object to attempt to get data from if it is not present on this object.
Check if a field exists on this object. This should be overloaded in child classes.
Set value of a single composite field
Add methods from the {@link ViewableData::$failover} object, as well as wrapping any methods prefixed with an underscore into a {@link ViewableData::cachedCall()}.
Merge some arbitrary data in with this object. This method returns a {@link ViewableData_Customised} instance with references to both this and the new custom data.
Composite field defaults to exists only if all fields have values
Return the "casting helper" (a piece of PHP code that when evaluated creates a casted value object) for a field on this object. This helper will be a subclass of DBField.
Get the class name a field on this object will be casted to.
Return the string-format type for the given field.
Render this object into the template, and get the result as a string. You can pass one of the following as the $template parameter: - a template name (e.g. Page) - an array of possible template names - the first valid one will be used - an SSViewer instance
Get the value of a field on this object, automatically inserting the value into any available casting objects that have been specified.
A simple wrapper around {@link ViewableData::obj()} that automatically caches the result so it can be used again without re-running the method.
Checks if a given method/field has a valid value. If the result is an object, this will return the result of the exists method, otherwise will check if the result is not just an empty paragraph tag.
Get the string value of a field on this object that has been suitable escaped to be inserted directly into a template.
Get an array of XML-escaped values by field name
Return a single-item iterator so you can iterate over the fields of a single record.
Find appropriate templates for SSViewer to use to render this object
When rendering some objects it is necessary to iterate over the object being rendered, to do this, you need access to itself.
Get part of the current classes ancestry to be used as a CSS class.
Return debug information about this object that can be rendered into a template
Create a DBField object that's not bound to any particular field.
Returns the value of this field.
Assign the given value.
Return the desired index type to use. Will return false if the field instance should not be indexed.
Return the transformed value ready to be sent to the database. This value will be escaped automatically by the prepared query processor, so it should not be escaped or quoted at all.
Write all nested fields into a manipulation
Add all columns which are defined through {@link requireField()} and {@link $composite_db}, or any additional SQL that is required to get to these columns. Will mostly just write to the {@link SQLSelect->select} array.
Return a html5 tag of the appropriate for this file (normally img or a)
Returns a FormField instance used as a default for form scaffolding.
Returns a FormField instance used as a default for searchform scaffolding.
Returns the index specifications for the field instance, for example:
Return array in the format of {@link $composite_db}.
Bind this field to the dataobject, and set the underlying table to that of the owner
Return clone of self which promises to only return existing thumbnails
No description
No description
No description
Get the absolute URL to this resource
Get metadata for this file
Get mime type
Return file size in bytes.
Get value of filename
Get value of hash
Get value of variant
Determine if a valid non-empty image exists behind this asset, which is a format compatible with image manipulations
Fit image to specified dimensions and fill leftover space with a solid colour (default white). Use in templates with $Pad.
Update the url to point to a resampled version if forcing
Generate a resized copy of this image with the given width & height.
Scale image proportionally to fit within the specified bounds
Proportionally scale down this image if it is wider or taller than the specified dimensions.
Scale image proportionally by width. Use in templates with $ScaleWidth.
Proportionally scale down this image if it is wider than the specified width.
Scale image proportionally by height. Use in templates with $ScaleHeight.
Proportionally scale down this image if it is taller than the specified height.
Crop image on X axis if it exceeds specified width. Retain height.
Crop image on Y axis if it exceeds specified height. Retain width.
Crop this image to the aspect ratio defined by the specified width and height, then scale down the image to those dimensions if it exceeds them.
Resize and crop image to fill specified dimensions.
Generates a thumbnail for use in the gridfield view
Default thumbnail generation for Images
Thumbnail generation for all file types.
Get URL to thumbnail of the given size.
Return the relative URL of an icon for the file type, based on the {@link appCategory()} value.
Determine if this image is of the specified size
Determine if this image is of the specified width
Determine if this image is of the specified width
Wrapper for manipulate that passes in and stores Image_Backend objects instead of tuples
Generate a new DBFile instance using the given callback if it hasn't been created yet, or return the existing one if it has.
Name a variant based on a format with arbitrary parameters
Return a html5 tag of the appropriate for this file (normally img or a)
Determine the template to render as on the frontend
Get trailing part of filename
Get file extension
Alt title for this
Assign a local file to the backend.
Assign a stream to the backend
Assign a set of data to the backend
Return URL for this image. Alias for getURL()
Get URL, but without resampling.
Determine visibility of the given file
Customise this object with an "original" record for getting other customised fields
Get list of allowed file categories
Assign allowed categories
Hook to validate this record against a validation result
Returns the size of the file type in an appropriate format.
Delete a file (and all variants).
Publicly expose the file (and all variants) identified by the given filename and hash {see AssetStore::publish}
Protect a file (and all variants) from public access, identified by the given filename and hash.
Ensures that access to the specified protected file is granted for the current user.
Revoke access to the given file for the current user.
Check if the current user can view the given file.
Rename to new filename, and point to new file
Copy to new filename.
Details
in CustomMethods at line 50
mixed
__call(string $method, array $arguments)
Attempts to locate and call a method dynamically added to a class at runtime if a default cannot be located
You can add extra methods to a class using {@link Extensions}, {@link Object::createMethod()} or {@link Object::addWrapperMethod()}
in CustomMethods at line 144
bool
hasMethod(string $method)
Return TRUE if a method exists on this object
This should be used rather than PHP's inbuild method_exists() as it takes into account methods added via extensions
in CustomMethods at line 172
array
allMethodNames(bool $custom = false)
Return the names of all the methods available on this object
in Extensible at line 163
static bool
add_extension(string $classOrExtension, string $extension = null)
Add an extension to a specific class.
The preferred method for adding extensions is through YAML config, since it avoids autoloading the class, and is easier to override in more specific configurations.
As an alternative, extensions can be added to a specific class directly in the {@link Object::$extensions} array. See {@link SiteTree::$extensions} for examples. Keep in mind that the extension will only be applied to new instances, not existing ones (including all instances created through {@link singleton()}).
in Extensible at line 224
static
remove_extension(string $extension)
Remove an extension from a class.
Note: This will not remove extensions from parent classes, and must be called directly on the class assigned the extension.
Keep in mind that this won't revert any datamodel additions of the extension at runtime, unless its used before the schema building kicks in (in your _config.php). Doesn't remove the extension from any {@link Object} instances which are already created, but will have an effect on new extensions. Clears any previously created singletons through {@link singleton()} to avoid side-effects from stale extension information.
in Extensible at line 264
static array
get_extensions(string $class = null, bool $includeArgumentString = false)
in Extensible at line 298
static array|null
get_extra_config_sources(string $class = null)
Get extra config sources for this class
in Extensible at line 359
static bool
has_extension(string $classOrExtension, string $requiredExtension = null, boolean $strict = false)
Return TRUE if a class has a specified extension.
This supports backwards-compatible format (static Object::has_extension($requiredExtension)) and new format ($object->has_extension($class, $requiredExtension))
in Extensible at line 395
array
invokeWithExtensions(string $method, mixed $arguments)
Calls a method if available on both this object and all applied {@link Extensions}, and then attempts to merge all results into an array
in Extensible at line 424
array
extend(string $method, mixed $arguments)
Run the given function on all of this object's extensions. Note that this method originally returned void, so if you wanted to return results, you're hosed
Currently returns an array, with an index resulting every time the function is called. Only adds returns if they're not NULL, to avoid bogus results from methods just defined on the parent extension. This is important for permission-checks through extend, as they use min() to determine if any of the returns is FALSE. As min() doesn't do type checking, an included NULL return would fail the permission checks.
The extension methods are defined during {@link __construct()} in {@link defineMethods()}.
in Extensible at line 465
Extension|null
getExtensionInstance(string $extension)
Get an extension instance attached to this object by name.
in Extensible at line 494
bool
hasExtension(string $extension)
Returns TRUE if this object instance has a specific extension applied in {@link $extension_instances}. Extension instances are initialized at constructor time, meaning if you use {@link add_extension()} afterwards, the added extension will just be added to new instances of the extended class. Use the static method {@link has_extension()} to check if a class (not an instance) has a specific extension.
Caution: Don't use singleton(
in Extensible at line 508
Extension[]
getExtensionInstances()
Get all extension instances for this specific object instance.
See {@link get_extensions()} to get all applied extension classes for this class (not the instance).
This method also provides lazy-population of the extension_instances property.
in Injectable at line 26
static Injectable
create(array $args)
An implementation of the factory method, allows you to create an instance of a class
This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.
This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create('SiteTree'); $list = SiteTree::get();
in Injectable at line 43
static Injectable
singleton(string $class = null)
Creates a class instance by the "singleton" design pattern.
It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).
in Configurable at line 20
static Config_ForClass
config()
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .
....).
in Configurable at line 32
mixed
stat(string $name)
deprecated
deprecated 5.0 Use ->config()->get() instead
Get inherited config value
in Configurable at line 44
mixed
uninherited(string $name)
Gets the uninherited value for the given config option
in Configurable at line 57
$this
set_stat(string $name, mixed $value)
deprecated
deprecated 5.0 Use ->config()->set() instead
Update the config value for a given property
at line 75
__construct(string $name = null, array|string $allowed = array())
Create a new image manipulation
in ViewableData at line 106
bool
__isset(string $property)
Check if a field exists on this object or its failover.
Note that, unlike the core isset() implementation, this will return true if the property is defined and set to null.
in DBComposite at line 63
mixed
__get(string $property)
Get the value of a property/field on this object. This will check if a method called get{$property} exists, then check if a field is available using {@link ViewableData::getField()}, then fall back on a failover object.
in DBComposite at line 52
__set(string $property, mixed $value)
Set a property/field on this object. This will check for the existence of a method called set{$property}, then use the {@link ViewableData::setField()} method.
in ViewableData at line 167
setFailover(ViewableData $failover)
Set a failover object to attempt to get data from if it is not present on this object.
in ViewableData at line 183
ViewableData|null
getFailover()
Get the current failover object if set
in DBComposite at line 255
bool
hasField(string $field)
Check if a field exists on this object. This should be overloaded in child classes.
in DBComposite at line 234
mixed
getField(string $field)
get value of a single composite field
at line 518
$this
setField(string $field, mixed $value, bool $markChanged = true)
Set value of a single composite field
in ViewableData at line 232
defineMethods()
Add methods from the {@link ViewableData::$failover} object, as well as wrapping any methods prefixed with an underscore into a {@link ViewableData::cachedCall()}.
in ViewableData at line 258
ViewableData_Customised
customise(array|ViewableData $data)
Merge some arbitrary data in with this object. This method returns a {@link ViewableData_Customised} instance with references to both this and the new custom data.
Note that any fields you specify will take precedence over the fields on this object.
at line 360
bool
exists()
Composite field defaults to exists only if all fields have values
in DBField at line 610
string
__toString()
in ViewableData at line 297
ViewableData
getCustomisedObj()
in ViewableData at line 305
setCustomisedObj(ViewableData $object)
in DBComposite at line 319
string
castingHelper(string $field)
Return the "casting helper" (a piece of PHP code that when evaluated creates a casted value object) for a field on this object. This helper will be a subclass of DBField.
in ViewableData at line 352
string
castingClass(string $field)
Get the class name a field on this object will be casted to.
in ViewableData at line 365
string
escapeTypeForField(string $field)
Return the string-format type for the given field.
in ViewableData at line 389
DBHTMLText
renderWith(string|array|SSViewer $template, array $customFields = null)
Render this object into the template, and get the result as a string. You can pass one of the following as the $template parameter: - a template name (e.g. Page) - an array of possible template names - the first valid one will be used - an SSViewer instance
in ViewableData at line 471
Object|DBField
obj(string $fieldName, array $arguments = [], bool $cache = false, string $cacheName = null)
Get the value of a field on this object, automatically inserting the value into any available casting objects that have been specified.
in ViewableData at line 516
Object|DBField
cachedCall(string $field, array $arguments = [], string $identifier = null)
A simple wrapper around {@link ViewableData::obj()} that automatically caches the result so it can be used again without re-running the method.
in ViewableData at line 530
bool
hasValue(string $field, array $arguments = [], bool $cache = true)
Checks if a given method/field has a valid value. If the result is an object, this will return the result of the exists method, otherwise will check if the result is not just an empty paragraph tag.
in ViewableData at line 545
string
XML_val(string $field, array $arguments = [], bool $cache = false)
Get the string value of a field on this object that has been suitable escaped to be inserted directly into a template.
in ViewableData at line 558
array
getXMLValues(array $fields)
Get an array of XML-escaped values by field name
in ViewableData at line 579
ArrayIterator
getIterator()
Return a single-item iterator so you can iterate over the fields of a single record.
This is useful so you can use a single record inside a <% control %> block in a template - and then use to access individual fields on this object.
in ViewableData at line 592
array
getViewerTemplates(string $suffix = '')
Find appropriate templates for SSViewer to use to render this object
in ViewableData at line 603
ViewableData
Me()
When rendering some objects it is necessary to iterate over the object being rendered, to do this, you need access to itself.
in ViewableData at line 620
string
ThemeDir()
deprecated
deprecated 4.0.0:5.0.0 Use $resourcePath or $resourceURL template helpers instead
Return the directory if the current active theme (relative to the site root).
This method is useful for things such as accessing theme images from your template without hardcoding the theme
page - e.g. .
This method should only be used when a theme is currently active. However, it will fall over to the current project directory.
in ViewableData at line 647
string
CSSClasses(string $stopAtClass = self::class)
Get part of the current classes ancestry to be used as a CSS class.
This method returns an escaped string of CSS classes representing the current classes ancestry until it hits a stop point - e.g. "Page DataObject ViewableData".
in ViewableData at line 676
ViewableData_Debugger
Debug()
Return debug information about this object that can be rendered into a template
in DBField at line 164
static DBField
create_field(string $spec, mixed $value, string $name = null, mixed $args)
Create a DBField object that's not bound to any particular field.
Useful for accessing the classes behaviour for other parts of your code.
in DBField at line 192
$this
setName(string $name)
Set the name of this field.
The name should never be altered, but it if was never given a name in the first place you can set a name.
If you try an alter the name a warning will be thrown.
in DBField at line 209
string
getName()
Returns the name of this field.
at line 338
mixed
getValue()
Returns the value of this field.
in DBComposite at line 180
$this
setValue(mixed $value, DataObject|array $record = null, bool $markChanged = true)
Assign the given value.
If $record is assigned to a dataobject, this field becomes a loose wrapper over the records on that object instead.
{see ViewableData::obj}
in DBField at line 251
mixed
getDefaultValue()
Get default value assigned at the DB level
in DBField at line 262
$this
setDefaultValue(mixed $defaultValue)
Set default value to use at the DB level
in DBField at line 274
$this
setOptions(array $options = [])
Update the optional parameters for this field
in DBField at line 285
array
getOptions()
Get optional parameters for this field
in DBField at line 290
$this
setIndexType($type)
Set the desired index type to use
in DBField at line 304
string|bool
getIndexType()
Return the desired index type to use. Will return false if the field instance should not be indexed.
in DBField at line 341
mixed
prepValueForDB($value)
Return the transformed value ready to be sent to the database. This value will be escaped automatically by the prepared query processor, so it should not be escaped or quoted at all.
in DBComposite at line 78
writeToManipulation(array $manipulation)
Write all nested fields into a manipulation
in DBComposite at line 95
addToQuery(SQLSelect $query)
Add all columns which are defined through {@link requireField()} and {@link $composite_db}, or any additional SQL that is required to get to these columns. Will mostly just write to the {@link SQLSelect->select} array.
in DBField at line 393
$this
setTable(string $tableName)
Assign this DBField to a table
in DBField at line 404
string|null
getTable()
Get the table this field belongs to, if assigned
in DBField at line 414
string
forTemplate()
Determine 'default' casting for this field.
in DBField at line 425
string
HTMLATT()
Gets the value appropriate for a HTML attribute string
in DBField at line 435
string
URLATT()
urlencode this string
in DBField at line 445
string
RAWURLATT()
rawurlencode this string
in DBField at line 455
string
ATT()
Gets the value appropriate for a HTML attribute string
in DBField at line 466
mixed
RAW()
Gets the raw value for this field.
Note: Skips processors implemented via forTemplate()
in DBField at line 476
string
JS()
Gets javascript string literal value
in DBField at line 486
string
JSON()
Return JSON encoded value
in DBField at line 496
string
HTML()
Alias for {see XML()}
at line 129
string
XML()
Return a html5 tag of the appropriate for this file (normally img or a)
in DBField at line 516
string
CDATA()
Safely escape for XML string
in DBField at line 527
mixed
nullValue()
Returns the value to be set in the database to blank this field.
Usually it's a choice between null, 0, and ''
in DBComposite at line 219
saveInto(DataObject $dataObject)
Saves this field to the given data object.
at line 119
FormField
scaffoldFormField(string $title = null, array $params = null)
Returns a FormField instance used as a default for form scaffolding.
Used by {@link SearchContext}, {@link ModelAdmin}, {@link DataObject::scaffoldFormFields()}
in DBField at line 572
FormField
scaffoldSearchField(string $title = null)
Returns a FormField instance used as a default for searchform scaffolding.
Used by {@link SearchContext}, {@link ModelAdmin}, {@link DataObject::scaffoldFormFields()}.
in DBField at line 587
SearchFilter
defaultSearchFilter(string $name = null)
in DBComposite at line 160
requireField()
Add the field to the underlying database.
in DBField at line 599
debug()
in DBField at line 618
array
getArrayValue()
in DBField at line 627
$this
setArrayValue(array $value)
in DBField at line 638
string|array
getSchemaValue()
Get formfield schema value
in DBComposite at line 329
array
getIndexSpecs()
Returns the index specifications for the field instance, for example:
[
'type' => 'unique',
'columns' => ['FieldName']
]
in DBComposite at line 343
boolean
scalarValueOnly()
Whether or not this DBField only accepts scalar values.
Composite DBFields can override this method and return false
so they can accept arrays of values.
in DBComposite at line 116
array
compositeDatabaseFields()
Return array in the format of {@link $composite_db}.
Used by {@link DataObject->hasOwnDatabaseField()}.
in DBComposite at line 126
isChanged()
Returns true if this composite field has changed.
For fields bound to a DataObject, this will be cleared when the DataObject is written.
in DBComposite at line 214
bindTo(DataObject $dataObject)
Bind this field to the dataobject, and set the underlying table to that of the owner
in DBComposite at line 303
DBField|null
dbObject(string $field)
Get a db object for the named field
in ImageManipulation at line 67
$this
setAllowGeneration(bool $allow)
Set whether image resizes are allowed
in ImageManipulation at line 78
bool
getAllowGeneration()
Check if resizes are allowed
in ImageManipulation at line 88
DBFile
existingOnly()
Return clone of self which promises to only return existing thumbnails
at line 260
string
getString()
at line 250
resource
getStream()
at line 270
string
getURL(bool $grant = true)
at line 310
string
getAbsoluteURL()
Get the absolute URL to this resource
at line 318
array|null
getMetaData()
Get metadata for this file
at line 328
string
getMimeType()
Get mime type
at line 390
int
getAbsoluteSize()
Return file size in bytes.
at line 370
string
getFilename()
Get value of filename
at line 375
string
getHash()
Get value of hash
at line 380
string
getVariant()
Get value of variant
at line 87
bool
getIsImage()
Determine if a valid non-empty image exists behind this asset, which is a format compatible with image manipulations
in ImageManipulation at line 241
AssetContainer
Pad(int $width, int $height, string $backgroundColor = 'FFFFFF', int $transparencyPercent)
Fit image to specified dimensions and fill leftover space with a solid colour (default white). Use in templates with $Pad.
in ImageManipulation at line 262
AssetContainer
Resampled()
Forces the image to be resampled, if possible
in ImageManipulation at line 285
updateURL(string $url)
Update the url to point to a resampled version if forcing
in ImageManipulation at line 314
AssetContainer
ResizedImage(int $width, int $height)
Generate a resized copy of this image with the given width & height.
This can be used in templates with $ResizedImage but should be avoided, as it's the only image manipulation function which can skew an image.
in ImageManipulation at line 334
AssetContainer
Fit(int $width, int $height)
Scale image proportionally to fit within the specified bounds
in ImageManipulation at line 375
AssetContainer
FitMax(int $width, int $height)
Proportionally scale down this image if it is wider or taller than the specified dimensions.
Similar to Fit but without up-sampling. Use in templates with $FitMax.
in ImageManipulation at line 419
AssetContainer
ScaleWidth(int $width)
Scale image proportionally by width. Use in templates with $ScaleWidth.
in ImageManipulation at line 439
AssetContainer
ScaleMaxWidth(int $width)
Proportionally scale down this image if it is wider than the specified width.
Similar to ScaleWidth but without up-sampling. Use in templates with $ScaleMaxWidth.
in ImageManipulation at line 457
AssetContainer
ScaleHeight(int $height)
Scale image proportionally by height. Use in templates with $ScaleHeight.
in ImageManipulation at line 477
AssetContainer
ScaleMaxHeight(int $height)
Proportionally scale down this image if it is taller than the specified height.
Similar to ScaleHeight but without up-sampling. Use in templates with $ScaleMaxHeight.
in ImageManipulation at line 498
AssetContainer
CropWidth(int $width)
Crop image on X axis if it exceeds specified width. Retain height.
Use in templates with $CropWidth. Example: $Image.ScaleHeight(100).$CropWidth(100)
in ImageManipulation at line 520
AssetContainer
CropHeight(int $height)
Crop image on Y axis if it exceeds specified height. Retain width.
Use in templates with $CropHeight. Example: $Image.ScaleWidth(100).CropHeight(100)
in ImageManipulation at line 544
AssetContainer
FillMax(int $width, int $height)
Crop this image to the aspect ratio defined by the specified width and height, then scale down the image to those dimensions if it exceeds them.
Similar to Fill but without up-sampling. Use in templates with $FillMax.
in ImageManipulation at line 584
AssetContainer
Fill(int $width, int $height)
Resize and crop image to fill specified dimensions.
Use in templates with $Fill
in ImageManipulation at line 604
AssetContainer
Quality(int $quality)
Set the quality of the resampled image
in ImageManipulation at line 618
DBFile|DBHTMLText
CMSThumbnail()
Default CMS thumbnail
in ImageManipulation at line 630
AssetContainer|DBHTMLText
StripThumbnail()
Generates a thumbnail for use in the gridfield view
in ImageManipulation at line 642
AssetContainer|DBHTMLText
PreviewThumbnail()
Get preview for this file
in ImageManipulation at line 655
AssetContainer
Thumbnail(int $width, int $height)
Default thumbnail generation for Images
in ImageManipulation at line 669
AssetContainer|DBHTMLText
ThumbnailIcon(int $width, int $height)
Thumbnail generation for all file types.
Resizes images, but returns an icon <img />
tag if this is not a resizable image
in ImageManipulation at line 679
DBHTMLText
IconTag()
Get HTML for img containing the icon for this file
in ImageManipulation at line 698
string
ThumbnailURL(int $width, int $height)
Get URL to thumbnail of the given size.
May fallback to default icon
in ImageManipulation at line 714
string
getIcon()
Return the relative URL of an icon for the file type, based on the {@link appCategory()} value.
Images are searched for in "framework/images/app_icons/".
in ImageManipulation at line 726
Image_Backend
getImageBackend()
Get Image_Backend instance for this image
in ImageManipulation at line 751
$this
setImageBackend(Image_Backend $backend)
in ImageManipulation at line 762
int
getWidth()
Get the width of this image.
in ImageManipulation at line 776
int
getHeight()
Get the height of this image.
in ImageManipulation at line 790
int
getOrientation()
Get the orientation of this image.
in ImageManipulation at line 810
boolean
isSize(int $width, int $height)
Determine if this image is of the specified size
in ImageManipulation at line 821
boolean
isWidth(int $width)
Determine if this image is of the specified width
in ImageManipulation at line 833
boolean
isHeight(int $height)
Determine if this image is of the specified width
in ImageManipulation at line 847
DBFile
manipulateImage(string $variant, callable $callback)
Wrapper for manipulate that passes in and stores Image_Backend objects instead of tuples
in ImageManipulation at line 917
DBFile
manipulate(string $variant, callable $callback)
Generate a new DBFile instance using the given callback if it hasn't been created yet, or return the existing one if it has.
in ImageManipulation at line 994
string
variantName($format, $arg = null)
Name a variant based on a format with arbitrary parameters
in ImageManipulation at line 1013
array|null
variantParts($variantName)
Reverses {@link variantName()}.
The "format" part of a variant name is a method name on the owner of this trait. For legacy reasons, there's no delimiter between this part, and the encoded arguments. This means we have to use a whitelist of "known formats", based on methods available on the {@link Image} class as the "main" user of this trait. This class is commonly decorated with additional manipulation methods through {@link DataExtension}.
at line 139
string
getTag()
Return a html5 tag of the appropriate for this file (normally img or a)
at line 153
string
getFrontendTemplate()
Determine the template to render as on the frontend
at line 175
string
getBasename()
Get trailing part of filename
at line 188
string
getExtension()
Get file extension
at line 201
string
getTitle()
Alt title for this
at line 211
array
setFromLocalFile(string $path, string $filename = null, string $hash = null, string $variant = null, array $config = array())
Assign a local file to the backend.
at line 224
array
setFromStream(resource $stream, string $filename, string $hash = null, string $variant = null, array $config = array())
Assign a stream to the backend
at line 237
array
setFromString(string $data, string $filename, string $hash = null, string $variant = null, array $config = array())
Assign a set of data to the backend
at line 286
string
Link()
Return URL for this image. Alias for getURL()
at line 298
string
getSourceURL(bool $grant = true)
Get URL, but without resampling.
Note that this will return the url even if the file does not exist.
at line 350
string
getVisibility()
Determine visibility of the given file
at line 405
$this
setOriginal(AssetContainer $original)
Customise this object with an "original" record for getting other customised fields
at line 418
array
getAllowedCategories()
Get list of allowed file categories
at line 429
$this
setAllowedCategories(array|string $categories)
Assign allowed categories
at line 500
bool
validate(ValidationResult $result, string $filename = null)
Hook to validate this record against a validation result
at line 534
string|false
getSize()
Returns the size of the file type in an appropriate format.
at line 543
bool
deleteFile()
Delete a file (and all variants).
{see AssetStore::delete()}
at line 554
publishFile()
Publicly expose the file (and all variants) identified by the given filename and hash {see AssetStore::publish}
at line 563
protectFile()
Protect a file (and all variants) from public access, identified by the given filename and hash.
{see AssetStore::protect()}
at line 572
grantFile()
Ensures that access to the specified protected file is granted for the current user.
If this file is currently in protected mode, the asset store will ensure the returned asset for the duration of the current session / user. This will have no effect if the file is in published mode. This will not grant access to users other than the owner of the current session. Does not require a member to be logged in.
at line 581
revokeFile()
Revoke access to the given file for the current user.
Note: This will have no effect if the given file is public
at line 590
bool
canViewFile()
Check if the current user can view the given file.
at line 598
string
renameFile(string $newName)
Rename to new filename, and point to new file
at line 612
string
copyFile(string $newName)
Copy to new filename.
This will not automatically point to the new file (as renameFile() does)