Passed
Push — develop ( 627810...75d8c1 )
by Jens
02:19
created

DocumentRouting::newFolderRoute()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 8

Duplication

Lines 6
Ratio 54.55 %

Importance

Changes 0
Metric Value
cc 2
eloc 8
c 0
b 0
f 0
nc 2
nop 2
dl 6
loc 11
rs 9.4285
1
<?php
2
/**
3
 * User: Jens
4
 * Date: 29-1-2017
5
 * Time: 15:23
6
 */
7
8
namespace CloudControl\Cms\components\cms;
9
10
11
use CloudControl\Cms\cc\Request;
12
use CloudControl\Cms\components\CmsComponent;
13
use CloudControl\Cms\search\Search;
14
use CloudControl\Cms\storage\Document;
15
16
class DocumentRouting implements CmsRouting
17
{
18
    /**
19
     * DocumentRouting constructor.
20
     * @param $request
21
     * @param $relativeCmsUri
22
     * @param CmsComponent $cmsComponent
23
     */
24
    public function __construct($request, $relativeCmsUri, $cmsComponent)
25
    {
26
        if ($relativeCmsUri == '/documents') {
27
            $this->overviewRouting($cmsComponent, $request);
28
        }
29
        $this->documentRouting($request, $relativeCmsUri, $cmsComponent);
30
        $this->folderRouting($request, $relativeCmsUri, $cmsComponent);
31
        $this->valuelistsRouting($request, $relativeCmsUri, $cmsComponent);
32
    }
33
34
35
    /**
36
     * @param $request
37
     * @param $relativeCmsUri
38
     * @param CmsComponent $cmsComponent
39
     * @throws \Exception
40
     */
41
    private function documentRouting($request, $relativeCmsUri, $cmsComponent)
42
    {
43
        if ($relativeCmsUri == '/documents/new-document' && isset($request::$get[CmsComponent::GET_PARAMETER_PATH])) {
44
            $this->documentNewRoute($request, $cmsComponent);
45
        } elseif (isset($request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
46
            switch ($relativeCmsUri) {
47
                case '/documents/edit-document': $this->editDocumentRoute($request, $cmsComponent); break;
48
                case '/documents/get-brick': $this->getBrickRoute($request, $cmsComponent); break;
49
                case '/documents/delete-document': $this->deleteDocumentRoute($request, $cmsComponent); break;
50
                case '/documents/publish-document': $this->publishDocumentRoute($request, $cmsComponent); break;
51
                case '/documents/unpublish-document': $this->unpublishDocumentRoute($request, $cmsComponent); break;
52
            }
53
        }
54
    }
55
56
    /**
57
     * @param $request
58
     * @param $relativeCmsUri
59
     * @param CmsComponent $cmsComponent
60
     */
61
    private function folderRouting($request, $relativeCmsUri, $cmsComponent)
62
    {
63
        if ($relativeCmsUri == '/documents/new-folder' && isset($request::$get[CmsComponent::GET_PARAMETER_PATH])) {
64
            $this->newFolderRoute($request, $cmsComponent);
65
        } else if ($relativeCmsUri == '/documents/edit-folder' && isset($request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
66
            $this->editFolderRoute($request, $cmsComponent);
67
        } else if ($relativeCmsUri == '/documents/delete-folder' && isset($request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
68
            $this->deleteFolderRoute($request, $cmsComponent);
69
        }
70
    }
71
72
    private function valuelistsRouting($request, $relativeCmsUri, $cmsComponent)
73
    {
74
        if ($relativeCmsUri == '/documents/valuelists') {
75
            $this->valuelistsRoute($cmsComponent);
76
        } elseif ($relativeCmsUri == '/documents/valuelists/new') {
77
            $this->newValuelistRoute($request, $cmsComponent);
78
        } elseif ($relativeCmsUri == '/documents/valuelists/edit' && isset($request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
79
            $this->editValuelistRoute($request, $cmsComponent);
80
        } elseif ($relativeCmsUri == '/documents/valuelists/delete' && isset($request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
81
            $this->deleteValuelistRoute($request, $cmsComponent);
82
        }
83
    }
84
85
    /**
86
     * @param $request
87
     * @param CmsComponent $cmsComponent
88
     *
89
     * @throws \Exception
90
     */
91
    private function documentNewRoute($request, $cmsComponent)
92
    {
93
        $cmsComponent->subTemplate = 'documents/document-form';
94
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_DOCUMENTS);
95
        $cmsComponent->setParameter(CmsComponent::PARAMETER_SMALLEST_IMAGE, $cmsComponent->storage->getImageSet()->getSmallestImageSet()->slug);
96
        if (isset($request::$get[CmsComponent::PARAMETER_DOCUMENT_TYPE])) {
97 View Code Duplication
            if (isset($request::$post[CmsComponent::POST_PARAMETER_TITLE], $request::$get[CmsComponent::PARAMETER_DOCUMENT_TYPE], $request::$get[CmsComponent::GET_PARAMETER_PATH])) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
98
                $path = substr($cmsComponent->storage->getDocuments()->addDocument($request::$post), 1);
99
                $docLink = $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/edit-document?slug=' . $path;
100
                $cmsComponent->storage->getActivityLog()->add('created document <a href="' . $docLink . '">' . $request::$post[CmsComponent::POST_PARAMETER_TITLE] . '</a> in path ' . $request::$get[CmsComponent::GET_PARAMETER_PATH], 'plus');
101
                header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents');
102
                exit;
103
            }
104
            $cmsComponent->setParameter(CmsComponent::PARAMETER_DOCUMENT_TYPE, $cmsComponent->storage->getDocumentTypes()->getDocumentTypeBySlug($request::$get[CmsComponent::PARAMETER_DOCUMENT_TYPE], true));
105
            $cmsComponent->setParameter(CmsComponent::PARAMETER_BRICKS, $cmsComponent->storage->getBricks()->getBricks());
106
        } else {
107
            $documentTypes = $cmsComponent->storage->getDocumentTypes()->getDocumentTypes();
108
            $docTypesCount = count($documentTypes);
109
            if ($docTypesCount < 1) {
110
                header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents?no-document-types');
111
                exit;
112
            } elseif ($docTypesCount == 1) {
113
                header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/new-document?path=' . urlencode($_GET['path']) . '&documentType=' . $documentTypes[0]->slug);
114
                exit;
115
            }
116
            $cmsComponent->setParameter(CmsComponent::PARAMETER_DOCUMENT_TYPES, $documentTypes);
117
        }
118
    }
119
120
    /**
121
     * @param $request
122
     * @param CmsComponent $cmsComponent
123
     */
124
    private function editDocumentRoute($request, $cmsComponent)
125
    {
126
        $cmsComponent->subTemplate = 'documents/document-form';
127
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_DOCUMENTS);
128
        $cmsComponent->setParameter(CmsComponent::PARAMETER_SMALLEST_IMAGE, $cmsComponent->storage->getImageSet()->getSmallestImageSet()->slug);
129 View Code Duplication
        if (isset($request::$post[CmsComponent::POST_PARAMETER_TITLE], $request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
130
            $path = substr($cmsComponent->storage->getDocuments()->saveDocument($request::$post), 1);
131
            $docLink = $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/edit-document?slug=' . $path;
132
            $cmsComponent->storage->getActivityLog()->add('edited document <a href="' . $docLink . '">' . $request::$post[CmsComponent::POST_PARAMETER_TITLE] . '</a> in path /' . $request::$get[CmsComponent::GET_PARAMETER_SLUG], 'pencil');
133
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents');
134
            exit;
135
        }
136
        $document = $cmsComponent->storage->getDocuments()->getDocumentBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG], 'unpublished');
137
        $cmsComponent->setParameter(CmsComponent::PARAMETER_DOCUMENT, $document);
138
139
        $request::$get[CmsComponent::GET_PARAMETER_PATH] = $request::$get[CmsComponent::GET_PARAMETER_SLUG];
140
        if ($document instanceof Document) {
141
            $cmsComponent->setParameter(CmsComponent::PARAMETER_DOCUMENT_TYPE, $cmsComponent->storage->getDocumentTypes()->getDocumentTypeBySlug($document->documentTypeSlug, true));
142
        } else {
143
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents?not-found');
144
            exit;
145
        }
146
147
        $cmsComponent->setParameter(CmsComponent::PARAMETER_BRICKS, $cmsComponent->storage->getBricks()->getBricks());
148
    }
149
150
    /**
151
     * @param $request
152
     * @param CmsComponent $cmsComponent
153
     */
154
    private function getBrickRoute($request, $cmsComponent)
155
    {
156
        $cmsComponent->setParameter(CmsComponent::PARAMETER_SMALLEST_IMAGE, $cmsComponent->storage->getImageSet()->getSmallestImageSet()->slug);
157
        $cmsComponent->subTemplate = 'documents/brick';
158
        $cmsComponent->setParameter(CmsComponent::PARAMETER_BRICK, $cmsComponent->storage->getBricks()->getBrickBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]));
159
        $cmsComponent->setParameter(CmsComponent::PARAMETER_STATIC, $request::$get[CmsComponent::PARAMETER_STATIC] === 'true');
160
        if (isset($request::$get[CmsComponent::PARAMETER_MY_BRICK_SLUG])) {
161
            $cmsComponent->setParameter(CmsComponent::PARAMETER_MY_BRICK_SLUG, $request::$get[CmsComponent::PARAMETER_MY_BRICK_SLUG]);
162
        }
163
        $result = new \stdClass();
164
        $result->body = $cmsComponent->renderTemplate('cms/documents/brick');
165
        $result->rteList = isset($GLOBALS['rteList']) ? $GLOBALS['rteList'] : array();
166
        ob_clean();
167
        header(CmsComponent::CONTENT_TYPE_APPLICATION_JSON);
168
        die(json_encode($result));
169
    }
