Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

Advertencia de traducción

Este documento ha sido traducido automáticamente. Si hay errores de traducción, por favor abre una solicitud de extracción en el proyecto y agrega el archivo traducido a docs/{Código ISO 639-1}.md.

Introducción

Este paquete simplifica el proceso de agregar enlaces de compartir a tu aplicación Laravel. ¡Si notas que nos falta algún servicio, no dudes en abrir una solicitud de extracción!

Un enlace de compartir es una URL que combina una URL base de redes sociales 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="¡Compártelo!" url="https://www.defectivecode.com" hashtags="increible,enlaces" class="p-4">
<!-- Tu código HTML aquí para controlar la apariencia 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 aquí!</span>
</x-link-sharer>

Instalación

  1. Primero instala el paquete PHP ejecutando el siguiente comando de composer:
    composer require defectivecode/link-sharer
  2. ¡Eso es todo! Nuestro paquete se instalará automáticamente utilizando el descubrimiento de paquetes de Laravel.

Servicios

Los proveedores de servicios actualizan ocasionalmente sus enlaces compartidos sin previo aviso. Hacemos todo lo posible para mantenernos actualizados con estos cambios. Sin embargo, si encuentras 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 contribución a continuación.

Algunos servicios proporcionan parámetros adicionales que se pueden pasar al componente. Estos se documentan en la tabla a continuación.

Servicio Texto Compatible URL Compatible Notas
Blogger ✔️ ✔️ t El texto de la publicación del blog.
Diaspora ✔️ ✔️
Diigo ✔️ ✔️ description Una descripción para agregar a la publicación.
Douban ✔️ ✔️ comment Un comentario para agregar a la publicación.
Evernote ✔️ ✔️
Facebook ✔️
Flipboard ✔️ ✔️ quote Una cita para agregar a la publicación.
Gmail ✔️ ✔️ bcc Una lista separada por comas de direcciones de correo electrónico para BCC.
cc Una lista separada por comas de direcciones de correo electrónico para CC.
su El asunto del correo electrónico.
to Una lista separada por comas de direcciones de correo electrónico para enviar a.
HackNews ✔️ ✔️
Instapaper ✔️ ✔️ description Una descripción de la publicación.
LineMe ❌️ ✔️
LinkedIn ✔️
LiveJournal ✔️ ✔️
Meneame ❌️ ✔️
Okru ❌️ ✔️
Outlook ✔️ ✔️
Pinterest ✔️ ✔️ media Una URL de imagen para mostrar en la publicación.
Plurk ❌ ️ ✔️
Pocket ✔️ ✔️
QZone ✔️ ✔️ summary Un resumen de la publicación.
Reddit ✔️ ✔️
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 Una leyenda para agregar a la publicación.
tags Una lista separada por comas de etiquetas para aplicar a la publicación.
Twitter ✔️ ✔️ hastags Una lista separada por comas de etiquetas de hash para aplicar al tweet.
via El usuario de Twitter 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.
Weibo ✔️ ✔️
WhatsApp ✔️ ✔️
Xing ✔️
YahooMail ✔️ ✔️

Contribución

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 agregando. El sistema registra automáticamente el servicio a través de la fábrica, por lo que no es necesario registrarlo manualmente.

El servicio de Gmail proporcionado a continuación sirve como 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 baseUrl es obligatorio. 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 que se le agregan los 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 ubicuidad en la mayoría de los proveedores de servicios. Solo define estos atributos si el servicio en cuestión utiliza una convención de nomenclatura diferente. Por ejemplo, Gmail utiliza body en lugar de text, lo que requiere 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, admite bcc, cc, su y to. Defínelos en el array additionalParameters. Cuando los usuarios incluyen estos atributos en el componente blade, se agregan al enlace de compartir. Asegúrate de que estos parámetros también estén enumerados en la tabla de servicios admitidos, con descripciones concisas.

$defaultParameters

Algunos servicios requieren parámetros de consulta específicos para que el enlace de compartir funcione. Por ejemplo, Gmail requiere la inclusión de view=cm. Estos atributos obligatorios se declaran en el array defaultParameters. Siempre se agregan 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 los atributos al método generateLink, lo que permite modificaciones personalizadas de los atributos. A continuación se muestra una demostración utilizando el trait 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 array $attributes. En el ejemplo ilustrado:

Directrices de Soporte

¡Gracias por elegir nuestro paquete de código abierto! Por favor, 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 se alimenta de nuestra increíble comunidad. Si tienes preguntas o necesitas ayuda, StackOverflow y otros recursos en línea son tus mejores opciones.

Errores y Priorización de Funcionalidades

La realidad de gestionar un proyecto de código abierto significa que no podemos abordar cada error reportado o solicitud de funcionalidad de inmediato. Priorizamos los problemas en el siguiente orden:

1. Errores que afectan a nuestros productos de pago

Los errores que afectan a nuestros productos de pago siempre serán nuestra máxima prioridad. En algunos casos, solo abordaremos los errores que nos afecten 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 prioridad más alta a estas soluciones impulsadas por la comunidad. Una vez revisada y aprobada, fusionaremos tu solución y acreditaremos tu contribución.

3. Soporte 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 en función de la cantidad de financiamiento proporcionada.

Contribuciones de la comunidad

El código abierto prospera cuando su comunidad está activa. Incluso si no estás corrigiendo errores, considera contribuir a través de mejoras de código, actualizaciones de documentación, tutoriales o ayudando a otros en los canales de la comunidad. Alentamos 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 afecten a nuestros productos de pago, las solicitudes de extracción de la comunidad y el soporte financiero recibido para los problemas.

Licencia - Licencia MIT

Derechos de autor © Defective Code, LLC. Todos los derechos reservados

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 utilizar el Software sin restricciones, incluyendo, sin limitación, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y permitir a las personas a las que se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:

El aviso de derechos de autor anterior y este aviso de permiso se incluirán 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 LIMITADO A, LAS GARANTÍAS DE COMERCIABILIDAD, APTITUD 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 NINGÚN RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRO TIPO DE ACTIVIDADES EN EL SOFTWARE.

Link Sharer - Defective Code