ExportAllFromModelAdminTrait   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 16
Bugs 0 Features 0
Metric Value
wmc 4
eloc 15
c 16
b 0
f 0
dl 0
loc 30
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A getExportFields() 0 25 4
1
<?php
2
3
namespace Sunnysideup\ExportAllFromModelAdmin;
4
5
use SilverStripe\Assets\Image;
6
use SilverStripe\Control\Director;
7
use SilverStripe\Core\Config\Config;
8
use SilverStripe\Core\Environment;
9
use SilverStripe\Core\Injector\Injector;
10
use SilverStripe\Security\Member;
11
use SilverStripe\Security\Permission;
12
use Sunnysideup\ExportAllFromModelAdmin\Api\AllFields;
13
14
trait ExportAllFromModelAdminTrait
15
{
16
17
    private array $exportFields = [];
18
19
    public function getExportFields(): array
20
    {
21
        if (Permission::check('ADMIN')) {
22
            //set to ten minutes
23
            Environment::setTimeLimitMax(600);
24
            $singleton = Injector::inst()->get($this->modelClass);
25
            if ($singleton) {
26
                $obj = AllFields::create($this->modelClass);
27
                $this->exportFields = $obj->getExportFields();
28
                if ($singleton->hasMethod('getFieldsToIncludeInExport')) {
29
                    $this->exportFields += $singleton->getFieldsToIncludeInExport();
30
                }
31
                // if(Director::isDev()) {
32
                //     foreach($this->exportFields as $fieldName => $title) {
33
                //         echo "\n'$fieldName',";
34
                //     }
35
                // }
36
            } else {
37
                $this->exportFields = parent::getExportFields();
38
            }
39
        } else {
40
            $this->exportFields = parent::getExportFields();
41
        }
42
43
        return $this->exportFields;
44
    }
45
}
46