Completed
Push — 1.0 ( 2d5e19...3aa83c )
by Morven
01:24
created

BulkLoaderExtension::getRequiredFields()   A

Complexity

Conditions 5
Paths 8

Size

Total Lines 34

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 34
rs 9.0648
c 0
b 0
f 0
cc 5
nc 8
nop 1
1
<?php
2
3
namespace ilateral\SilverStripe\SlightlyBetterBulkLoader;
4
5
use SilverStripe\Core\Extension;
6
7
/**
8
 * Add required fields to BulkLoader
9
 */
10
class BulkLoaderExtension extends Extension
11
{
12
    /**
13
     * Try to find any fields that may be required by the current object
14
     *
15
     * @return array
16
     */
17
    public function getRequiredFields($use_field_labels = false)
0 ignored issues
show
Unused Code introduced by
The parameter $use_field_labels is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
18
    {
19
        // Check if the import data is valid first
20
        $class = $this->getOwner()->objectClass;
21
        $obj = $class::singleton();
22
        $required = [];
23
        $custom = [];
24
25
        // If a "required_fields" config variable is set
26
        // add it's fields
27
        $config = $obj->config()->get("required_fields");
28
        
29
        if (isset($config) && is_array($config)) {
30
            $required = array_merge(
31
                $required,
32
                $config
33
            );
34
        }
35
36
        // Get any fields required by CMS validator if available
37
        if (method_exists($obj, "getCMSValidator")) {
38
            $required = array_merge(
39
                $required,
40
                $obj->getCMSValidator()->getRequired()
41
            );
42
        }
43
44
        // Ensure we use a field label that would have been exported
45
        foreach ($required as $field) {
46
            $custom[] = $field;
47
        }
48
49
        return $custom;
50
    }
51
}
52