Passed
Push — master ( 3f6c85...9c6499 )
by Jens
02:40
created

ImagesRouting::__construct()   B

Complexity

Conditions 8
Paths 6

Size

Total Lines 14
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 8
eloc 11
c 1
b 0
f 0
nc 6
nop 3
dl 0
loc 14
rs 7.7777
1
<?php
2
/**
3
 * User: Jens
4
 * Date: 29-1-2017
5
 * Time: 16:11
6
 */
7
8
namespace library\components\cms;
9
10
11
use library\components\CmsComponent;
12
13
class ImagesRouting implements CmsRouting
14
{
15
16
    /**
17
     * ImagesRouting constructor.
18
     * @param \library\cc\Request $request
19
     * @param mixed|string $relativeCmsUri
20
     * @param CmsComponent $cmsComponent
21
     */
22
    public function __construct($request, $relativeCmsUri, $cmsComponent)
23
    {
24
        if ($relativeCmsUri == '/images') {
25
			$this->overviewRoute($cmsComponent);
26
        } elseif ($relativeCmsUri == '/images.json') {
27
			$this->jsonRoute($cmsComponent);
28
        } elseif ($relativeCmsUri == '/images/new') {
29
			$this->newRoute($request, $cmsComponent);
30
        } elseif ($relativeCmsUri == '/images/delete' && isset($request::$get[CmsComponent::FILES_PARAMETER_FILE])) {
31
			$this->deleteRoute($request, $cmsComponent);
32
        } elseif ($relativeCmsUri == '/images/show' && isset($request::$get[CmsComponent::FILES_PARAMETER_FILE])) {
33
			$this->showRoute($request, $cmsComponent);
34
        }
35
    }
36
37
	/**
38
	 * @param CmsComponent $cmsComponent
39
	 */
40
	private function overviewRoute($cmsComponent)
41
	{
42
		$cmsComponent->subTemplate = 'cms/images';
43
		$cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_IMAGES);
44
		$cmsComponent->setParameter(CmsComponent::PARAMETER_IMAGES, $cmsComponent->storage->getImages()->getImages());
45
		$cmsComponent->setParameter(CmsComponent::PARAMETER_SMALLEST_IMAGE, $cmsComponent->storage->getImageSet()->getSmallestImageSet()->slug);
46
	}
47
48
	/**
49
	 * @param CmsComponent $cmsComponent
50
	 */
51
	private function jsonRoute($cmsComponent)
52
	{
53
		header(CmsComponent::CONTENT_TYPE_APPLICATION_JSON);
54
		die(json_encode($cmsComponent->storage->getImages()));
55
	}
56
57
	/**
58
	 * @param $request
59
	 * @param CmsComponent $cmsComponent
60
	 */
61
	private function newRoute($request, $cmsComponent)
62
	{
63
		$cmsComponent->subTemplate = 'cms/images/form';
64
		$cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_IMAGES);
65
		if (isset($_FILES[CmsComponent::FILES_PARAMETER_FILE])) {
66
			$cmsComponent->storage->getImages()->addImage($_FILES[CmsComponent::FILES_PARAMETER_FILE]);
67
			header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/images');
68
			exit;
69
		}
70
	}
71
72
	/**
73
	 * @param $request
74
	 * @param CmsComponent $cmsComponent
75
	 */
76
	private function deleteRoute($request, $cmsComponent)
77
	{
78
		$cmsComponent->storage->getImages()->deleteImageByName($request::$get[CmsComponent::FILES_PARAMETER_FILE]);
79
		header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/images');
80
		exit;
81
	}
82
83
	/**
84
	 * @param $request
85
	 * @param CmsComponent $cmsComponent
86
	 */
87
	private function showRoute($request, $cmsComponent)
88
	{
89
		$cmsComponent->subTemplate = 'cms/images/show';
90
		$cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_IMAGES);
91
		$cmsComponent->setParameter(CmsComponent::PARAMETER_IMAGE, $cmsComponent->storage->getImages()->getImageByName($request::$get[CmsComponent::FILES_PARAMETER_FILE]));
92
	}
93
}