diff options
Diffstat (limited to 'poc/poc02-compiling-cake/src/workdir/in/app/Controller')
4 files changed, 158 insertions, 0 deletions
diff --git a/poc/poc02-compiling-cake/src/workdir/in/app/Controller/AppController.php b/poc/poc02-compiling-cake/src/workdir/in/app/Controller/AppController.php new file mode 100644 index 0000000..7aab7e9 --- /dev/null +++ b/poc/poc02-compiling-cake/src/workdir/in/app/Controller/AppController.php @@ -0,0 +1,35 @@ +<?php +/** + * Application level Controller + * + * This file is application-wide controller file. You can put all + * application-wide controller-related methods here. + * + * PHP 5 + * + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @package app.Controller + * @since CakePHP(tm) v 0.2.9 + * @license MIT License (http://www.opensource.org/licenses/mit-license.php) + */ + +App::uses('Controller', 'Controller'); + +/** + * Application Controller + * + * Add your application-wide methods in the class below, your controllers + * will inherit them. + * + * @package app.Controller + * @link http://book.cakephp.org/2.0/en/controllers.html#the-app-controller + */ +class AppController extends Controller { +} diff --git a/poc/poc02-compiling-cake/src/workdir/in/app/Controller/Component/empty b/poc/poc02-compiling-cake/src/workdir/in/app/Controller/Component/empty new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/poc/poc02-compiling-cake/src/workdir/in/app/Controller/Component/empty diff --git a/poc/poc02-compiling-cake/src/workdir/in/app/Controller/PagesController.php b/poc/poc02-compiling-cake/src/workdir/in/app/Controller/PagesController.php new file mode 100644 index 0000000..5a2e57d --- /dev/null +++ b/poc/poc02-compiling-cake/src/workdir/in/app/Controller/PagesController.php @@ -0,0 +1,75 @@ +<?php +/** + * Static content controller. + * + * This file will render views from views/pages/ + * + * PHP 5 + * + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @package app.Controller + * @since CakePHP(tm) v 0.2.9 + * @license MIT License (http://www.opensource.org/licenses/mit-license.php) + */ + +App::uses('AppController', 'Controller'); + +/** + * Static content controller + * + * Override this controller by placing a copy in controllers directory of an application + * + * @package app.Controller + * @link http://book.cakephp.org/2.0/en/controllers/pages-controller.html + */ +class PagesController extends AppController { + +/** + * Controller name + * + * @var string + */ + public $name = 'Pages'; + +/** + * This controller does not use a model + * + * @var array + */ + public $uses = array(); + +/** + * Displays a view + * + * @param mixed What page to display + * @return void + */ + public function display() { + $path = func_get_args(); + + $count = count($path); + if (!$count) { + $this->redirect('/'); + } + $page = $subpage = $title_for_layout = null; + + if (!empty($path[0])) { + $page = $path[0]; + } + if (!empty($path[1])) { + $subpage = $path[1]; + } + if (!empty($path[$count - 1])) { + $title_for_layout = Inflector::humanize($path[$count - 1]); + } + $this->set(compact('page', 'subpage', 'title_for_layout')); + $this->render(implode('/', $path)); + } +} diff --git a/poc/poc02-compiling-cake/src/workdir/in/app/Controller/PostsController.php b/poc/poc02-compiling-cake/src/workdir/in/app/Controller/PostsController.php new file mode 100644 index 0000000..c6ff3d2 --- /dev/null +++ b/poc/poc02-compiling-cake/src/workdir/in/app/Controller/PostsController.php @@ -0,0 +1,48 @@ +<?php +class PostsController extends AppController { + public $helpers = array('Html', 'Form'); + + public function index() { + $this->set('posts', $this->Post->find('all')); + } + + public function view($id = null) { + $this->Post->id = $id; + $this->set('post', $this->Post->read()); + } + + public function add() { + if ($this->request->is('post')) { + if ($this->Post->save($this->request->data)) { + $this->Session->setFlash('Your post has been saved.'); + $this->redirect(array('action' => 'index')); + } else { + $this->Session->setFlash('Unable to add your post.'); + } + } + } + + public function edit($id = null) { + $this->Post->id = $id; + if ($this->request->is('get')) { + $this->request->data = $this->Post->read(); + } else { + if ($this->Post->save($this->request->data)) { + $this->Session->setFlash('Your post has been updated.'); + $this->redirect(array('action' => 'index')); + } else { + $this->Session->setFlash('Unable to update your post.'); + } + } + } + + public function delete($id) { + if ($this->request->is('get')) { + throw new MethodNotAllowedException(); + } + if ($this->Post->delete($id)) { + $this->Session->setFlash('The post with id: ' . $id . ' has been deleted.'); + $this->redirect(array('action' => 'index')); + } + } +} |