170
171
    /**
172
     * @param $request
173
     * @param CmsComponent $cmsComponent
174
     */
175 View Code Duplication
    private function deleteDocumentRoute($request, $cmsComponent)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
176
    {
177
        $cmsComponent->storage->getDocuments()->deleteDocumentBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]);
178
        $cmsComponent->storage->getActivityLog()->add('deleted document /' . $request::$get[CmsComponent::GET_PARAMETER_SLUG], 'trash');
179
        header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents?document-delete');
180
        exit;
181
    }
182
183
    /**
184
     * @param $request
185
     * @param CmsComponent $cmsComponent
186
     */
187
    private function newFolderRoute($request, $cmsComponent)
188
    {
189
        $cmsComponent->subTemplate = 'documents/folder-form';
190
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_DOCUMENTS);
191 View Code Duplication
        if (isset($request::$post[CmsComponent::POST_PARAMETER_TITLE], $request::$post[CmsComponent::GET_PARAMETER_PATH])) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
192
            $cmsComponent->storage->addDocumentFolder($request::$post);
193
            $cmsComponent->storage->getActivityLog()->add('created folder ' . $request::$post[CmsComponent::POST_PARAMETER_TITLE] . ' in path ' . $request::$get[CmsComponent::GET_PARAMETER_PATH], 'plus');
