Passed
Push — develop ( 190495...6fc664 )
by Jens
15:25
created

SitemapRouting::__construct()   B

Complexity

Conditions 7
Paths 5

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

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