mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
Merge pull request #3304 from kinglozzer/pulls/filefield-validator-shortcuts
Move validator “shortcut” methods from UploadField to FileField (fixes #3258)
This commit is contained in:
commit
2a76be490d
@ -206,4 +206,60 @@ class FileField extends FormField {
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Limit allowed file extensions. Empty by default, allowing all extensions.
|
||||
* To allow files without an extension, use an empty string.
|
||||
* See {@link File::$allowed_extensions} to get a good standard set of
|
||||
* extensions that are typically not harmful in a webserver context.
|
||||
* See {@link setAllowedMaxFileSize()} to limit file size by extension.
|
||||
*
|
||||
* @param array $rules List of extensions
|
||||
* @return $this
|
||||
*/
|
||||
public function setAllowedExtensions($rules) {
|
||||
$this->getValidator()->setAllowedExtensions($rules);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Limit allowed file extensions by specifying categories of file types.
|
||||
* These may be 'image', 'audio', 'mov', 'zip', 'flash', or 'doc'
|
||||
* See {@link File::$allowed_extensions} for details of allowed extensions
|
||||
* for each of these categories
|
||||
*
|
||||
* @param string $category Category name
|
||||
* @param string,... $categories Additional category names
|
||||
* @return $this
|
||||
*/
|
||||
public function setAllowedFileCategories($category) {
|
||||
$extensions = array();
|
||||
$knownCategories = File::config()->app_categories;
|
||||
|
||||
// Parse arguments
|
||||
$categories = func_get_args();
|
||||
if(func_num_args() === 1 && is_array(reset($categories))) {
|
||||
$categories = reset($categories);
|
||||
}
|
||||
|
||||
// Merge all categories into list of extensions
|
||||
foreach(array_filter($categories) as $category) {
|
||||
if(isset($knownCategories[$category])) {
|
||||
$extensions = array_merge($extensions, $knownCategories[$category]);
|
||||
} else {
|
||||
user_error("Unknown file category: $category", E_USER_ERROR);
|
||||
}
|
||||
}
|
||||
return $this->setAllowedExtensions($extensions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns list of extensions allowed by this field, or an empty array
|
||||
* if there is no restriction
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAllowedExtensions() {
|
||||
return $this->getValidator()->getAllowedExtensions();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -600,63 +600,6 @@ class UploadField extends FileField {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Limit allowed file extensions. Empty by default, allowing all extensions.
|
||||
* To allow files without an extension, use an empty string.
|
||||
* See {@link File::$allowed_extensions} to get a good standard set of
|
||||
* extensions that are typically not harmful in a webserver context.
|
||||
* See {@link setAllowedMaxFileSize()} to limit file size by extension.
|
||||
*
|
||||
* @param array $rules List of extensions
|
||||
* @return UploadField Self reference
|
||||
*/
|
||||
public function setAllowedExtensions($rules) {
|
||||
$this->getValidator()->setAllowedExtensions($rules);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Limit allowed file extensions by specifying categories of file types.
|
||||
* These may be 'image', 'audio', 'mov', 'zip', 'flash', or 'doc'
|
||||
* See {@link File::$allowed_extensions} for details of allowed extensions
|
||||
* for each of these categories
|
||||
*
|
||||
* @param string $category Category name
|
||||
* @param string,... $categories Additional category names
|
||||
* @return UploadField Self reference
|
||||
*/
|
||||
public function setAllowedFileCategories($category) {
|
||||
$extensions = array();
|
||||
$knownCategories = File::config()->app_categories;
|
||||
|
||||
// Parse arguments
|
||||
$categories = func_get_args();
|
||||
if(func_num_args() === 1 && is_array(reset($categories))) {
|
||||
$categories = reset($categories);
|
||||
}
|
||||
|
||||
// Merge all categories into list of extensions
|
||||
foreach(array_filter($categories) as $category) {
|
||||
if(isset($knownCategories[$category])) {
|
||||
$extensions = array_merge($extensions, $knownCategories[$category]);
|
||||
} else {
|
||||
user_error("Unknown file category: $category", E_USER_ERROR);
|
||||
}
|
||||
}
|
||||
return $this->setAllowedExtensions($extensions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns list of extensions allowed by this field, or an empty array
|
||||
* if there is no restriction
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAllowedExtensions() {
|
||||
return $this->getValidator()->getAllowedExtensions();
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine maximum number of files allowed to be attached.
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user