2008-05-30 11:40:08 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Static content controller.
|
|
|
|
*
|
|
|
|
* This file will render views from views/pages/
|
|
|
|
*
|
2009-11-06 06:00:11 +00:00
|
|
|
* @link http://cakephp.org CakePHP(tm) Project
|
2011-10-15 18:30:49 +00:00
|
|
|
* @package app.Controller
|
2008-10-30 17:30:26 +00:00
|
|
|
* @since CakePHP(tm) v 0.2.9
|
2008-05-30 11:40:08 +00:00
|
|
|
*/
|
2013-05-30 22:11:14 +00:00
|
|
|
|
2012-07-21 11:34:33 +00:00
|
|
|
App::uses('AppController', 'Controller');
|
2009-07-24 19:18:37 +00:00
|
|
|
|
2008-05-30 11:40:08 +00:00
|
|
|
/**
|
|
|
|
* Static content controller
|
|
|
|
*
|
|
|
|
* Override this controller by placing a copy in controllers directory of an application
|
|
|
|
*
|
2011-10-15 18:30:49 +00:00
|
|
|
* @package app.Controller
|
2011-11-13 21:02:59 +00:00
|
|
|
* @link http://book.cakephp.org/2.0/en/controllers/pages-controller.html
|
2008-05-30 11:40:08 +00:00
|
|
|
*/
|
|
|
|
class PagesController extends AppController {
|
2009-07-24 19:18:37 +00:00
|
|
|
|
2008-05-30 11:40:08 +00:00
|
|
|
/**
|
|
|
|
* This controller does not use a model
|
|
|
|
*
|
|
|
|
* @var array
|
|
|
|
*/
|
2010-04-04 06:46:01 +00:00
|
|
|
public $uses = array();
|
2009-07-24 19:18:37 +00:00
|
|
|
|
2008-05-30 11:40:08 +00:00
|
|
|
/**
|
|
|
|
* Displays a view
|
|
|
|
*
|
2013-02-08 13:41:57 +00:00
|
|
|
* @return void
|
2016-11-27 09:03:32 +00:00
|
|
|
* @throws ForbiddenException When a directory traversal attempt.
|
2013-04-21 21:29:36 +00:00
|
|
|
* @throws NotFoundException When the view file could not be found
|
2014-05-28 03:19:44 +00:00
|
|
|
* or MissingViewException in debug mode.
|
2008-05-30 11:40:08 +00:00
|
|
|
*/
|
2010-04-04 06:46:01 +00:00
|
|
|
public function display() {
|
2008-05-30 11:40:08 +00:00
|
|
|
$path = func_get_args();
|
|
|
|
|
2008-10-16 23:52:54 +00:00
|
|
|
$count = count($path);
|
|
|
|
if (!$count) {
|
2013-08-08 19:07:46 +00:00
|
|
|
return $this->redirect('/');
|
2008-05-30 11:40:08 +00:00
|
|
|
}
|
2016-11-27 09:03:32 +00:00
|
|
|
if (in_array('..', $path, true) || in_array('.', $path, true)) {
|
|
|
|
throw new ForbiddenException();
|
|
|
|
}
|
2013-02-08 13:41:57 +00:00
|
|
|
$page = $subpage = $title_for_layout = null;
|
2008-05-30 11:40:08 +00:00
|
|
|
|
|
|
|
if (!empty($path[0])) {
|
|
|
|
$page = $path[0];
|
|
|
|
}
|
|
|
|
if (!empty($path[1])) {
|
|
|
|
$subpage = $path[1];
|
|
|
|
}
|
|
|
|
if (!empty($path[$count - 1])) {
|
2013-02-08 13:41:57 +00:00
|
|
|
$title_for_layout = Inflector::humanize($path[$count - 1]);
|
2008-05-30 11:40:08 +00:00
|
|
|
}
|
2013-02-08 13:41:57 +00:00
|
|
|
$this->set(compact('page', 'subpage', 'title_for_layout'));
|
2013-04-21 21:29:36 +00:00
|
|
|
|
|
|
|
try {
|
|
|
|
$this->render(implode('/', $path));
|
|
|
|
} catch (MissingViewException $e) {
|
|
|
|
if (Configure::read('debug')) {
|
|
|
|
throw $e;
|
|
|
|
}
|
|
|
|
throw new NotFoundException();
|
|
|
|
}
|
2008-05-30 11:40:08 +00:00
|
|
|
}
|
|
|
|
}
|