CMSNicetiesMemberExtension::onBeforeWrite()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 10
1
<?php
2
3
namespace Sunnysideup\CMSNiceties\Extensions;
4
5
use SilverStripe\Core\Config\Config;
6
use SilverStripe\Forms\FieldList;
7
use SilverStripe\Core\Extension;
8
9
/**
10
 * Class \Sunnysideup\CMSNiceties\Extensions\CMSNicetiesMemberExtension
11
 *
12
 * @property Member|CMSNicetiesMemberExtension $owner
13
 */
14
class CMSNicetiesMemberExtension extends Extension
15
{
16
    private static $fix_locales = [
17
        'af_ZA' => 'en_GB',
18
    ];
19
20
    public function onBeforeWrite()
21
    {
22
        $owner = $this->getOwner();
23
        $localeFixes = Config::inst()->get(self::class, 'fix_locales') ?: [];
24
        $owner->Locale = $localeFixes[$owner->Locale] ?? $owner->Locale;
25
    }
26
27
    /**
28
     * Update Fields
29
     */
30
    public function updateCMSFields(FieldList $fields)
31
    {
32
        $owner = $this->getOwner();
33
        $fields->removeByName('FailedLoginCount');
34
        if (!$owner->exists()) {
35
            //ugly-ish but works. Defaults and populateDefaults don't.
36
            $owner->Locale = "en_GB";
37
        }
38
    }
39
}
40