Skip to content

Commit 86cf25d

Browse files
authored
Merge pull request #16 from jack-nzl/master
Silverstripe 6 compatibility upgrade
2 parents 08201dc + 9c3c74b commit 86cf25d

4 files changed

Lines changed: 65 additions & 42 deletions

File tree

composer.json

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
"description": "Provides a kitchen sink template useful for theme development.",
44
"type": "silverstripe-vendormodule",
55
"homepage": "https://github.com/benmanu/silverstripe-simple-styleguide",
6-
"keywords": ["silverstripe", "styleguide"],
6+
"keywords": [
7+
"silverstripe",
8+
"styleguide"
9+
],
710
"license": "BSD-3-Clause",
811
"authors": [
912
{
@@ -15,25 +18,46 @@
1518
"issues": "https://github.com/benmanu/silverstripe-simple-styleguide/issues"
1619
},
1720
"require": {
18-
"silverstripe/cms": "^5.0"
21+
"silverstripe/recipe-cms": "^6",
22+
"silverstripe/subsites": "^4.0"
1923
},
2024
"require-dev": {
21-
"phpunit/phpunit": "^9.6"
25+
"phpunit/phpunit": "^11"
2226
},
2327
"extra": {
2428
"installer-name": "simple-styleguide",
25-
"expose": [
26-
"css",
27-
"js",
28-
"images"
29-
]
30-
},
31-
"autoload": {
32-
"psr-4": {
33-
"BenManu\\SimpleStyleguide\\": "src/",
34-
"BenManu\\SimpleStyleguide\\Tests\\": "tests/"
35-
}
36-
},
37-
"prefer-stable": true,
38-
"minimum-stability": "dev"
29+
"expose": [
30+
"css",
31+
"js",
32+
"images"
33+
],
34+
"project-files-installed": [
35+
".htaccess",
36+
"app/.htaccess",
37+
"app/_config/mimevalidator.yml",
38+
"app/_config/mysite.yml",
39+
"app/src/Page.php",
40+
"app/src/PageController.php"
41+
],
42+
"public-files-installed": [
43+
".htaccess",
44+
"index.php",
45+
"web.config"
46+
]
47+
},
48+
"autoload": {
49+
"psr-4": {
50+
"BenManu\\SimpleStyleguide\\": "src/",
51+
"BenManu\\SimpleStyleguide\\Tests\\": "tests/"
52+
}
53+
},
54+
"prefer-stable": true,
55+
"minimum-stability": "dev",
56+
"config": {
57+
"allow-plugins": {
58+
"composer/installers": true,
59+
"silverstripe/recipe-plugin": true,
60+
"silverstripe/vendor-plugin": true
61+
}
62+
}
3963
}

src/SimpleStyleguideController.php

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
use SilverStripe\Control\Director;
77
use SilverStripe\Core\Manifest\ModuleResourceLoader;
88
use SilverStripe\Core\Injector\Injector;
9+
use SilverStripe\Model\List\ArrayList;
910
use SilverStripe\Security\Permission;
1011
use SilverStripe\Security\Security;
1112
use SilverStripe\CMS\Model\SiteTree;
1213
use SilverStripe\CMS\Controllers\ModelAsController;
1314
use SilverStripe\View\Requirements;
14-
use SilverStripe\View\ArrayData;
15+
use SilverStripe\Model\ArrayData;
1516
use SilverStripe\ORM\FieldType\DBField;
16-
use SilverStripe\ORM\ArrayList;
1717
use SilverStripe\Forms\FieldList;
1818
use SilverStripe\Forms\TextField;
1919
use SilverStripe\Forms\NumericField;
@@ -23,10 +23,12 @@
2323
use SilverStripe\Forms\CheckboxSetField;
2424
use SilverStripe\Forms\OptionsetField;
2525
use SilverStripe\Forms\FormAction;
26-
use SilverStripe\Forms\RequiredFields;
2726
use SilverStripe\Forms\Form;
2827
use SilverStripe\Assets\File;
28+
use SilverStripe\Core\Config\Config;
29+
use SilverStripe\Forms\Validation\RequiredFieldsValidator;
2930
use SilverStripe\Subsites\Model\Subsite;
31+
use SilverStripe\View\SSViewer;
3032

