<?php

/**
 * La clase Posts sirve para el mantenimiento de la información
 * de posts
 *
 */
	class PostsController extends ApplicationController {
			
		/**
		 * Valida que un usuario este autenticado, el metodo
		 * before_filter es llamado antes de la ejecución 
		 * de cualquier acción de posts
		 *
		 */
		public function before_filter(){
			
			if(!Session::get_data('autenticado')){
				$this->route_to('controller: admin');				
			}
			
		}
		
		/**
		 * Acción por defecto del controlador
		 *
		 */
		public function index(){
						
		
		}
		
		
		/**
		 * Adiciona un Post
		 *
		 * @return null
		 */
		public function adicionar(){
			
			//Si hay algo en title
			if($this->request('title')){
				//Creo una nueva instancia de Posts para el nuevo registro
				$post = new Posts();
				//Agrego valores a las propiedades
				$post->title = $this->request('title');
				$post->body = $this->request('body');
				$post->tags = $this->request('tags');
				$post->status = 'A';
				//Valido si Crea el registro
				if($post->create()){
					Flash::success('Se guardo el registro bien');
					//Me paso a posts/index
					return $this->route_to('controller: posts', 'action: index');
				} else {
					Flash::error('No se pudo guardar el registro');
				}
				
			}
		}
		
		/**
		 * Consulta la información de un id en particular
		 *
		 * @param integer $id
		 */
		public function consultar($id){
			
			/**
			 * Consulto el Posts cuyo id = $id y devuelvo el objeto
			 * en $this->post que luego aparece como $post
			 * en la vista views/posts/consultar.phtml
			 */
			$this->post = $this->Posts->find($id);
					
		}
		
		/**
		 * Modifica la información de un Post
		 * 
		 * $id es el id del post que va ser modificado
		 *
		 * @param integer $id
		 * @return null
		 */
		public function modificar($id){
						
			if($this->request('title')){
				//Consulto el registro cuyo id = $id
				$this->Posts->find($id);
				//Cambio los valores del registro por los que vienen del formulario
				$this->Posts->title = $this->request('title');
				$this->Posts->body = $this->request('body');			
				$this->Posts->tags = $this->request('tags');			
				//Actualizo el registro
				if($this->Posts->update()){
					Flash::success('Se guardo el registro bien');
					return $this->route_to('controller: posts', 'action: index');
				} else {
					Flash::error('No se pudo guardar el registro');
				}
			}
			
			/**
			 * Consulto el Post cuyo id = $id y devuelvo el objeto
			 * en $this->post que luego aparece como $post
			 * en la vista views/posts/modificar.phtml
			 */
			$this->post = $this->Posts->find($id);
			
		}
		
		
		/**
		 * Borra un post mediante su $id
		 *
		 * @param integer $id
		 * @return null
		 */
		public function borrar($id){
			if($this->Posts->delete($id)){
				Flash::success('Se borr&oacute; el registro bien');
				//Me paso a posts/index
				return $this->route_to('controller: posts', 'action: index');
			} else {
				Flash::error('No se pudo borrar el registro');
			}			
		}
		
				
	}

?>