194
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents');
195
            exit;
196
        }
197
    }
198
199
    /**
200
     * @param $request
201
     * @param CmsComponent $cmsComponent
202
     */
203
    private function editFolderRoute($request, $cmsComponent)
204
    {
205
        $cmsComponent->subTemplate = 'documents/folder-form';
206
        $folder = $cmsComponent->storage->getDocumentFolderBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]);
207
208
        $path = $request::$get[CmsComponent::GET_PARAMETER_SLUG];
209
        $path = explode('/', $path);
210
        array_pop($path);
211
        $path = implode('/', $path);
212
213
        $request::$get[CmsComponent::GET_PARAMETER_PATH] = '/' . $path;
214
215 View Code Duplication
        if (isset($request::$post[CmsComponent::POST_PARAMETER_TITLE], $request::$post['content'])) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
216
            $cmsComponent->storage->saveDocumentFolder($request::$post);
217
            $cmsComponent->storage->getActivityLog()->add('edited folder ' . $request::$post[CmsComponent::POST_PARAMETER_TITLE] . ' in path ' . $request::$get[CmsComponent::GET_PARAMETER_PATH], 'pencil');
218
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents');
219
            exit;
220
        }
221
222
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_DOCUMENTS);
223
        $cmsComponent->setParameter(CmsComponent::PARAMETER_FOLDER, $folder);
