Completed
Push — master ( 89474e...0940e8 )
by Nicolaas
03:40
created

OrderStatusLogs/OrderStatusLog_Archived.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
/**
4
 * @authors: Nicolaas [at] Sunny Side Up .co.nz
5
 * @package: ecommerce
6
 * @sub-package: model
7
 * @inspiration: Silverstripe Ltd, Jeremy
8
 **/
9
class OrderStatusLog_Archived extends OrderStatusLog
10
{
11
    private static $defaults = array(
12
        'InternalUseOnly' => false,
13
    );
14
15
    private static $singular_name = 'Archived Order - Additional Note';
16
    public function i18n_singular_name()
17
    {
18
        return _t('OrderStatusLog.ARCHIVEDORDERS', 'Archived Order - Additional Note');
19
    }
20
21
    private static $plural_name = 'Archived Order - Additional Notes';
22
    public function i18n_plural_name()
23
    {
24
        return _t('OrderStatusLog.ARCHIVEDORDERS', 'Archived Order - Additional Notes');
25
    }
26
27
    /**
28
     * Standard SS method.
29
     *
30
     * @param Member $member
31
     *
32
     * @return bool
33
     */
34
    public function canDelete($member = null)
35
    {
36
        return false;
37
    }
38
39
    /**
40
     * Standard SS method.
41
     *
42
     * @param Member $member
43
     *
44
     * @return bool
45
     */
46
    public function canEdit($member = null)
47
    {
48
        if (! $member) {
49
            $member = Member::currentUser();
50
        }
51
        $extended = $this->extendedCan(__FUNCTION__, $member);
52
        if ($extended !== null) {
53
            return $extended;
54
        }
55
56
        return parent::canEdit($member);
0 ignored issues
show
It seems like $member defined by \Member::currentUser() on line 49 can also be of type object<DataObject>; however, OrderStatusLog::canEdit() does only seem to accept object<Member>|null, maybe add an additional type check?

If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:

/**
 * @return array|string
 */
function returnsDifferentValues($x) {
    if ($x) {
        return 'foo';
    }

    return array();
}

$x = returnsDifferentValues($y);
if (is_array($x)) {
    // $x is an array.
}

If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.

Loading history...
57
    }
58
59
    /**
60
     * Standard SS method.
61
     *
62
     * @param Member $member
63
     *
64
     * @return bool
65
     */
66
    public function canCreate($member = null)
67
    {
68
        return true;
69
    }
70
71
    public function getCMSFields()
72
    {
73
        $fields = parent::getCMSFields();
74
        $fields->replaceField('ClassName', new HiddenField('ClassName', 'ClassName', $this->ClassName));
75
        $fields->addFieldToTab('Root.Main', new ReadonlyField('Created', 'Created'));
76
77
        return $fields;
78
    }
79
}
80