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; }