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 | 中文

Introduction

Ce package simplifie le processus d'ajout de liens de partage à votre application Laravel. N'hésitez pas à ouvrir une demande de tirage si vous remarquez qu'il nous manque un service !

Un lien de partage est une URL qui combine une URL de base de réseau social avec des paramètres de requête pour partager du contenu de votre site Web ou application. Les paramètres incluent généralement l'URL du contenu et un message prédéfini. Ces liens, comme le montrent les exemples, permettent aux utilisateurs de partager facilement des publications sur des plateformes comme Twitter, Facebook et Telegram. Utilisez ce package open-source pour créer rapidement des liens de partage via le système de composants blade de Laravel.

Exemple

<x-link-sharer service="twitter" text="Partagez-moi !" url="https://www.defectivecode.com" hashtags="génial,liens" class="p-4">
<!-- Votre code HTML ici pour contrôler l'apparence du bouton de partage -->
<span class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Cliquez-moi!</span>
</x-link-sharer>

Installation

  1. Installez d'abord le package PHP en exécutant la commande composer suivante :
    composer require defectivecode/link-sharer
  2. C'est tout ! Notre package s'installera automatiquement en utilisant la découverte de package de Laravel.

Services

Les fournisseurs de services mettent parfois à jour leurs liens de partage sans préavis. Nous faisons tout notre possible pour rester informés de ces changements. Cependant, si vous rencontrez un service non fonctionnel, veuillez ouvrir une problématique ou soumettre une demande de tirage. Pour ajouter un nouveau service, reportez-vous à la section contribution ci-dessous.

Certains services proposent des paramètres supplémentaires qui peuvent être passés au composant. Ceux-ci sont documentés dans le tableau ci-dessous.

Service Texte supporté URL supportée Remarques
Blogger ✔️ ✔️ t Le texte de l'article de blog.
Diaspora ✔️ ✔️
Diigo ✔️ ✔️ description Une description à ajouter à la publication.
Douban ✔️ ✔️ comment Un commentaire à ajouter à la publication.
Evernote ✔️ ✔️
Facebook ✔️
Flipboard ✔️ ✔️ quote Une citation à ajouter à la publication.
Gmail ✔️ ✔️ bcc Une liste d'adresses e-mail séparées par des virgules à BCC.
cc Une liste d'adresses e-mail séparées par des virgules à CC.
su Le sujet de l'e-mail.
to Une liste d'adresses e-mail séparées par des virgules à envoyer.
HackNews ✔️ ✔️
Instapaper ✔️ ✔️ description Une description de la publication.
LineMe ❌️ ✔️
LinkedIn ✔️
LiveJournal ✔️ ✔️
Meneame ❌️ ✔️
Okru ❌️ ✔️
Outlook ✔️ ✔️
Pinterest ✔️ ✔️ media Une URL d'image à afficher sur la publication.
Plurk ❌ ️ ✔️
Pocket ✔️ ✔️
QZone ✔️ ✔️ summary Un résumé de la publication.
Reddit ✔️ ✔️
Renren ✔️ ✔️ description Une description de la publication.
srcUrl L'URL originale de la publication.
Skype ✔️ ✔️
Telegram ✔️ ✔️
Threema ✔️ id L'identifiant de la personne à qui envoyer la publication.
Tumblr ✔️ ✔️ caption Une légende à ajouter à la publication.
tags Une liste de tags séparés par des virgules à appliquer à la publication.
Twitter ✔️ ✔️ hastags Une liste de hashtags séparés par des virgules à appliquer au tweet.
via Le tweeter à créditer.
Viber ✔️ ✔️
VKontakte ✔️ ✔️ description Une description de la publication.
image Une URL d'image à afficher sur la publication.
Weibo ✔️ ✔️
WhatsApp ✔️ ✔️
Xing ✔️
YahooMail ✔️ ✔️

Contribution

Ajouter un service est relativement simple. Commencez par créer une nouvelle classe de service dans le dossier src/Services. Nommez la classe d'après le service que vous ajoutez. Le système enregistre automatiquement le service via la fabrique, il n'est donc pas nécessaire de s'enregistrer manuellement.

Le service Gmail fourni ci-dessous sert d'exemple.

<?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',
];
}

Veuillez noter que seule la baseUrl est obligatoire. Le baseParameterMapping, les additionalParameters et les defaultParameters sont optionnels mais peuvent améliorer la fonctionnalité.

$baseUrl

L'URL d'un service n'a pas besoin de commencer par HTTPS. Par exemple, Viber utilise viber://forward.

La propriété baseUrl spécifie l'URL principale du service. Cette URL est fondamentale lors de la génération du lien de partage, auxquels des paramètres de requête sont ajoutés. En prenant Gmail comme exemple, son URL de base est https://mail.google.com/mail/u/0.

