Make featured images directory configurable

This commit is contained in:
Tim Burt 2019-07-03 12:21:36 +01:00 committed by Robbie Averill
parent a9a7c21751
commit dd18648ed1
3 changed files with 27 additions and 0 deletions

View File

@ -0,0 +1,13 @@
## Configuring featured images
By default, featured images for the blog are uploaded to the default SilverStripe location.
If you prefer, you can specify a directory into which featured images will be uploaded by adding the following to your project's config:
```yaml
SilverStripe\Blog\Model\BlogPost:
featured_images_directory: 'blog-images'
```
replacing 'blog-images' with the name of the directory you wish to use.

View File

@ -5,6 +5,7 @@
* [Configuring blog when on large websites](configuring-large-websites.md) * [Configuring blog when on large websites](configuring-large-websites.md)
* [Configuring widgets](configuring-widgets.md) * [Configuring widgets](configuring-widgets.md)
* [Configuring pagination](configuring-pagination.md) * [Configuring pagination](configuring-pagination.md)
* [Configuring featured image uploads](configuring-featured-images.md)
## CMS user help ## CMS user help
* [User guide](userguide/index.md) * [User guide](userguide/index.md)

View File

@ -170,6 +170,14 @@ class BlogPost extends Page
*/ */
private static $minutes_to_read_wpm = 200; private static $minutes_to_read_wpm = 200;
/**
* Sets the upload directory for featured images to help keep your files organised
*
* @config
* @var string
*/
private static $featured_images_directory = null;
/** /**
* Determine the role of the given member. * Determine the role of the given member.
* *
@ -236,6 +244,11 @@ class BlogPost extends Page
$uploadField = UploadField::create('FeaturedImage', _t(__CLASS__ . '.FeaturedImage', 'Featured Image')); $uploadField = UploadField::create('FeaturedImage', _t(__CLASS__ . '.FeaturedImage', 'Featured Image'));
$uploadField->getValidator()->setAllowedExtensions(['jpg', 'jpeg', 'png', 'gif']); $uploadField->getValidator()->setAllowedExtensions(['jpg', 'jpeg', 'png', 'gif']);
$uploadDirectory = $this->config()->get('featured_images_directory');
if ($uploadDirectory != '') {
$uploadField->setFolderName($uploadDirectory);
}
/** /**
* @var FieldList $fields * @var FieldList $fields
*/ */