English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Introducción
Este paquete simplifica el proceso de añadir enlaces de compartir a tu aplicación Laravel. ¡No dudes en abrir una solicitud de extracción si notas que falta algún servicio!
Un enlace de compartir es una URL que combina una URL base de una red social con parámetros de consulta para compartir contenido de tu sitio web o aplicación. Los parámetros suelen incluir la URL del contenido y un mensaje predefinido. Estos enlaces, como se muestra en los ejemplos, permiten a los usuarios compartir fácilmente publicaciones en plataformas como Twitter, Facebook y Telegram. Utiliza este paquete de código abierto para crear rápidamente enlaces de compartir a través del sistema de componentes blade de Laravel.
Ejemplo
<x-link-sharer service="twitter" text="¡Comparte conmigo!" url="https://www.defectivecode.com" hashtags="genial,enlaces" class="p-4"> <!-- Tu código HTML aquí para controlar la apariencia y el diseño del botón de compartir --> <span class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">¡Haz clic en mí!</span></x-link-sharer>
Instalación
- Primero, instala el paquete PHP ejecutando el siguiente comando de composer:
composer require defectivecode/link-sharer
- ¡Eso es todo! Nuestro paquete se instalará automáticamente utilizando el descubrimiento de paquetes de Laravel.
Servicios
Los proveedores de servicios ocasionalmente actualizan sus enlaces de compartir sin previo aviso. Hacemos todo lo posible para mantenernos actualizados con estos cambios. Sin embargo, si te encuentras con un servicio no funcional, por favor abre un problema o envía una solicitud de extracción. Para agregar un nuevo servicio, consulta la sección de contribuciones a continuación.
Algunos servicios ofrecen parámetros adicionales que se pueden pasar al componente. Estos están documentados en la tabla a continuación.
| Servicio | Texto Soportado | URL Soportada | Notas |
|---|---|---|---|
| Blogger | ✔️ | ✔️ | t El texto de la publicación del blog. |
| Diaspora | ✔️ | ✔️ | |
| Diigo | ✔️ | ✔️ | description Una descripción para añadir a la publicación. |
| Douban | ✔️ | ✔️ | comment Un comentario para añadir a la publicación. |
| Evernote | ✔️ | ✔️ | |
| ❌ | ✔️ | ||
| ✔️ | ✔️ | quote Una cita para añadir a la publicación. |
|
| Gmail | ✔️ | ✔️ | bcc Una lista de direcciones de correo electrónico separadas por comas para BCC. cc Una lista de direcciones de correo electrónico separadas por comas para CC. su El asunto del correo. to Una lista de direcciones de correo electrónico separadas por comas a las que enviar. |
| HackNews | ✔️ | ✔️ | |
| Instapaper | ✔️ | ✔️ | description Una descripción de la publicación. |
| LineMe | ❌️ | ✔️ | |
| ❌ | ✔️ | ||
| LiveJournal | ✔️ | ✔️ | |
| Meneame | ❌️ | ✔️ | |
| Okru | ❌️ | ✔️ | |
| Outlook | ✔️ | ✔️ | |
| ✔️ | ✔️ | media Una URL de imagen para mostrar en la publicación. |
|
| Plurk | ❌ ️ | ✔️ | |
| ✔️ | ✔️ | ||
| QZone | ✔️ | ✔️ | summary Un resumen de la publicación. |
| ✔️ | ✔️ | ||
| Renren | ✔️ | ✔️ | description Una descripción de la publicación. srcUrl La URL original de la publicación. |
| Skype | ✔️ | ✔️ | |
| Telegram | ✔️ | ✔️ | |
| Threema | ❌ | ✔️ | id El id de la persona a la que enviar la publicación. |
| Tumblr | ✔️ | ✔️ | caption Un título para añadir a la publicación. tags Una lista de etiquetas separadas por comas para aplicar a la publicación. |
| ✔️ | ✔️ | hastags Una lista de hashtags separada por comas para aplicar al tweet. via El tweeter al que dar crédito. |
|
| Viber | ✔️ | ✔️ | |
| VKontakte | ✔️ | ✔️ | description Una descripción de la publicación. image Una URL de imagen para mostrar en la publicación. |
| ✔️ | ✔️ | ||
| ✔️ | ✔️ | ||
| ❌ | ✔️ | ||
| YahooMail | ✔️ | ✔️ |
Contribuciones
Agregar un servicio es relativamente sencillo. Comienza creando una nueva clase de servicio dentro de la carpeta src/Services. Nombra la clase según el servicio que estás añadiendo. El sistema registra automáticamente el servicio a través de la fábrica, por lo que no es necesario el registro manual.
El servicio de Gmail proporcionado a continuación sirve como un buen ejemplo.
<?php namespace DefectiveCode\LinkSharer\Services; use DefectiveCode\LinkSharer\Traits\AppendsLinks; class Gmail extends Service{ use AppendsLinks; protected string $baseUrl = 'https://mail.google.com/mail/u/0'; protected array $baseParameterMapping = [ 'text' => 'body', ]; protected array $additionalParameters = [ 'bcc', 'cc', 'su', 'to', ]; protected array $defaultParameters = [ 'view' => 'cm', ];}
Ten en cuenta que solo la baseUrl es obligatoria. Los baseParameterMapping, additionalParameters y defaultParameters son opcionales, pero pueden mejorar la funcionalidad.
$baseUrl
La URL de un servicio no necesita comenzar con HTTPS. Por ejemplo, Viber utiliza
viber://forward.
La propiedad baseUrl especifica la URL principal del servicio. Esta URL es fundamental al generar el enlace de compartir, al cual se le añaden parámetros de consulta. Usando Gmail como ejemplo, su URL base es https://mail.google.com/mail/u/0.
$baseParameterMapping
Este paquete identifica dos atributos principales: text y url, dada su omnipresencia en la mayoría de los proveedores de servicios. Solo define estos atributos si el servicio en cuestión utiliza una convención de nombres diferente. Por ejemplo, Gmail utiliza body en lugar de text, necessitando este mapeo explícito. Al usar Gmail, cualquier atributo text pasado al componente blade se transforma en el parámetro de consulta body en el enlace de compartir.
$additionalParameters
Algunos servicios aceptan parámetros de consulta más específicos. Tomando Gmail como referencia, soporta bcc, cc, su y to. Defínalos en el arreglo additionalParameters. Cuando los usuarios incluyan estos atributos en el componente blade, se añadirán al enlace de compartir. Asegúrate de que estos parámetros también estén listados en la tabla de servicios soportados, con descripciones concisas.
$defaultParameters
Ciertos servicios exigen parámetros de consulta específicos para que el enlace de compartir funcione. Por ejemplo, Gmail exige la inclusión de view=cm. Tales atributos obligatorios se declaran en el arreglo defaultParameters. Siempre se añaden al enlace de compartir y no se pueden omitir.
prepareAttributes()
Para manipular los atributos antes de generar un enlace de compartir, introduce un método prepareAttributes en tu servicio. Este método se activa antes de pasar atributos al método generateLink, permitiendo modificaciones personalizadas de los atributos. A continuación se muestra una demostración utilizando el rasgo AppendsLinks.
<?php namespace DefectiveCode\LinkSharer\Traits; trait AppendsLinks{ protected function prepareAttributes(): void { if (isset($this->attributes['text']) && isset($this->attributes['url'])) { $this->attributes['text'] = $this->attributes['text'] . "\n" . $this->attributes['url']; return; } if (isset($this->attributes['url'])) { $this->attributes['text'] = $this->attributes['url']; } }}
Los atributos pasados al servicio son accesibles a través del arreglo $attributes. En el ejemplo ilustrado:
- Si ambos atributos
textyurlestán presentes, laurlse agrega al atributotext. - Si solo está disponible el atributo
url, el atributotextasume el valor de laurl.
Directrices de Soporte
¡Gracias por elegir nuestro paquete de código abierto! Tómate un momento para revisar estas directrices de soporte. Te ayudarán a sacar el máximo provecho de nuestro proyecto.
Soporte Impulsado por la Comunidad
Nuestro proyecto de código abierto es impulsado por nuestra increíble comunidad. Si tienes preguntas o necesitas asistencia, StackOverflow y otros recursos en línea son tus mejores opciones.
Errores y Priorización de Funciones
La realidad de gestionar un proyecto de código abierto significa que no podemos abordar cada error reportado o solicitud de función de inmediato. Priorizamos los problemas en el siguiente orden:
1. Errores que Afectan Nuestros Productos de Pago
Los errores que impactan nuestros productos de pago siempre serán nuestra máxima prioridad. En algunos casos, solo abordaremos los errores que nos afectan directamente.
2. Solicitudes de Extracción de la Comunidad
Si has identificado un error y tienes una solución, por favor envía una solicitud de extracción. Después de los problemas que afectan a nuestros productos, damos la siguiente mayor prioridad a estas soluciones impulsadas por la comunidad. Una vez revisada y aprobada, integraremos tu solución y daremos crédito a tu contribución.
3. Apoyo Financiero
Para problemas fuera de las categorías mencionadas, puedes optar por financiar su resolución. Cada problema abierto está vinculado a un formulario de pedido donde puedes contribuir financieramente. Priorizamos estos problemas según la cantidad de financiamiento proporcionada.
Contribuciones de la Comunidad
El código abierto prospera cuando su comunidad está activa. Incluso si no estás solucionando errores, considera contribuir a través de mejoras de código, actualizaciones de documentación, tutoriales o asistiendo a otros en los canales de la comunidad. Animamos encarecidamente a todos, como comunidad, a ayudar a apoyar el trabajo de código abierto.
Para reiterar, DefectiveCode priorizará los errores en función de cómo impactan a nuestros productos de pago, las solicitudes de extracción de la comunidad y el apoyo financiero recibido para los problemas.
Licencia - Licencia MIT
Copyright © Defective Code, LLC. Todos los derechos reservados
Por la presente se otorga permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar el Software sin restricciones, incluyendo sin limitación los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y a permitir a las personas a las que se les proporciona el Software hacerlo, sujeto a las siguientes condiciones:
La mención de copyright anterior y esta nota de permiso deberán incluirse en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITÁNDOSE A LAS GARANTÍAS DE COMERCIALIZABILIDAD, ADECUACIÓN PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO O OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, O EN CONEXIÓN CON EL SOFTWARE O EL USO O OTRAS NEGOCIACIONES EN EL SOFTWARE.