コード例 #1
0
 /**
  * @param Request $request
  * @param Application $app
  * @param $idArticulo
  * 
  * @return mixed|RedirectResponse
  */
 public function agregar(Request $request, Application $app, $idArticulo)
 {
     // Etiquetas
     $etiquetaModelo = new Etiqueta($app['db']);
     $etiquetas = $etiquetaModelo->getTodo();
     $options_etiq = array();
     foreach ($etiquetas as $etiqueta) {
         $options_etiq[$etiqueta['id']] = $etiqueta['nombre'];
     }
     $initial_data = array('id_articulo' => $idArticulo, 'id_etiqueta' => '');
     $form = $app['form.factory']->createBuilder('form', $initial_data);
     $form = $form->add('id_etiqueta', 'choice', array('choices' => $options_etiq, 'required' => true));
     $form = $form->getForm();
     if ("POST" == $request->getMethod()) {
         $form->handleRequest($request);
         if ($form->isValid()) {
             $data = $form->getData();
             $etiquetasArticuloModelo = new EtiquetasArticuloModelo($app['db']);
             $filasAfectadas = $etiquetasArticuloModelo->guardar($data['id_articulo'], $data['id_etiqueta']);
             if ($filasAfectadas == 1) {
                 $app['session']->getFlashBag()->add('success', array('message' => '¡Etiqueta de Artículo creada!'));
             } else {
                 $app['session']->getFlashBag()->add('warning', array('message' => '¡Etiqueta de Artículo ya está agregada!'));
             }
             return $app->redirect($app['url_generator']->generate('etiquetas_articulo_list', array('articulo_id' => $idArticulo)));
         }
     }
     return $app['twig']->render('backend/etiquetas_articulo/create.html.twig', array("form" => $form->createView(), "idArticulo" => $idArticulo));
 }
コード例 #2
0
ファイル: Etiqueta.php プロジェクト: jamc92/precursor-silex
 /**
  * @param Request $request
  * @param Application $app
  * @param int $id
  * 
  * @return RedirectResponse
  */
 public function eliminar(Request $request, Application $app, $id)
 {
     $etiquetaModelo = new EtiquetaModelo($app['db']);
     $etiqueta = $etiquetaModelo->getPorId($id);
     if (!empty($etiqueta)) {
         $filasAfectadas = $etiquetaModelo->eliminar($id);
         if ($filasAfectadas == 1) {
             $app['session']->getFlashBag()->add('info', array('message' => '¡Etiqueta eliminada!'));
         }
     } else {
         $app['session']->getFlashBag()->add('warning', array('message' => '¡Etiqueta no encontrada!'));
     }
     return $app->redirect($app['url_generator']->generate('etiqueta_list'));
 }
コード例 #3
0
ファイル: Articulo.php プロジェクト: jamc92/precursor-silex
 /**
  * @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));
 }
コード例 #4
0
ファイル: Noticia.php プロジェクト: jamc92/precursor-silex
 /**
  * @param Request $request
  * @param Application $app
  * @param int $idEtiqueta  ID de la etiqueta del articulo
  *
  * @return mixed
  */
 public function etiqueta(Request $request, Application $app, $idEtiqueta)
 {
     $articuloModel = new Articulo($app['db']);
     $articulosEtiqueta = $articuloModel->getArticulosByEtiqueta($idEtiqueta);
     $etiquetaModel = new Etiqueta($app['db']);
     $etiqueta = $etiquetaModel->getPorId($idEtiqueta);
     $menuModelo = new Menu($app['db']);
     $menuItems = $menuModelo->getItems();
     return $app['twig']->render('frontend/articulos_etiqueta.html.twig', array('articulosEtiqueta' => $articulosEtiqueta, 'etiqueta' => $etiqueta, 'menu_items' => $menuItems));
 }