Passed
Push — develop ( f31b27...ac6bc8 )
by Jens
03:16
created

DocumentTypeRouting   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 45
c 0
b 0
f 0
rs 10
wmc 9
lcom 0
cbo 3

1 Method

Rating   Name   Duplication   Size   Complexity  
D __construct() 0 34 9
1
<?php
2
/**
3
 * User: jensk
4
 * Date: 30-1-2017
5
 * Time: 13:22
6
 */
7
8
namespace library\components\cms\configuration;
9
10
11
use library\cc\Request;
12
use library\components\cms\CmsRouting;
13
use library\components\CmsComponent;
14
15
class DocumentTypeRouting implements CmsRouting
16
{
17
18
	/**
19
	 * DocumentTypeRouting constructor.
20
	 *
21
	 * @param Request      $request
22
	 * @param String       $relativeCmsUri
23
	 * @param CmsComponent $cmsComponent
24
	 */
25
	public function __construct($request, $relativeCmsUri, $cmsComponent)
26
	{
27
		if ($relativeCmsUri == '/configuration/document-types') {
28
			$cmsComponent->subTemplate = 'cms/configuration/document-types';
29
			$cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_CONFIGURATION);
30
			$cmsComponent->setParameter(CmsComponent::PARAMETER_DOCUMENT_TYPES, $cmsComponent->storage->getDocumentTypes());
31
		} elseif ($relativeCmsUri == '/configuration/document-types/new') {
32
			$cmsComponent->subTemplate = 'cms/configuration/document-types-form';
33
			$cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_CONFIGURATION);
34
			$bricks = $cmsComponent->storage->getBricks();
35
			if (isset($request::$post[CmsComponent::POST_PARAMETER_TITLE])) {
36
				$cmsComponent->storage->addDocumentType($request::$post);
37
				header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/configuration/document-types');
38
				exit;
39
			}
40
			$cmsComponent->setParameter(CmsComponent::PARAMETER_BRICKS, $bricks);
41
		} elseif ($relativeCmsUri == '/configuration/document-types/edit' && isset($request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
42
			$cmsComponent->subTemplate = 'cms/configuration/document-types-form';
43
			$cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_CONFIGURATION);
44
			$documentType = $cmsComponent->storage->getDocumentTypeBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG], false);
45
			$bricks = $cmsComponent->storage->getBricks();
46
			if (isset($request::$post[CmsComponent::POST_PARAMETER_TITLE])) {
47
				$cmsComponent->storage->saveDocumentType($request::$get[CmsComponent::GET_PARAMETER_SLUG], $request::$post);
48
				header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/configuration/document-types');
49
				exit;
50
			}
51
			$cmsComponent->setParameter(CmsComponent::PARAMETER_DOCUMENT_TYPE, $documentType);
52
			$cmsComponent->setParameter(CmsComponent::PARAMETER_BRICKS, $bricks);
53
		} elseif ($relativeCmsUri == '/configuration/document-types/delete' && isset($request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
54
			$cmsComponent->storage->deleteDocumentTypeBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]);
55
			header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/configuration/document-types');
56
			exit;
57
		}
58
	}
59
}