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