Exemple #1
0
 public static function editarItem($input)
 {
     $respuesta = array();
     $reglas = array();
     if (isset($input['file']) && $input['file'] != "" && !is_array($input['file'])) {
         $reglas['x'] = array('required');
         $reglas['y'] = array('required');
         $reglas['h'] = array('required');
         $reglas['w'] = array('required');
     }
     if (isset($input['imagen_portada_crop']) && $input['imagen_portada_crop'] != "") {
         $reglas['imagen_portada_crop'] = array('required');
     }
     $validator = Validator::make($input, $reglas);
     if ($validator->fails()) {
         $respuesta['mensaje'] = '';
         $respuesta['error'] = true;
     } else {
         $item = Item::find($input['id']);
         //
         //            $item_anterior = array(
         //                'item_id' => $item->id,
         //                'titulo' => $item->titulo,
         //                'descripcion' => $item->descripcion,
         //                'url' => $item->url,
         //                'fecha_modificacion' => date("Y-m-d H:i:s"),
         //                'usuario_id' => Auth::user()->id
         //            );
         //
         //            if ($input['titulo'] == "") {
         //                $url = $item->url;
         //            } else {
         //                $url = Str::slug($input['titulo']);
         //            }
         //
         //            $item->titulo = $input['titulo'];
         //            $item->descripcion = $input['descripcion'];
         //            $item->url = $url;
         //            $item->fecha_modificacion = date("Y-m-d H:i:s");
         //
         //            $item->save();
         //            $item_modificacion = DB::table('item_modificacion')->insert($item_anterior);
         $lang = Idioma::where('codigo', App::getLocale())->where('estado', 'A')->first();
         //            echo $lang->id." - ".App::getLocale()." - ".$input['id'];
         //            die();
         $item_lang = Item::join('item_lang', 'item_lang.item_id', '=', 'item.id')->where('item_lang.lang_id', $lang->id)->where('item_lang.estado', 'A')->where('item.id', $input['id'])->first();
         if ($input['titulo'] == "") {
             $url = $item_lang->url;
         } else {
             $url = Str::slug($input['titulo']);
         }
         $datos = array('titulo' => $input['titulo'], 'descripcion' => $input['descripcion'], 'url' => $url, 'fecha_modificacion' => date("Y-m-d H:i:s"));
         $item_modificacion = DB::table('item_lang')->where('id', $item_lang->id)->update($datos);
         if (isset($input['file']) && $input['file'] != "") {
             if (is_array($input['file'])) {
                 foreach ($input['file'] as $key => $imagen) {
                     if ($imagen != "") {
                         $imagen_creada = Imagen::agregarImagen($imagen, $input['epigrafe'][$key]);
                         if (!$imagen_creada['error']) {
                             if (isset($input['destacado']) && $input['destacado'] == $key) {
                                 $destacado = array("destacado" => "A");
                             } else {
                                 $destacado = array("destacado" => NULL);
                             }
                             $item->imagenes()->attach($imagen_creada['data']->miniatura()->id, $destacado);
                         }
                     }
                 }
             } else {
                 $coordenadas = array("x" => $input['x'], "y" => $input['y'], "w" => $input['w'], "h" => $input['h']);
                 $imagen_creada = Imagen::agregarImagen($input['file'], $input['epigrafe'], $coordenadas);
                 $item->imagenes()->attach($imagen_creada['data']->miniatura()->id, array("destacado" => "A"));
                 //$item->imagenes()->attach($imagen_creada['data']->->id, array("destacado" => "A"));
             }
         }
         if (isset($input['archivo']) && $input['archivo'] != "") {
             if (is_array($input['archivo'])) {
                 foreach ($input['archivo'] as $key => $archivo) {
                     if ($archivo != "") {
                         $data_archivo = array('archivo' => $archivo);
                         $archivo_creado = Archivo::agregar($data_archivo);
                         $item->archivos()->attach($archivo_creado['data']->id);
                     }
                 }
             } else {
                 $data_archivo = array('archivo' => $input['archivo']);
                 $archivo_creado = Archivo::agregar($data_archivo);
                 $item->archivos()->attach($archivo_creado['data']->id);
                 //$item->imagenes()->attach($imagen_creada['data']->miniatura()->id, array("destacado" => "A"));
             }
         }
         if (isset($input['imagen_id']) && $input['imagen_id'] != "") {
             $data_imagen = array('id' => $input['imagen_id'], 'epigrafe' => $input['epigrafe']);
             $imagen_editada = Imagen::editar($data_imagen);
         }
         if (isset($input['imagen_portada_editar']) && $input['imagen_portada_editar'] != "") {
             $data_imagen = array('id' => $input['imagen_portada_editar'], 'epigrafe' => $input['epigrafe_imagen_portada_editar']);
             $imagen_editada = Imagen::editar($data_imagen);
         }
         if (isset($input['imagen_portada']) && $input['imagen_portada'] != "") {
             if (isset($input['epigrafe_imagen_portada']) && $input['epigrafe_imagen_portada'] != "") {
                 $epigrafe_imagen_portada = $input['epigrafe_imagen_portada'];
             } else {
                 $epigrafe_imagen_portada = NULL;
             }
             if (isset($input['x']) && $input['x']) {
                 $coordenadas = array("x" => $input['x'], "y" => $input['y'], "w" => $input['w'], "h" => $input['h']);
             } else {
                 $coordenadas = NULL;
             }
             $imagen_creada = Imagen::agregarImagen($input['imagen_portada'], $epigrafe_imagen_portada, $coordenadas);
             $item->imagenes()->attach($imagen_creada['data']->miniatura()->id, array("destacado" => "A"));
         }
         if (isset($input['imagenes_editar']) && $input['imagenes_editar'] != "") {
             foreach ($input['imagenes_editar'] as $key => $imagen) {
                 if ($imagen != "") {
                     $datos = array('id' => $imagen, 'epigrafe' => $input['epigrafe_imagen_editar'][$key]);
                     $imagen_modificada = Imagen::editar($datos);
                 }
             }
         }
         if (isset($input['imagen_crop_editar']) && $input['imagen_crop_editar'] != "") {
             if (is_array($input['imagen_crop_editar'])) {
                 foreach ($input['imagen_crop_editar'] as $key => $imagen) {
                     if ($imagen != "") {
                         $datos = array('id' => $imagen, 'epigrafe' => $input['epigrafe_imagen_crop_editar'][$key]);
                         $imagen_crop = Imagen::editar($datos);
                     }
                 }
             }
         }
         if (isset($input['imagen_portada_crop']) && $input['imagen_portada_crop'] != "") {
             if (is_array($input['imagen_portada_crop'])) {
                 foreach ($input['imagen_portada_crop'] as $key => $imagen) {
                     if ($imagen != "") {
                         if (isset($input['imagen_portada_ampliada']) && $input['imagen_portada_ampliada'] != "") {
                             $ampliada = $input['imagen_portada_ampliada'][$key];
                         } else {
                             $ampliada = $imagen;
                         }
                         if (isset($input['epigrafe_imagen_portada']) && $input['epigrafe_imagen_portada'] != "") {
                             $epigrafe_imagen_portada = $input['epigrafe_imagen_portada'][$key];
                         } else {
                             $epigrafe_imagen_portada = NULL;
                         }
                         $imagen_crop = Imagen::agregarImagenCropped($imagen, $ampliada, $epigrafe_imagen_portada);
                         if (!$imagen_crop['error']) {
                             $destacado = array("destacado" => NULL);
                             $item->imagenes()->attach($imagen_crop['data']->id, $destacado);
                         }
                     }
                 }
             } else {
                 if (isset($input['imagen_portada_ampliada']) && $input['imagen_portada_ampliada'] != "") {
                     $ampliada = $input['imagen_portada_ampliada'];
                 } else {
                     $ampliada = $input['imagen_portada_crop'];
                 }
                 if (isset($input['epigrafe_imagen_portada']) && $input['epigrafe_imagen_portada'] != "") {
                     $epigrafe_imagen_portada = $input['epigrafe_imagen_portada'];
                 } else {
                     $epigrafe_imagen_portada = NULL;
                 }
                 $imagen_crop = Imagen::agregarImagenCropped($input['imagen_portada_crop'], $ampliada, $epigrafe_imagen_portada);
                 $item->imagenes()->attach($imagen_crop['data']->id, array("destacado" => "A"));
             }
         }
         if (isset($input['video']) && $input['video'] != "") {
             if (is_array($input['video'])) {
                 foreach ($input['video'] as $key => $video) {
                     if ($video != "") {
                         $dataUrl = parse_url($video);
                         if (in_array($dataUrl['host'], ['vimeo.com', 'www.vimeo.com'])) {
                             $hosts = array('vimeo.com', 'www.vimeo.com');
                             if (Video::validarUrlVimeo($video, $hosts)['estado']) {
                                 $data_video = array('ID_video' => substr($dataUrl['path'], 1));
                                 $video_creado = Video::agregarVimeo($data_video);
                                 $item->videos()->attach($video_creado['data']->id);
                             }
                         } else {
                             $hosts = array('youtube.com', 'www.youtube.com');
                             $paths = array('/watch');
                             if (Video::validarUrl($video, $hosts, $paths)['estado']) {
                                 if ($ID_video = Youtube::parseVIdFromURL($video)) {
                                     $data_video = array('ID_video' => $ID_video);
                                     $video_creado = Video::agregarYoutube($data_video);
                                     $item->videos()->attach($video_creado['data']->id);
                                 }
                             }
                         }
                     }
                 }
             } else {
                 $dataUrl = parse_url(Input::get('video'));
                 if (in_array($dataUrl['host'], ['vimeo.com', 'www.vimeo.com'])) {
                     $hosts = array('vimeo.com', 'www.vimeo.com');
                     if (Video::validarUrlVimeo(Input::get('video'), $hosts)['estado']) {
                         $data_video = array('ID_video' => substr($dataUrl['path'], 1));
                         $video_creado = Video::agregarVimeo($data_video);
                         $item->videos()->attach($video_creado['data']->id);
                     }
                 } else {
                     $hosts = array('youtube.com', 'www.youtube.com');
                     $paths = array('/watch');
                     if (Video::validarUrl(Input::get('video'), $hosts, $paths)['estado']) {
                         if ($ID_video = Youtube::parseVIdFromURL(Input::get('video'))) {
                             $data_video = array('ID_video' => $ID_video);
                             $video_creado = Video::agregarYoutube($data_video);
                             $item->videos()->attach($video_creado['data']->id);
                         }
                     }
                 }
             }
         }
         if (isset($input['secciones']) && count($input['secciones']) > 0) {
             foreach ($item->secciones as $seccion) {
                 $data_borrar = array('item_id' => $item->id, 'seccion_id' => $seccion->id);
                 $item->borrarItemSeccion($data_borrar);
             }
             foreach ($input['secciones'] as $secc) {
                 $destacado = NULL;
                 if (isset($input['item_destacado']) && $input['item_destacado'] != "") {
                     if ($input['item_destacado'] == "A") {
                         $destacado = 'A';
                     }
                 }
                 $info = array('estado' => 'A', 'destacado' => $destacado);
                 $item->secciones()->attach($secc, $info);
                 //ME QUEDO CON LA SECCION CORRESPONDIENTE
                 //$seccion = Seccion::find($input['seccion_id']);
                 $seccion = Seccion::find($secc);
                 //ME QUEDO CON EL MENU AL CUAL PERTENECE LA SECCION
                 foreach ($seccion->menu as $menu) {
                     $menu_id = $menu->id;
                 }
                 $menu = Menu::find($menu_id);
                 //ME QUEDO CON LA CATEGORIA AL CUAL PERTENECE EL MENU
                 foreach ($menu->categorias as $categoria) {
                     $categoria_id = $categoria->id;
                 }
                 //IMPACTO AL ITEM CON LA CATEGORIA CORRESPONDIENTE
                 if (isset($categoria_id)) {
                     $item->categorias()->attach($categoria_id);
                 }
             }
         }
         /*
          if (isset($input['seccion_nueva_id']) && ($input['seccion_nueva_id'] != "")) {
          if ($item->seccionItem()->id != $input['seccion_nueva_id']) {
          $data_borrar = array(
          'item_id' => $item->id,
          'seccion_id' => $item->seccionItem()->id
          );
          $item->borrarItemSeccion($data_borrar);
         
          $item->secciones()->attach($input['seccion_nueva_id'], array('estado' => 'A'));
          }
          }
         
          if (isset($input['item_destacado']) && ($input['item_destacado'] != "")) {
          $data_item = array(
          'item_id' => $item->id,
          'seccion_id' => $item->seccionItem()->id
          );
         
          if ($input['item_destacado'] == "A") {
          $destacado = 'A';
          } else {
          $destacado = NULL;
          }
         
          DB::table('item_seccion')->where($data_item)->update(['destacado' => $destacado]);
          } else {
          $data_item = array(
          'item_id' => $item->id,
          'seccion_id' => $item->seccionItem()->id
          );
          DB::table('item_seccion')->where($data_item)->update(['destacado' => NULL]);
          }
         * 
         */
         $respuesta['mensaje'] = 'Obra modificada.';
         $respuesta['error'] = false;
         $respuesta['data'] = $item;
     }
     return $respuesta;
 }