public function agregar() { //Aca se manda a la funcion agregarItem de la clase Item //y se queda con la respuesta para redirigir cual sea el caso $respuesta = Portfolio::agregar(Input::all()); /* if ($respuesta['error'] == true) { return Redirect::to('admin/producto')->withErrors($respuesta['mensaje'])->withInput(); } else { return Redirect::to('admin/producto')->with('mensaje', $respuesta['mensaje']); } * */ if ($respuesta['error'] == true) { $seccion = Seccion::find(Input::get('seccion_id')); $menu = $seccion->menuSeccion()->lang()->url; $ancla = '#' . $seccion->estado . $seccion->id; return Redirect::to($this->array_view['prefijo'] . '/admin/' . $this->folder_name . '/agregar/' . $seccion->id)->with('mensaje', $respuesta['mensaje'])->with('error', true); //->with('ancla', $ancla); //return Redirect::to('admin/producto')->withErrors($respuesta['mensaje'])->withInput(); } else { $seccion = Seccion::find(Input::get('seccion_id')); $menu = $seccion->menuSeccion()->lang()->url; $ancla = '#' . $seccion->estado . $seccion->id; return Redirect::to($this->array_view['prefijo'] . '/' . $menu)->with('mensaje', $respuesta['mensaje'])->with('ancla', $ancla)->with('ok', true); } }
public static function agregar($input) { $respuesta = array(); //Se definen las reglas con las que se van a validar los datos //del PRODUCTO $reglas = array('titulo' => array('required', 'max:50', 'unique:item_lang'), 'seccion_id' => array('integer'), 'imagen_portada_crop' => array('required')); //Se realiza la validación $validator = Validator::make($input, $reglas); if ($validator->fails()) { $messages = $validator->messages(); if ($messages->has('titulo')) { $respuesta['mensaje'] = 'El título de la obra contiene más de 50 caracteres o ya existe.'; } elseif ($messages->has('imagen_portada_crop')) { $respuesta['mensaje'] = 'Se olvidó de guardar la imagen recortada.'; } else { $respuesta['mensaje'] = 'Los datos necesarios para la obra son erróneos.'; } //Si está todo mal, carga lo que corresponde en el mensaje. $respuesta['error'] = true; } else { $ok = false; 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']) { $ok = true; } } else { $hosts = array('youtube.com', 'www.youtube.com'); $paths = array('/watch'); if (Video::validarUrl($video, $hosts, $paths)['estado']) { if ($ID_video = Youtube::parseVIdFromURL($video)) { $ok = true; } } } } else { $ok = true; break; } } } else { $dataUrl = parse_url($input['video']); if (in_array($dataUrl['host'], ['vimeo.com', 'www.vimeo.com'])) { $hosts = array('vimeo.com', 'www.vimeo.com'); if (Video::validarUrlVimeo($input['video'], $hosts)['estado']) { $ok = true; } } else { $hosts = array('youtube.com', 'www.youtube.com'); $paths = array('/watch'); if (Video::validarUrl($input['video'], $hosts, $paths)['estado']) { if ($ID_video = Youtube::parseVIdFromURL($input['video'])) { $ok = true; } } } } } else { $ok = true; } if ($ok) { //Lo crea definitivamente $portfolio_simple = Portfolio::agregar($input); if (isset($input['cuerpo'])) { $cuerpo = $input['cuerpo']; } else { $cuerpo = NULL; } if (!$portfolio_simple['error']) { $portfolio_completo = static::create(['portfolio_simple_id' => $portfolio_simple['data']->id]); $datos_lang = array('cuerpo' => $cuerpo); $idiomas = Idioma::where('estado', 'A')->get(); foreach ($idiomas as $idioma) { /* if ($idioma->codigo != Config::get('app.locale')) { $datos_lang['url'] = $idioma->codigo . "/" . $datos_lang['url']; } * */ $portfolio_completo->idiomas()->attach($idioma->id, $datos_lang); } $respuesta['data'] = $portfolio_completo; $respuesta['error'] = false; $respuesta['mensaje'] = "Obra creada."; } else { $respuesta['error'] = true; $respuesta['mensaje'] = "La obra no pudo ser creada. Compruebe los campos."; } } else { $respuesta['error'] = true; $respuesta['mensaje'] = "Problema en la/s url de video cargada."; } } return $respuesta; }