Skip to content

Commit 731e95f

Browse files
Merge pull request #234 from creative-commoners/pulls/1/new-thing
NEW Add EmployeeProfileImageJpgOnlyExtension
2 parents 9a44e46 + 427d90c commit 731e95f

File tree

4 files changed

+57
-6
lines changed

4 files changed

+57
-6
lines changed

code/Company.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,11 @@ class Company extends DataObject
9595

9696
public function getCMSFields()
9797
{
98-
$fields = parent::getCMSFields();
99-
$fields->addFieldToTab('Root.Main', $uploadField = UploadField::create('GroupPhotos'));
100-
$uploadField->setAllowedFileCategories('image');
101-
return $fields;
98+
$this->beforeUpdateCMSFields(function ($fields) {
99+
$fields->addFieldToTab('Root.Main', $uploadField = UploadField::create('GroupPhotos'));
100+
$uploadField->setAllowedFileCategories('image');
101+
});
102+
return parent::getCMSFields();
102103
}
103104

104105
public function getCMSValidator()
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace SilverStripe\FrameworkTest\Extension;
4+
5+
use SilverStripe\Core\Extension;
6+
use SilverStripe\FrameworkTest\Model\Company;
7+
use SilverStripe\Forms\FieldList;
8+
use SilverStripe\AssetAdmin\Forms\UploadField;
9+
10+
/**
11+
* @extends Extension<Company>
12+
*/
13+
class CompanyGroupPhotoJpgOnlyExtension extends Extension
14+
{
15+
public function updateCMSFields(FieldList $fields)
16+
{
17+
/** @var UploadField $field */
18+
$field = $fields->dataFieldByName('GroupPhotos');
19+
$field->setAllowedExtensions(['jpg']);
20+
}
21+
}

code/Employee.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,18 @@ class Employee extends DataObject
8989

9090
private static $table_name = 'Employee';
9191

92+
/**
93+
* Use basic scaffold settings (no tabs, etc)
94+
*/
95+
private static array $scaffold_cms_fields_settings = [
96+
'includeRelations' => false,
97+
'tabbed' => false,
98+
'ajaxSafe' => false,
99+
];
100+
92101
public function getCMSFields()
93102
{
94-
// Use basic scaffolder (no tabs)
95-
$fields = $this->scaffoldFormFields();
103+
$fields = parent::getCMSFields();
96104
$fields->replaceField('Email', EmailField::create('Email'));
97105
$fields->push(new NumericField('ManyMany[YearStart]', 'Year started (3.1, many-many only)'));
98106
$fields->push(new TextField('ManyMany[Role]', 'Role (3.1, many-many only)'));
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace SilverStripe\FrameworkTest\Extension;
4+
5+
use SilverStripe\Core\Extension;
6+
use SilverStripe\FrameworkTest\Model\Employee;
7+
use SilverStripe\Forms\FieldList;
8+
use SilverStripe\AssetAdmin\Forms\UploadField;
9+
10+
/**
11+
* @extends Extension<Employee>
12+
*/
13+
class EmployeeProfileImageJpgOnlyExtension extends Extension
14+
{
15+
public function updateCMSFields(FieldList $fields)
16+
{
17+
/** @var UploadField $field */
18+
$field = $fields->dataFieldByName('ProfileImage');
19+
$field->setAllowedExtensions(['jpg']);
20+
}
21+
}

0 commit comments

Comments
 (0)