Passed
Push — master ( 6f54ed...c693b3 )
by Nicolaas
02:30
created

ExportAllFromModelAdminTrait::getExportFields()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 25
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 15
Bugs 0 Features 0
Metric Value
cc 4
eloc 13
c 15
b 0
f 0
nc 4
nop 0
dl 0
loc 25
rs 9.8333
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
18
    public function getExportFields(): array
19
    {
20
        if (Permission::check('ADMIN')) {
21
            //set to ten minutes
22
            Environment::setTimeLimitMax(600);
23
            $singleton = Injector::inst()->get($this->modelClass);
24
            if ($singleton) {
25
                $obj = AllFields::create($this->modelClass);
26
                $this->exportFields = $obj->getExportFields();
0 ignored issues
show
Bug Best Practice introduced by
The property exportFields does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
27
                if ($singleton->hasMethod('getFieldsToIncludeInExport')) {
28
                    $this->exportFields += $singleton->getFieldsToIncludeInExport();
29
                }
30
                // if(Director::isDev()) {
31
                //     foreach($this->exportFields as $fieldName => $title) {
32
                //         echo "\n'$fieldName',";
33
                //     }
34
                // }
35
            } else {
36
                $this->exportFields = parent::getExportFields();
37
            }
38
        } else {
39
            $this->exportFields = parent::getExportFields();
40
        }
41
42
        return $this->exportFields;
43
    }
44
}
45