DistributorFAQPage_Controller   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 1
dl 0
loc 21
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getContent() 0 9 3
A Distributor() 0 3 1
1
<?php
2
3
/**
4
 * Page where distributors can put specific information about their country.
5
 *
6
 *
7
 *
8
 */
9
10
class DistributorFAQPage extends Page
11
{
12
    private static $icon = 'mysite/images/treeicons/DistributorFAQPage';
13
14
    private static $description = 'Frequently asked questions related local distributor. You can enter country specific content that will show up here. ';
15
16
    private static $can_be_root = true;
17
18
    private static $allow_children = 'none';
19
20
    public function canCreate($member = null)
21
    {
22
        return DistributorFAQPage::get()->count() ? true : false;
23
    }
24
25
    public function getCMSFields()
0 ignored issues
show
Documentation introduced by
The return type could not be reliably inferred; please add a @return annotation.

Our type inference engine in quite powerful, but sometimes the code does not provide enough clues to go by. In these cases we request you to add a @return annotation as described here.

Loading history...
26
    {
27
        $fields = parent::getCMSFields();
28
        $fields->findOrMakeTab('Root.Main')->removeByName('Content');
29
        $fields->addFieldToTab('Root.Main', HtmlEditorField::create("Content", "Default Content"));
30
        $ecommerceCountry = Injector::inst()->get("EcommerceCountry");
31
        $fields->addFieldToTab(
32
            'Root.Main',
33
            new LiteralField(
34
                "MyContent",
35
                "<p>You can edit the content for this page on <a href=\"".$ecommerceCountry->CMSEditLink()."\">each country</a>.</p>"
36
            ),
37
            "Content"
38
        );
39
        $ecommerceCountriesEntered = EcommerceCountry::get()->where("\"FAQContent\" IS NOT NULL AND \"FAQContent\" <> ''");
40
        $list = array();
41
        if ($ecommerceCountriesEntered && $ecommerceCountriesEntered->count()) {
42
            $list = $ecommerceCountriesEntered->map("ID", "Name")->toArray();
43
        }
44
        if ($list && count($list)) {
0 ignored issues
show
Bug Best Practice introduced by
The expression $list of type array is implicitly converted to a boolean; are you sure this is intended? If so, consider using ! empty($expr) instead to make it clear that you intend to check for an array without elements.

This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.

Consider making the comparison explicit by using empty(..) or ! empty(...) instead.

Loading history...
45
            $enteredForContent = implode(", ", $list);
46
        } else {
47
            $enteredForContent = "You have not entered any country specific Content yet";
48
        }
49
        $fields->addFieldToTab(
50
            'Root.Main',
51
            new ReadonlyField("CountrySpecificDetailsEnteredFor", "Country specific content has been entered for", $enteredForContent),
52
            "Content"
53
        );
54
        return $fields;
55
    }
56
}
57
58
class DistributorFAQPage_Controller extends Page_Controller
59
{
60
61
    /**
62
     * finds the country specific content
63
     *
64
     */
65
    public function getContent()
0 ignored issues
show
Documentation introduced by
The return type could not be reliably inferred; please add a @return annotation.

Our type inference engine in quite powerful, but sometimes the code does not provide enough clues to go by. In these cases we request you to add a @return annotation as described here.

Loading history...
66
    {
67
        $country = CountryPrice_EcommerceCountry::get_distributor_country();
68
        if ($country && strlen($country->FAQContent) > 17) {
69
            return $country->FAQContent;
70
        } else {
71
            return $this->dataRecord->Content;
72
        }
73
    }
74
75
    public function Distributor()
76
    {
77
    }
78
}
79