$baseParameterMapping

Ce package identifie deux attributs principaux : text et url, étant donné leur ubiquité parmi la plupart des fournisseurs de services. Ne définissez ces attributs que si le service en question utilise une convention de nommage différente. Par exemple, Gmail utilise body à la place de text, nécessitant ce mappage explicite. Lors de l'utilisation de Gmail, tout attribut text passé au composant blade est transformé en paramètre de requête body dans le lien de partage.

$additionalParameters

Certains services acceptent des paramètres de requête plus spécifiques. En prenant Gmail comme référence, il prend en charge bcc, cc, su, et to. Définissez-les dans le tableau additionalParameters. Lorsque les utilisateurs incluent ces attributs dans le composant blade, ils sont ajoutés au lien de partage. Assurez-vous que ces paramètres figurent également dans le tableau services supportés, complété par de brèves descriptions.

$defaultParameters

Certains services imposent des paramètres de requête spécifiques pour que le lien de partage fonctionne. Par exemple, Gmail nécessite l'inclusion de view=cm. Ces attributs obligatoires sont déclarés dans le tableau defaultParameters. Ils sont toujours ajoutés au lien de partage et ne peuvent pas être omis.

prepareAttributes()

Pour manipuler les attributs avant de générer un lien de partage, introduisez une méthode prepareAttributes dans votre service. Cette méthode s'active avant de passer les attributs à la méthode generateLink, permettant des modifications personnalisées des attributs. Ci-dessous un exemple utilisant le 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'];
}
}
}

Les attributs passés dans le service sont accessibles via le tableau $attributes. Dans l'exemple illustré :

Directives de Support

Merci d'avoir choisi notre paquet open source ! Veuillez prendre un moment pour consulter ces directives de support. Elles vous aideront à tirer le meilleur parti de notre projet.

Support Axé sur la Communauté

Notre projet open-source est alimenté par notre incroyable communauté. Si vous avez des questions ou avez besoin d'aide, StackOverflow et d'autres ressources en ligne sont vos meilleures options.

Bugs et Priorisation des Fonctionnalités

La réalité de la gestion d'un projet open-source signifie que nous ne pouvons pas traiter tous les bugs ou demandes de fonctionnalités immédiatement. Nous priorisons les problèmes dans l'ordre suivant :

1. Bugs Affectant Nos Produits Payants

Les bugs qui impactent nos produits payants seront toujours notre priorité absolue. Dans certains cas, nous ne traiterons peut-être que les bugs qui nous affectent directement.

2. Demandes de Tirage de la Communauté

Si vous avez identifié un bug et avez une solution, veuillez soumettre une demande de tirage. Après les problèmes affectant nos produits, nous accordons la prochaine priorité la plus élevée à ces corrections pilotées par la communauté. Une fois examinée et approuvée, nous fusionnerons votre solution et créditerons votre contribution.

3. Soutien Financier

Pour les problèmes en dehors des catégories mentionnées, vous pouvez choisir de financer leur résolution. Chaque problème ouvert est lié à un bon de commande où vous pouvez contribuer financièrement. Nous priorisons ces problèmes en fonction du montant du financement fourni.

Contributions de la Communauté

L'open-source prospère lorsque sa communauté est active. Même si vous ne réparez pas de bugs, envisagez de contribuer par des améliorations de code, des mises à jour de documentation, des tutoriels, ou en aidant les autres dans les canaux communautaires. Nous encourageons vivement tout le monde, en tant que communauté, à aider à soutenir le travail open-source.

Pour réitérer, DefectiveCode priorisera les bugs en fonction de leur impact sur nos produits payants, des demandes de tirage de la communauté, et du soutien financier reçu pour les problèmes.

Licence - Licence MIT

Copyright © Defective Code, LLC. Tous droits réservés

La permission est par la présente accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le "Logiciel"), de traiter le Logiciel sans restriction, y compris sans limitation les droits d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, de sous-licencier, et/ou de vendre des copies du Logiciel, et de permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :

L'avertissement de copyright ci-dessus et cet avis de permission doivent être inclus dans toutes les copies ou portions substantielles du Logiciel.

LE LOGICIEL EST FOURNI "EN L'ÉTAT", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU TACITE, Y COMPRIS MAIS SANS S'Y LIMITER AUX GARANTIES DE COMMERCIALITÉ, D'ADAPTATION À UN OBJECTIF PARTICULIER ET DE NON CONTREFAÇON. EN AUCUN CAS, LES AUTEURS OU DÉTENTEURS DE DROITS D'AUTEUR NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RECLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UN CONTRAT, DUN DÉLIT OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU AUTRES TRANSACTIONS DANS LE LOGICIEL.