224
    }
225
226
    /**
227
     * @param $request
228
     * @param CmsComponent $cmsComponent
229
     */
230 View Code Duplication
    private function deleteFolderRoute($request, $cmsComponent)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
231
    {
232
        $cmsComponent->storage->deleteDocumentFolderBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]);
233
        $cmsComponent->storage->getActivityLog()->add('deleted folder /' . $request::$get[CmsComponent::GET_PARAMETER_SLUG], 'trash');
234
        header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents?folder-delete');
235
        exit;
236
    }
237
238
    /**
239
     * @param $request
240
     * @param CmsComponent $cmsComponent
241
     */
242 View Code Duplication
    private function publishDocumentRoute($request, $cmsComponent)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
243
    {
244
        $cmsComponent->storage->publishDocumentBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]);
245
        $path = $request::$get[CmsComponent::GET_PARAMETER_SLUG];
246
        $docLink = $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/edit-document?slug=' . $path;
247
        $cmsComponent->storage->getActivityLog()->add('published document <a href="' . $docLink . '">' . $request::$get[CmsComponent::GET_PARAMETER_SLUG] . '</a>', 'check-circle-o');
248
        header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents?published=' . htmlentities($request::$get[CmsComponent::GET_PARAMETER_SLUG]));
249
        exit;
250
    }
251
252
    /**
253
     * @param $request
254
     * @param CmsComponent $cmsComponent
255
     */
256 View Code Duplication
    private function unpublishDocumentRoute($request, $cmsComponent)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
257
    {
258
        $cmsComponent->storage->unpublishDocumentBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]);
259
        $path = $request::$get[CmsComponent::GET_PARAMETER_SLUG];
260
        $docLink = $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/edit-document?slug=' . $path;
261
        $cmsComponent->storage->getActivityLog()->add('unpublished document <a href="' . $docLink . '">' . $request::$get[CmsComponent::GET_PARAMETER_SLUG] . '</a>', 'times-circle-o');
262
        header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents?unpublished=' . htmlentities($request::$get[CmsComponent::GET_PARAMETER_SLUG]));
263
        exit;
264
    }
265
266
    private function valuelistsRoute($cmsComponent)
267
    {
268
        $cmsComponent->subTemplate = 'documents/valuelists';
269
        $cmsComponent->setParameter(CmsComponent::PARAMETER_VALUELISTS, $cmsComponent->storage->getValuelists()->getValuelists());
270
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_DOCUMENTS);
271
    }
272
273
    /**
274
     * @param $request
275
     * @param CmsComponent $cmsComponent
276
     */
277
    private function newValuelistRoute($request, $cmsComponent)
278
    {
279
        $cmsComponent->subTemplate = 'documents/valuelist-form';
280
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_DOCUMENTS);
281
        if (isset($request::$post[CmsComponent::POST_PARAMETER_TITLE])) {
282
            $slug = $cmsComponent->storage->getValuelists()->addValuelist($request::$post);
283
            $docLink = $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/valuelists/edit?slug=' . $slug;
284
            $cmsComponent->storage->getActivityLog()->add('created valuelist <a href="' . $docLink . '">' . $request::$post[CmsComponent::POST_PARAMETER_TITLE] . '</a>', 'plus');
285
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/valuelists');
286
            exit;
287
        }
288
    }
289
290
    private function editValuelistRoute($request, $cmsComponent)