3133
/**
3234
* @package simple-styleguide
@@ -65,7 +67,14 @@ public function index()
6567

6668
// If the subsite module is installed then set the theme based on the current subsite
6769
if (class_exists(Subsite::class) && Subsite::currentSubsite()) {
68-
Config::inst()->update('SSViewer', 'theme', Subsite::currentSubsite()->Theme);
70+
Config::modify()->set(
71+
SSViewer::class,
72+
'theme',
73+
[
74+
Subsite::currentSubsite()->Theme,
75+
'$default'
76+
]
77+
);
6978
}
7079

7180
$page = Injector::inst()->create(SiteTree::class);
@@ -83,11 +92,10 @@ public function index()
8392

8493
/**
8594
* Provides access to any custom function on the controller for use on the template output.
86-
* @return ArrayData
8795
*/
88-
public function getStyleguideData()
96+
public function getStyleguideData(): ArrayData
8997
{
90-
$data = new ArrayData([
98+
$data = ArrayData::create([
9199
'Title' => 'Styleguide',
92100
'Message' => DBField::create_field(
93101
'HTMLText',
@@ -107,9 +115,8 @@ public function getStyleguideData()
107115

108116
/**
109117
* Return a form with fields to match rendering through controller/template output.
110-
* @return Form
111118
*/
112-
public function getTestForm()
119+
public function getTestForm(): Form
113120
{
114121
$fields = FieldList::create(
115122
TextField::create('SimpleText', 'Simple Text Field'),
@@ -144,14 +151,14 @@ public function getTestForm()
144151
FormAction::create('doForm', 'Submit')
145152
);
146153

147-
$required = new RequiredFields(
154+
$required = RequiredFieldsValidator::create(
148155
'SimpleText',
149156
'Email',
150157
'Checkbox',
151158
'Dropdown'
152159
);
153160

154-
$form = new Form($this, 'TestForm', $fields, $actions, $required);
161+
$form = Form::create($this, 'TestForm', $fields, $actions, $required);
155162
$form->setMessage('This is a form wide message. See the alerts component for site wide messages.', 'warning');
156163

157164
$this->extend('updateForm', $form);
@@ -161,9 +168,8 @@ public function getTestForm()
161168

162169
/**
163170
* Emulate an HTMLEditorField output useful for testing shortcodes and output extensions etc.
164-
* @return HTMLText
165171
*/
166-
public function getContent()
172+
public function getContent(): DBField
167173
{
168174
$content = '';
169175

@@ -181,10 +187,7 @@ public function getContent()
181187
return DBField::create_field('HTMLText', $content);
182188
}
183189

184-
/**
185-
* @return ArrayList
186-
*/
187-
public function getColorSwatches()
190+
public function getColorSwatches(): ArrayList
188191
{
189192
$list = ArrayList::create();
190193
$colors = $this->config()->color_swatches;
@@ -200,10 +203,7 @@ public function getColorSwatches()
200203
return $list;
201204
}
202205

203-
/**
204-
* @return string
205-
*/
206-
public function getPlaceholderImageURL()
206+
public function getPlaceholderImageURL(): ?string
207207
{
208208
$url = $this->config()->placeholder_image_url;
209209
$url = ModuleResourceLoader::singleton()->resolveURL($url);

tests/SimpleStyleguideControllerTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use BenManu\SimpleStyleguide\SimpleStyleguideController;
66
use SilverStripe\Dev\SapphireTest;
7-
use SilverStripe\Core\Config\Config;
87

98
/**
109
* @package simple-styleguide
@@ -84,7 +83,7 @@ public function testGetColorSwatches()
8483
];
8584

8685
SimpleStyleguideController::config()->remove('color_swatches');
87-
SimpleStyleguideController::config()->update('color_swatches', $swatchesFixture);
86+
SimpleStyleguideController::config()->color_swatches = $swatchesFixture;
8887

8988
$swatches = $controller->getColorSwatches();
9089

tests/SimpleStyleguideControllerTest_data.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
namespace BenManu\SimpleStyleguide;
44

5-
use SilverStripe\ORM\DataExtension;
5+
use SilverStripe\Core\Extension;
66
use SilverStripe\Dev\TestOnly;
77

8-
class SimpleStyleguideControllerTest_data extends DataExtension implements TestOnly {
8+
class SimpleStyleguideControllerTest_data extends Extension implements TestOnly {
99
public function updateStyleguideData($data)
1010
{
1111
$data->setField('CustomData', 'Test');

0 commit comments

Comments
 (0)