[CLEANUP] Replace wrong/old file copyright comments
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Mvc / View / NotFoundView.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Mvc\View;
3
4 /***************************************************************
5 * Copyright notice
6 *
7 * (c) 2010-2012 Extbase Team (http://forge.typo3.org/projects/typo3v4-mvc)
8 * Extbase is a backport of TYPO3 Flow. All credits go to the TYPO3 Flow team.
9 * All rights reserved
10 *
11 * This script is part of the TYPO3 project. The TYPO3 project is
12 * free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * The GNU General Public License can be found at
18 * http://www.gnu.org/copyleft/gpl.html.
19 * A copy is found in the textfile GPL.txt and important notices to the license
20 * from the author is found in LICENSE.txt distributed with these scripts.
21 *
22 *
23 * This script is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
27 *
28 * This copyright notice MUST APPEAR in all copies of the script!
29 ***************************************************************/
30 /**
31 * The not found view - a special case.
32 *
33 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
34 */
35 class NotFoundView extends \TYPO3\CMS\Extbase\Mvc\View\AbstractView {
36
37 /**
38 * @var array
39 */
40 protected $variablesMarker = array('errorMessage' => 'ERROR_MESSAGE');
41
42 /**
43 * Renders the not found view
44 *
45 * @return string The rendered view
46 * @throws \TYPO3\CMS\Extbase\Mvc\Exception if no request has been set
47 * @api
48 */
49 public function render() {
50 if (!is_object($this->controllerContext->getRequest())) {
51 throw new \TYPO3\CMS\Extbase\Mvc\Exception('Can\'t render view without request object.', 1192450280);
52 }
53 $template = file_get_contents($this->getTemplatePathAndFilename());
54 if ($this->controllerContext->getRequest() instanceof \TYPO3\CMS\Extbase\Mvc\Web\Request) {
55 $template = str_replace('###BASEURI###', \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL'), $template);
56 }
57 foreach ($this->variablesMarker as $variableName => $marker) {
58 $variableValue = isset($this->variables[$variableName]) ? $this->variables[$variableName] : '';
59 $template = str_replace('###' . $marker . '###', $variableValue, $template);
60 }
61 return $template;
62 }
63
64 /**
65 * Retrieves path and filename of the not-found-template
66 *
67 * @return string path and filename of the not-found-template
68 * @author Bastian Waidelich <bastian@typo3.org>
69 */
70 protected function getTemplatePathAndFilename() {
71 return \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('extbase') . 'Resources/Private/MVC/NotFoundView_Template.html';
72 }
73
74 /**
75 * A magic call method.
76 *
77 * Because this not found view is used as a Special Case in situations when no matching
78 * view is available, it must be able to handle method calls which originally were
79 * directed to another type of view. This magic method should prevent PHP from issuing
80 * a fatal error.
81 *
82 * @param string $methodName
83 * @param array $arguments
84 * @return void
85 */
86 public function __call($methodName, array $arguments) {
87 }
88 }
89
90 ?>