Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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());
 }