Skip to content

Commit 9123872

Browse files
Merge pull request #34 from pixelpoems/Update_AddableCustomCMSFrameworks
Make Custom CMSFrameworks usable
2 parents cf62518 + 8901328 commit 9123872

3 files changed

Lines changed: 16 additions & 4 deletions

File tree

src/CSSFramework/BootstrapCSSFramework.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
final class BootstrapCSSFramework implements CSSFrameworkInterface
99
{
10+
public static string $framework_key = 'bootstrap';
11+
1012
private BaseElement $baseElement;
1113

1214
private const COLUMN_CLASSNAME = 'col';

src/CSSFramework/BulmaCSSFramework.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
final class BulmaCSSFramework implements CSSFrameworkInterface
99
{
10+
public static string $framework_key = 'bulma';
11+
1012
private BaseElement $baseElement;
1113

1214
private const COLUMN_CLASSNAME = 'column';

src/Extensions/BaseElementExtension.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace WeDevelop\ElementalGrid\Extensions;
44

5+
use SilverStripe\Core\ClassInfo;
56
use SilverStripe\Forms\CheckboxField;
67
use SilverStripe\Forms\DropdownField;
78
use SilverStripe\Forms\FieldGroup;
@@ -25,10 +26,17 @@ public function setOwner($owner)
2526
{
2627
parent::setOwner($owner);
2728

28-
match (ElementalConfig::getCSSFrameworkName()) {
29-
'bulma' => $this->cssFramework = new BulmaCSSFramework($this->owner),
30-
default => $this->cssFramework = new BootstrapCSSFramework($this->owner),
31-
};
29+
$frameworks = ClassInfo::implementorsOf(CSSFrameworkInterface::class);
30+
foreach ($frameworks as $framework) {
31+
if ($framework::$framework_key === ElementalConfig::getCSSFrameworkName()) {
32+
$this->cssFramework = new $framework($this->owner);
33+
}
34+
}
35+
if(!$this->cssFramework) {
36+
$this->cssFramework = new BootstrapCSSFramework($this->owner);
37+
}
38+
39+
$this->owner->extend('updateCSSFramework', $this->cssFramework);
3240
}
3341

3442
public function populateDefaults(): void

0 commit comments

Comments
 (0)