/** * Método que llama a la vista del formulario */ public function crear() { // bloque try - catch en caso de posibles excepciones de PDO try { if (!$_POST) { $empresa = OfertaModel::getNombreEmpresa(); $datos = ['titulo' => 'Creación de oferta', 'empresas' => $empresa]; echo $this->view->render('ofertas/formularioOferta', $datos); } else { // Comprobamos $_POST if (OfertaModel::alta($_POST)) { // Generamos el mensaje de que se ha creado apropiadamente Session::add('feedback_positive', 'La oferta se a creado satisfactoriamente'); // comprobamos si tiene un origen, de ser asi lo enviamos al origen // en caso contrario lo redreccionamos a / if ($origen = Session::get('origen')) { Session::set('origen', null); header('Location:' . $origen); exit; } else { //Existe un fedback_positive desde el modelo //para mostrar en home o en el controlador $last_id = $_POST['last_id']; header('Location: /Oferta#' . $last_id); exit; } } else { // existen errores, llamamos a la vista para mostrar los errores // Saneamos $_POST $array = Validaciones::sanearEntrada($_POST); $empresa = OfertaModel::getNombreEmpresa(); $datos = ['datos' => $array, 'empresas' => $empresa]; // mostramos la vista con los datos saneados, para evitar la inyeción de código echo $this->view->render('ofertas/formularioOferta', $datos); } } } catch (PDOException $e) { // llamamos a la vista de error 500 $array = ['msg' => 'Error del servidor, disculpe las molestias.']; echo $this->view->render('error/error500', $array); // modo debbug ON /*echo '<pre>'; echo $e->getMessage();*/ } }