/** * Cargamos la plantilla base. */ public function __construct() { // Cargamos la plantilla base. $this->template = View::factory('template'); // Cargo las noticias. $noticia = Model_Noticia::get_active(); if ($noticia !== NULL) { $this->template->assign('noticia', Decoda::procesar($noticia->contenido)); } unset($noticia); // Cargo nombre del sitio. $model_config = new Model_Configuracion(); $this->template->assign('brand', $model_config->get('nombre', 'Marifa')); // Acciones para menu offline. if (!Usuario::is_login()) { // Seteamos menu offline. $this->template->assign('user_header', View::factory('header/logout')->parse()); } else { $this->template->assign('user_header', $this->make_user_header()->parse()); } $this->template->assign('contenido', ''); // Eventos flash. if (isset($_SESSION['flash_success'])) { $this->template->assign('flash_success', get_flash('flash_success')); } if (isset($_SESSION['flash_error'])) { $this->template->assign('flash_error', get_flash('flash_error')); } // Seteo si es mantenimiento. $m = new Mantenimiento(); $this->template->assign('is_locked', $m->is_locked()); unset($m); }
/** * Editamos una noticia. * @param int $id ID de la noticia a editar. */ public function action_editar_noticia($id) { // Cargamos el modelo de noticia. $model_noticia = new Model_Noticia((int) $id); if (!$model_noticia->existe()) { $_SESSION['flash_error'] = 'Noticia incorrecta.'; Request::redirect('/admin/contenido/noticias'); } // Cargamos la vista. $vista = View::factory('admin/contenido/editar_noticia'); // Valores por defecto y errores. $vista->assign('contenido', $model_noticia->contenido); $vista->assign('error_contenido', FALSE); if (Request::method() == 'POST') { $error = FALSE; // Obtenemos el contenido. $contenido = isset($_POST['contenido']) ? $_POST['contenido'] : NULL; // Quitamos BBCode para dimenciones. $contenido_clean = preg_replace('/\\[([^\\[\\]]+)\\]/', '', $contenido); if (!isset($contenido_clean[10]) || isset($contenido_clean[200])) { $error = TRUE; $vista->assign('error_contenido', 'El contenido debe tener entre 10 y 200 caractéres'); } else { // Evitamos XSS. $contenido = htmlentities($contenido, ENT_NOQUOTES, 'UTF-8'); // Actualizamos el contenido. $model_noticia->actualizar_contenido($contenido); $vista->assign('contenido', $model_noticia->contenido); $vista->assign('success', 'Contenido actualizado correctamente'); } unset($contenido_clean); } // Seteamos el menu. $this->template->assign('master_bar', parent::base_menu('admin')); // Cargamos plantilla administracion. $admin_template = View::factory('admin/template'); $admin_template->assign('contenido', $vista->parse()); unset($portada); $admin_template->assign('top_bar', Controller_Admin_Home::submenu('contenido_noticias')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }