Passed
Push — develop ( 4b65e1...8da09c )
by Jens
02:48
created

SitemapRouting::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Created by IntelliJ IDEA.
4
 * User: Jens
5
 * Date: 29-1-2017
6
 * Time: 16:30
7
 */
8
9
namespace CloudControl\Cms\components\cms;
10
11
12
use CloudControl\Cms\cc\Request;
13
use CloudControl\Cms\components\CmsComponent;
14
15
class SitemapRouting extends CmsRouting
16
{
17
18
    protected static $routes = array(
19
        '/sitemap' => 'overviewRoute',
20
        '/sitemap/new' => 'newRoute',
21
        '/sitemap/edit' => 'editRoute',
22
        '/sitemap/delete' => 'deleteRoute',
23
    );
24
25
    /**
26
     * CmsRouting constructor.
27
     *
28
     * @param Request $request
29
     * @param string $relativeCmsUri
30
     * @param CmsComponent $cmsComponent
31
     * @throws \Exception
32
     */
33
    public function __construct(Request $request, $relativeCmsUri, CmsComponent $cmsComponent)
34
    {
35
        $this->doRouting($request, $relativeCmsUri, $cmsComponent);
36
    }
37
38
    /**
39
     * @param Request $request
40
     * @param CmsComponent $cmsComponent
41
     * @throws \Exception
42
     */
43
    protected function overviewRoute($request, $cmsComponent)
44
    {
45
        $cmsComponent->subTemplate = 'sitemap';
46
        if (isset($request::$post[CmsConstants::POST_PARAMETER_SAVE])) {
47
            $cmsComponent->storage->getSitemap()->saveSitemap($request::$post);
48
        }
49
        $cmsComponent->setParameter(CmsConstants::PARAMETER_MAIN_NAV_CLASS, CmsConstants::PARAMETER_SITEMAP);
50
        $cmsComponent->setParameter(CmsConstants::PARAMETER_SITEMAP,
51
            $cmsComponent->storage->getSitemap()->getSitemap());
52
    }
53
54
    /**
55
     * @param Request $request
56
     * @param CmsComponent $cmsComponent
57
     * @throws \Exception
58
     */
59
    protected function newRoute($request, $cmsComponent)
60
    {
61
        $cmsComponent->subTemplate = 'sitemap/form';
62
        $cmsComponent->setParameter(CmsConstants::PARAMETER_MAIN_NAV_CLASS, CmsConstants::PARAMETER_SITEMAP);
63
        if (isset($request::$post[CmsConstants::POST_PARAMETER_TITLE], $request::$post[CmsConstants::POST_PARAMETER_TEMPLATE], $request::$post[CmsConstants::POST_PARAMETER_COMPONENT])) {
64
            $cmsComponent->storage->getSitemap()->addSitemapItem($request::$post);
65
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsConstants::PARAMETER_CMS_PREFIX) . '/sitemap');
66
            exit;
67
        }
68
    }
69
70
    /**
71
     * @param Request $request
72
     * @param CmsComponent $cmsComponent
73
     * @throws \Exception
74
     */
75
    protected function editRoute($request, $cmsComponent)
76
    {
77
        $cmsComponent->subTemplate = 'sitemap/form';
78
        $cmsComponent->setParameter(CmsConstants::PARAMETER_MAIN_NAV_CLASS, CmsConstants::PARAMETER_SITEMAP);
79
        $sitemapItem = $cmsComponent->storage->getSitemap()->getSitemapItemBySlug($request::$get[CmsConstants::GET_PARAMETER_SLUG]);
80
        if (isset($request::$post[CmsConstants::POST_PARAMETER_TITLE], $request::$post[CmsConstants::POST_PARAMETER_TEMPLATE], $request::$post[CmsConstants::POST_PARAMETER_COMPONENT])) {
81
            $cmsComponent->storage->getSitemap()->saveSitemapItem($request::$get[CmsConstants::GET_PARAMETER_SLUG],
82
                $request::$post);
83
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsConstants::PARAMETER_CMS_PREFIX) . '/sitemap');
84
            exit;
85
        }
86
        $cmsComponent->setParameter(CmsConstants::PARAMETER_SITEMAP_ITEM, $sitemapItem);
87
    }
88
89
    /**
90
     * @param Request $request
91
     * @param CmsComponent $cmsComponent
92
     * @throws \Exception
93
     */
94
    protected function deleteRoute($request, $cmsComponent)
95
    {
96
        $cmsComponent->storage->getSitemap()->deleteSitemapItemBySlug($request::$get[CmsConstants::GET_PARAMETER_SLUG]);
97
        header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsConstants::PARAMETER_CMS_PREFIX) . '/sitemap');
98
        exit;
99
    }
100
}