/** * @param Request $request * @param Application $app * @param int $id * * @return mixed|RedirectResponse */ public function editar(Request $request, Application $app, $id) { $categoriaModelo = new CategoriaModelo($app['db']); $categoria = $categoriaModelo->getPorId($id); if (!empty($categoria)) { $categorias = $categoriaModelo->getTodo(); $options = array(); foreach ($categorias as $categoria) { $options[$categoria['id']] = $categoria['nombre']; } $initial_data = array('nombre' => $categoria['nombre']); $form = $app['form.factory']->createBuilder('form', $initial_data); $form = $form->add('categoria_superior', 'choice', array('choices' => $options, 'data' => $categoria['id_categoria'], 'required' => false)); $form = $form->add('nombre', 'text', array('required' => true)); $form = $form->getForm(); if ("POST" == $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $filasAfectadas = $categoriaModelo->modificar($id, $data['categoria_superior'], $data['nombre']); if ($filasAfectadas == 1) { $app['session']->getFlashBag()->add('info', array('message' => 'Categoría editada!')); } return $app->redirect($app['url_generator']->generate('categoria_edit', array("id" => $id))); } } return $app['twig']->render('backend/categoria/edit.html.twig', array("form" => $form->createView(), "id" => $id)); } else { $app['session']->getFlashBag()->add('warning', array('message' => '¡Categoría no encontrada!')); return $app->redirect($app['url_generator']->generate('categoria_list')); } }
/** * @param Request $request * @param Application $app * * @return JsonResponse */ public function categoriasAjax(Request $request, Application $app) { if ($request->isXmlHttpRequest() && 'POST' == $request->getMethod()) { $categoriaModelo = new Categoria($app['db']); $categorias = $categoriaModelo->getTodo(array('id', 'nombre'), array(), 'WHERE id > 1'); return $app['twig']->render('frontend/categorias-ajax.html.twig', array('categorias' => $categorias)); } }
/** * @param Request $request * @param Application $app * @param int $id * * @return RedirectResponse */ public function verNoticiasJson(Request $request, Application $app) { $categoriaModelo = new Categoria($app['db']); $categorias = $categoriaModelo->getTodo(array(), array(), "WHERE id > 1"); $articuloModelo = new Articulo($app['db']); $articulos = $articuloModelo->getTodo(); $mesesIngles = cal_info(0); $mesesEspanol = array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); foreach ($articulos as $index => $articulo) { # Poner sólo la primera en mayúscula el título $articulos[$index]['titulo'] = strtolower($articulo['titulo']); $articulos[$index]['titulo'][0] = strtoupper($articulo['titulo'][0]); $fechaPublicacion = date('d-F-Y | h:m A', strtotime($articulo['fecha_pub'])); $fechaPublicacion = str_replace('-', ' de ', $fechaPublicacion); $fechaPublicacion = str_replace($mesesIngles['months'], $mesesEspanol, $fechaPublicacion); $articulos[$index]['fecha_pub'] = $fechaPublicacion; } return new JsonResponse(array("articulos" => $articulos, 'categorias' => $categorias)); }
/** * @param Application $app * * @return mixed */ public function index(Application $app) { $categoriaModelo = new Categoria($app['db']); $categorias = $categoriaModelo->getTodo(array(), array(), "WHERE id > 1"); $articuloModelo = new Articulo($app['db']); $articulos = $articuloModelo->getTodo(); $mesesIngles = cal_info(0); $mesesEspanol = array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); foreach ($articulos as $index => $articulo) { # Poner sólo la primera en mayúscula el título // $articulos[$index]['titulo'] = strtolower($articulo['titulo']); // $articulos[$index]['titulo'][0] = strtoupper($articulo['titulo'][0]); $fechaPublicacion = date('d-F-Y | h:m A', strtotime($articulo['fecha_pub'])); $fechaPublicacion = str_replace('-', ' de ', $fechaPublicacion); $fechaPublicacion = str_replace($mesesIngles['months'], $mesesEspanol, $fechaPublicacion); $articulos[$index]['fecha_pub'] = $fechaPublicacion; } $menuModelo = new Menu($app['db']); $menuItems = $menuModelo->getItems(); return $app['twig']->render('frontend/index.html.twig', array('articulos' => $articulos, 'categorias' => $categorias, 'menu_items' => $menuItems)); }
/** * @param Request $request * @param Application $app * @param int $id * * @return RedirectResponse */ public function ver(Request $request, Application $app, $id) { $categoriaModelo = new Categoria($app['db']); $categorias = $categoriaModelo->getTodo(array(), array(), "WHERE id > 1"); $articuloModel = new Articulo($app['db']); $articulo = $articuloModel->getArticuloYEtiquetas($id); $mesesIngles = cal_info(0); $mesesEspanol = array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); if (empty($articulo)) { $app['session']->getFlashBag()->add('warning', array('message' => '¡Artículo no encontrado!')); return $app->redirect($app['url_generator']->generate('home')); } else { $fechaPublicacion = date('d-F-Y | h:m A', strtotime($articulo['fecha_pub'])); $fechaPublicacion = str_replace('-', ' de ', $fechaPublicacion); $fechaPublicacion = str_replace($mesesIngles['months'], $mesesEspanol, $fechaPublicacion); $imagenModel = new Imagen($app['db']); $articulo['imagen'] = $imagenModel->getImagenByUrl($articulo['imagen']); $articulo['fecha_pub'] = $fechaPublicacion; } $menuModelo = new Menu($app['db']); $menuItems = $menuModelo->getItems(); return $app['twig']->render('frontend/noticia.html.twig', array('articulo' => $articulo, 'categorias' => $categorias, 'menu_items' => $menuItems)); }
/** * @param Request $request * @param Application $app * @param int $id * * @return mixed|RedirectResponse */ public function editar(Request $request, Application $app, $id) { $alias = $app['security']->getToken()->getUser()->getUsername(); $usuarioModelo = new Usuario($app['db']); $usuario = $usuarioModelo->getUsuarioPorAlias($alias); // El autor del articulo debe ser el logueado $idAutor = $usuario['id']; // Categorías $categoriaModelo = new Categoria($app['db']); $categorias = $categoriaModelo->getTodo(); $categoriasOpcion = array(); foreach ($categorias as $categoria) { $categoriasOpcion[$categoria['id']] = $categoria['nombre']; } // Etiquetas $etiquetaModelo = new Etiqueta($app['db']); $etiquetas = $etiquetaModelo->getTodo(); $etiquetasOpcion = array(); foreach ($etiquetas as $etiqueta) { $etiquetasOpcion[$etiqueta['id']] = $etiqueta['nombre']; } $articuloModelo = new ArticuloModelo($app['db']); $articulo = $articuloModelo->getArticuloYEtiquetas($id); if (!$articulo) { $app['session']->getFlashBag()->add('warning', array('message' => '¡Artículo no encontrado!')); return $app->redirect($app['url_generator']->generate('articulo_list')); } $initial_data = array('categoria' => $articulo['id_categoria'], 'etiquetas' => $articulo['etiquetas'], 'imagen' => $articulo['imagen'], 'titulo' => $articulo['titulo'], 'descripcion' => $articulo['descripcion'], 'contenido' => $articulo['contenido'], 'fecha_pub' => $articulo['fecha_pub']); $form = $app['form.factory']->createBuilder('form', $initial_data); $form = $form->add('categoria', 'choice', array('choices' => $categoriasOpcion, 'required' => true)); $form = $form->add('etiquetas', 'choice', array('choices' => $etiquetasOpcion, 'required' => false, "multiple" => true)); $form = $form->add('imagen', 'url', array('required' => true)); $form = $form->add('titulo', 'text', array('required' => true)); $form = $form->add('descripcion', 'text', array('required' => true)); $form = $form->add('contenido', 'textarea', array('required' => true)); $form = $form->getForm(); if ("POST" == $app['request']->getMethod()) { $form->handleRequest($app["request"]); if ($form->isValid()) { $data = $form->getData(); $filasAfectadas = $articuloModelo->modificar($id, $idAutor, $data['categoria'], $data['imagen'], $data['titulo'], $data['descripcion'], $data['contenido'], $data['etiquetas']); if (is_array($filasAfectadas) || is_int($filasAfectadas) && $filasAfectadas == 1) { $app['session']->getFlashBag()->add('info', array('message' => "¡Artículo modificado!")); } else { $app['session']->getFlashBag()->add('danger', array('message' => "¡Artículo no modificado!")); } return $app->redirect($app['url_generator']->generate('articulo_edit', array("id" => $id))); } } return $app['twig']->render('backend/articulo/edit.html.twig', array("form" => $form->createView(), "imagen_src" => $articulo['imagen'], "id" => $id)); }