Integración de Imágenes y Contenido Multimedia en Proyectos Web
Resumen
¿Cómo integrar contenido multimedia en tu aplicación?
¡Vamos a guiarnos a través de la magia de incrustar imágenes y otros medios en tu proyecto! Incorporar contenido multimedia no solo mejora el atractivo visual de tu aplicación, sino que también enriquece la experiencia del usuario. Vamos a ver cómo se hace esto, paso a paso.
¿Cómo se añade una imagen?
Primero, asegúrate de que la imagen exista en tu base de datos de la aplicación. Una vez que esté almacenada, es hora de trabajar con la zona pública de tu aplicación, específicamente en el archivo de vistas donde se gestionarán tus posts.
Condicional para la imagen: Es fundamental trabajar con una condicional que verifique si tenemos una imagen.
Si no existe, puedes optar por mostrar contenido alternativo.
Ruta de la imagen: Anteriormente, las imágenes incluían rutas que podían no ser directas. Para tener acceso desde una carpeta pública, concedemos permiso usando un "enlace simbólico".
¿Cómo usar el contenido embebido?
Cuando hablamos de contenido embebido, nos referimos a multimedia que no es local, como videos de YouTube o podcasts.
Configuración embebida: Para manejar correctamente el contenido embebido, es necesario emplear las clases de UI como las de Bootstrap para asegurar una visualización adecuada.
Utiliza las clases embed-responsive para garantizar una correcta proporción en la visualización.
Resultado de prueba: Confirma que el video o el podcast se integran correctamente verificando su funcionalidad tras la incorporación.
¿Cómo manejar medios desde la vista administrativa?
El panel de administración juega un papel crucial, permitiéndote incorporar y manejar tanto imágenes como contenido embebido.
Cargar un podcast o video:
Selecciona la opción de compartir contenido embebido proporcionado por plataformas como YouTube.
Copia y pega el código de incrustación directamente en el formulario de carga de tu plataforma.
Verificación Enlinea:
Después de subir un nuevo contenido, verifica su integración y comprueba su funcionalidad en la plataforma.
¿Cómo replicar lógica para cada post?
Finalmente, la misma lógica que has implementado para manejar los condicionales y la presentación de imágenes o contenido embebido puede y debe replicarse para cada post en tu aplicación. Esto asegura una experiencia de usuario consistente y un look uniforme a través de tu sitio.
Con estas herramientas al alcance de tu mano, tienes el poder de llevar tu aplicación al siguiente nivel de profesionalismo ¡Atrévete a intentarlo y sorpréndenos con tus creaciones en la zona de comentarios!
Hola Jimmy también tienes la opción de modificar la ruta para que siga funcionando el binding para que tome el slug y no el id, ya que si modificas el parámetro el binding automático de laravel en ocaciones no funciona como tu esperas, esta es una recomendación que puedo darte 😀.
Customizing The Route Key Name
If you would like model binding to use a database column other than id when retrieving a given model class, you may override the getRouteKeyName method on the Eloquent model:
/**
* Get the route key for the model.
*
* @returnstring */publicfunctiongetRouteKeyName(){return'slug';}
Hola, probe la solución de Jimmy y no me funciono pero no entiendo porque. La solución de jcmexdev si me funciono.
Para la primera opción, como puedo verificar las rutas de un post? Porque el <a> de las views seguian apuntando al link sin el slug e introduciendolo manualmente tampoco aparecian. Me aparecia el 404 not found.
Excelente proyecto, lo seguí todo al pie de la letra y logré hacer el blog con Laravel, sin duda aprendí cosas nuevas.
Les dejo un enlace a mi repositorio de GitHub el cual contiene el proyecto ya terminado y el reto resuelto en Laravel 8 por si gustan comparar sus códigos :D
Les comparto el resultado de mi blog. Personalmente me gusta más el tema oscuro. Le añadí una sección de comentarios (todavía no lo conecté ya que tengo que desplegar mi app en un servidor). Planeo seguir y escalar este projecto, me gusta la idea de tener un blog y recibir algunos comentarios.
Una mejor opcion de obtener la URL de la imagen: \Storage::disk("public")->url($this->image);
:) es válido
Hola,
Les quiero compartir mi proyecto.
La sección administrativa de los articulos.
La vista principal de los articulos
Súper Pablo. Me parece más limpio este diseño. Cómo se hace para activar el menú de tres puntos en cada post?
Apliqué lo que aprendí en esta clase en la vista de editar porque me pareció bien mostrarle al usuario todos los elementos que existen y puede modificar de la publicación... ¿Qué opinan?
Use este codigo en la view "post" para la image y el embedded code
¿Cómo hago para que en la url en ves de pasar el id, pueda usar el slug del post?
también tengo el mismo problema, ¿como hago para que funcione de nuevo el slug, retrocedo al vídeo y tengo la misma configuración, pero ahora no esta funcionando?
Ahora el controlador PageController en su metodo post hice una modificación:
Primero cambie el parámetro que recibía el metodo.
Hago una consula a la BD la cual debe de traerme el elemento que en el campo slug coincida con el que obtenemos por el parametro slug de nuestro metodo y le digo al final que solo me traiga la primer coincidencia con el metodo first().
Por ultimo en la vista principal donde podemos ver el listado de todos nuestros posts, cambie el html, específicamente el enlace para que en vez de pasarle el post al controlador, le pasara el slug de nuestro registro de la bd:
¿Cómo puedo subir múltiples de imágenes y obtener en el blog con laravel?
Puedes crear un arreglo de imágenes, las cuales debes ir iterando para guardar dirección en la db. Yo pude guardar hasta 4 (ya que es lo que necesitaba). Si deseas, te puedo echar una mano :D
lo hice creando una tabla images relacionandolo con post_id por ejemplo.
Hola, cree el proyecto y dentro de mi plan de practica intente cargarlo a mi hosting, el problema es que hasta el momento no se como dar solución al tema de las rutas de las imágenes, esto dado a que localmente funciona el tema del link de /storage/app/public/posts aputnando a /public/storage/posts pero en el server no, alguien podría orientarme por favor.
Regularmente el código que generamos con Laravel debe de bastar y funcionar, ¿el servidor te da un error en especifico?
buenas tardes, cuando utilizo un contenedor docker con nginx no se esta creando el link storage dentro del servidor, que hago en ese caso?
Hola, me pueden apoyar con lo siguiente?
si me incrusta el video pero si me voy a inspeccionar me arroja los siguientes errores
Indicate whether a cookie is intended to be set in a cross-site context by specifying its SameSite attribute
Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute
¿Conocen alguna librería para redimensionar o cambiar el aspect ratio a las imágenes que nos cargan en los formularios?
Por ejemplo en caso de que carguen una imagen cuadrada o alargada, cómo puedo hacer para que el usuario elija cortarla y ver como se redimensiona, algo como lo que hace Whatsapp para cambiar la foto de perfil.