Completed
Push — master ( 63cfe4...886ab6 )
by Nicolaas
01:32
created

code/decorators/SitemapPageDecorator.php (1 issue)

PSR1 classes have a namespace declaration.

Coding Style Compatibility Minor

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
class SitemapPageDecorator extends SiteTreeExtension
0 ignored issues
show
Coding Style Compatibility introduced by sunnysideup
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
4
{
5
6
    /**
7
     * Note, you have to list each class explicitely
8
     * That is, descendants need to be listed as well
9
     * as their parents, to exclude them both.
10
     *
11
     * Includes override excludes.  If you list includes,
12
     * then only those pages will be shown.
13
     * If you dont list includes, then the exclude list will be
14
     * used and if this is empty all page types will be included.
15
     *
16
     * @var Array
17
     */
18
    private static $sitemap_classes_to_exclude = array("ErrorPage");
19
20
    /**
21
     * Note, you have to list each class explicitely
22
     * That is, descendants need to be listed as well
23
     * as their parents, to exclude them both.
24
     *
25
     * Includes override excludes.  If you list includes,
26
     * then only those pages will be shown.
27
     * If you dont list includes, then the exclude list will be
28
     * used and if this is empty all page types will be included.
29
     *
30
     * @var Array
31
     */
32
    private static $sitemap_classes_to_include = array();
33
34
    /**
35
     * @return DataList
36
     */
37
    public function SiteMapPages($noParent = false)
38
    {
39
        if ($noParent) {
40
            $parentID = 0;
41
        } else {
42
            $parentID = $this->owner->ID;
43
        }
44
        $filterArray = array(
45
            "ParentID" => $parentID,
46
            "ShowInMenus" => 1,
47
            "ShowInSearch" => 1
48
        );
49
        $excludeArray = array("ClassName" => 'SiteMapPage');
50
        $inc = Config::inst()->get("SitemapPageDecorator", "sitemap_classes_to_include");
51
        $exc = Config::inst()->get("SitemapPageDecorator", "sitemap_classes_to_exclude");
52
        if (is_array($inc) && count($inc)) {
53
            $filterArray["ClassName"] = $inc;
54
        } elseif (is_array($exc) && count($exc)) {
55
            $excludeArray["ClassName"] = $exc;
56
        }
57
        return SiteTree::get()
58
            ->filter($filterArray)
59
            ->exclude($excludeArray);
60
    }
61
}
62