291
    {
292
        $cmsComponent->subTemplate = 'documents/valuelist-form';
293
        $folder = $cmsComponent->storage->getValuelists()->getValuelistBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]);
294
295 View Code Duplication
        if (isset($request::$post[CmsComponent::POST_PARAMETER_TITLE], $request::$get[CmsComponent::GET_PARAMETER_SLUG])) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
296
            $cmsComponent->storage->getValuelists()->saveValuelist($request::$get[CmsComponent::GET_PARAMETER_SLUG], $request::$post);
297
            $docLink = $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/valuelists/edit?slug=' . $request::$get[CmsComponent::GET_PARAMETER_SLUG];
298
            $cmsComponent->storage->getActivityLog()->add('edited valuelist <a href="' . $docLink . '">' . $request::$post[CmsComponent::POST_PARAMETER_TITLE] . '</a>', 'pencil');
299
            header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/valuelists');
300
            exit;
301
        }
302
303
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_DOCUMENTS);
304
        $cmsComponent->setParameter(CmsComponent::PARAMETER_VALUELIST, $folder);
305
    }
306
307 View Code Duplication
    private function deleteValuelistRoute($request, $cmsComponent)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
308
    {
309
        $cmsComponent->storage->getValuelists()->deleteValuelistBySlug($request::$get[CmsComponent::GET_PARAMETER_SLUG]);
310
        $cmsComponent->storage->getActivityLog()->add('deleted valuelist ' . $request::$get[CmsComponent::GET_PARAMETER_SLUG], 'trash');
311
        header('Location: ' . $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/documents/valuelists');
312
        exit;
313
    }
314
315
    /**
316
     * @param CmsComponent $cmsComponent
317
     * @param Request $request
318
     */
319
    private function overviewRouting($cmsComponent, $request)
320
    {
321
        $cmsComponent->subTemplate = 'documents';
322
        $cmsComponent->setParameter(CmsComponent::PARAMETER_DOCUMENTS, $cmsComponent->storage->getDocuments()->getDocumentsWithState());
323
        $cmsComponent->setParameter(CmsComponent::PARAMETER_MAIN_NAV_CLASS, CmsComponent::PARAMETER_DOCUMENTS);
324
325
        $documentCount = $cmsComponent->storage->getDocuments()->getTotalDocumentCount();
326
        $indexer = new Search($cmsComponent->storage);
327
        $indexedDocuments = $indexer->getIndexedDocuments();
328
        $cmsComponent->setParameter(CmsComponent::PARAMETER_SEARCH_NEEDS_UPDATE, $documentCount !== $indexedDocuments);
329
330
        if (isset($_GET['not-found'])) {
331
            $cmsComponent->setParameter('infoMessage', 'Document could not be found. It might have been removed.');
332
            $cmsComponent->setParameter('infoMessageClass', 'error');
333
        } elseif (isset($_GET['published'])) {
334
            $cmsComponent->setParameter('infoMessage', '<i class="fa fa-check-circle-o"></i> Document ' . $_GET['published'] . ' published');
335
        } elseif (isset($_GET['unpublished'])) {
336
            $cmsComponent->setParameter('infoMessage', '<i class="fa fa-times-circle-o"></i> Document ' . $_GET['unpublished'] . ' unpublished');
337
        } elseif (isset($_GET['folder-delete'])) {
338
            $cmsComponent->setParameter('infoMessage', '<i class="fa fa-trash"></i> Folder deleted');
339
        } elseif (isset($_GET['document-delete'])) {
340
            $cmsComponent->setParameter('infoMessage', '<i class="fa fa-trash"></i> Document deleted');
341
        } elseif (isset($_GET['no-document-types'])) {
342
            $documentTypesLink = $request::$subfolders . $cmsComponent->getParameter(CmsComponent::PARAMETER_CMS_PREFIX) . '/configuration/document-types/new';
343
            $cmsComponent->setParameter('infoMessage', '<i class="fa fa-exclamation-circle"></i> No document types defined yet. Please do so first, <a href="' . $documentTypesLink . '">here</a>.');
344
        }
345
    }
346
}