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

Avviso di traduzione

Questo documento è stato tradotto automaticamente. Se ci sono errori di traduzione, per favore apri una pull request sul progetto e aggiungi il file tradotto a docs/{Codice ISO 639-1}.md.

Introduzione

Questo pacchetto semplifica il processo di aggiunta di link di condivisione alla tua applicazione Laravel. Sentiti libero di aprire una pull request se noti che ci manca un servizio!

Un link di condivisione è un URL che combina un URL di base dei social media con parametri di query per la condivisione di contenuti dal tuo sito web o app. I parametri includono di solito l'URL del contenuto e un messaggio preimpostato. Questi link, come mostrato negli esempi, consentono agli utenti di condividere facilmente post su piattaforme come Twitter, Facebook e Telegram. Utilizza questo pacchetto open-source per creare rapidamente link di condivisione tramite il sistema di componenti blade di Laravel.

Esempio

<x-link-sharer service="twitter" text="Condividimi!" url="https://www.defectivecode.com" hashtags="fantastico,link" class="p-4">
<!-- Il tuo codice HTML qui per controllare l'aspetto del pulsante di condivisione -->
<span class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Clicca qui!</span>
</x-link-sharer>

Installazione

  1. Prima di tutto, installa il pacchetto PHP eseguendo il seguente comando composer:
    composer require defectivecode/link-sharer
  2. Ecco fatto! Il nostro pacchetto verrà automaticamente installato utilizzando la scoperta dei pacchetti di Laravel.

Servizi

I fornitori di servizi occasionalmente aggiornano i loro link di condivisione senza preavviso. Facciamo ogni sforzo per rimanere aggiornati su questi cambiamenti. Tuttavia, se incontri un servizio non funzionante, apri gentilmente una segnalazione o invia una richiesta di pull. Per aggiungere un nuovo servizio, consulta la sezione contributing di seguito.

Alcuni servizi forniscono parametri aggiuntivi che possono essere passati al componente. Questi sono documentati nella tabella sottostante.

Servizio Testo Supportato URL Supportato Note
Blogger ✔️ ✔️ t Il testo del post del blog.
Diaspora ✔️ ✔️
Diigo ✔️ ✔️ description Una descrizione da aggiungere al post.
Douban ✔️ ✔️ comment Un commento da aggiungere al post.
Evernote ✔️ ✔️
Facebook ✔️
Flipboard ✔️ ✔️ quote Una citazione da aggiungere al post.
Gmail ✔️ ✔️ bcc Un elenco di indirizzi email separati da virgola per BCC.
cc Un elenco di indirizzi email separati da virgola per CC.
su L'oggetto dell'email.
to Un elenco di indirizzi email separati da virgola a cui inviare.
HackNews ✔️ ✔️
Instapaper ✔️ ✔️ description Una descrizione del post.
LineMe ❌️ ✔️
LinkedIn ✔️
LiveJournal ✔️ ✔️
Meneame ❌️ ✔️
Okru ❌️ ✔️
Outlook ✔️ ✔️
Pinterest ✔️ ✔️ media Un URL dell'immagine da mostrare nel post.
Plurk ❌ ️ ✔️
Pocket ✔️ ✔️
QZone ✔️ ✔️ summary Un riassunto del post.
Reddit ✔️ ✔️
Renren ✔️ ✔️ description Una descrizione del post.
srcUrl L'URL originale del post.
Skype ✔️ ✔️
Telegram ✔️ ✔️
Threema ✔️ id L'id della persona a cui inviare il post.
Tumblr ✔️ ✔️ caption Una didascalia da aggiungere al post.
tags Un elenco di tag separati da virgola da applicare al post.
Twitter ✔️ ✔️ hastags Un elenco di hashtag separati da virgola da applicare al tweet.
via Il tweeter a cui dare credito.
Viber ✔️ ✔️
VKontakte ✔️ ✔️ description Una descrizione del post.
image Un URL dell'immagine da mostrare nel post.
Weibo ✔️ ✔️
WhatsApp ✔️ ✔️
Xing ✔️
YahooMail ✔️ ✔️

Contribuire

Aggiungere un servizio è relativamente semplice. Inizia creando una nuova classe di servizio nella cartella src/Services. Dai alla classe il nome del servizio che stai aggiungendo. Il sistema registra automaticamente il servizio tramite la factory, quindi non è necessaria una registrazione manuale.

Il servizio Gmail fornito di seguito serve come buon esempio.

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

Si noti che solo baseUrl è obbligatorio. baseParameterMapping, additionalParameters e defaultParameters sono opzionali ma possono migliorare la funzionalità.

$baseUrl

L'URL di un servizio non deve necessariamente iniziare con HTTPS. Ad esempio, Viber utilizza viber://forward.

La proprietà baseUrl specifica l'URL principale del servizio. Questo URL è fondamentale quando si genera il link di condivisione, a cui vengono aggiunti i parametri di query. Utilizzando Gmail come esempio, il suo URL di base è https://mail.google.com/mail/u/0.

$baseParameterMapping

Questo pacchetto identifica due attributi principali: text e url, data la loro ubiquità nella maggior parte dei provider di servizi. Definire solo questi attributi se il servizio in questione utilizza una convenzione di denominazione diversa. Ad esempio, Gmail utilizza body al posto di text, rendendo necessario questo mapping esplicito. Quando si utilizza Gmail, qualsiasi attributo text passato al componente blade viene trasformato nel parametro di query body nel link di condivisione.

$additionalParameters

Alcuni servizi accettano parametri di query più specifici. Prendendo Gmail come riferimento, supporta bcc, cc, su e to. Definisci questi nell'array additionalParameters. Quando gli utenti includono questi attributi nel componente blade, vengono aggiunti al link di condivisione. Assicurati che questi parametri siano anche elencati nella tabella dei servizi supportati, completi di descrizioni concise.

$defaultParameters

Alcuni servizi richiedono parametri di query specifici affinché il link di condivisione funzioni. Ad esempio, Gmail richiede l'inclusione di view=cm. Questi attributi obbligatori vengono dichiarati nell'array defaultParameters. Vengono sempre aggiunti al link di condivisione e non possono essere omessi.

prepareAttributes()

Per manipolare gli attributi prima di generare un link di condivisione, introduce un metodo prepareAttributes nel tuo servizio. Questo metodo si attiva prima di passare gli attributi al metodo generateLink, consentendo modifiche personalizzate agli attributi. Di seguito è riportata una dimostrazione dell'utilizzo del 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'];
}
}
}

Gli attributi passati al servizio sono accessibili tramite l'array $attributes. Nell'esempio illustrato:

Linee guida di supporto

Grazie per aver scelto il nostro pacchetto open source! Ti preghiamo di dedicare un momento per leggere queste linee guida di supporto. Ti aiuteranno a ottenere il massimo dal nostro progetto.

Supporto basato sulla comunità

Il nostro progetto open source è alimentato dalla nostra fantastica comunità. Se hai domande o hai bisogno di assistenza, StackOverflow e altre risorse online sono le tue migliori opzioni.

Segnalazione di bug e prioritizzazione delle funzionalità

La realtà della gestione di un progetto open source significa che non possiamo affrontare immediatamente ogni segnalazione di bug o richiesta di funzionalità. Priorizziamo i problemi nel seguente ordine:

1. Bug che influiscono sui nostri prodotti a pagamento

I bug che influiscono sui nostri prodotti a pagamento saranno sempre la nostra massima priorità. In alcuni casi, potremmo affrontare solo i bug che ci riguardano direttamente.

2. Richieste di pull dalla comunità

Se hai individuato un bug e hai una soluzione, ti preghiamo di inviare una richiesta di pull. Dopo i problemi che influiscono sui nostri prodotti, diamo la priorità successiva a queste correzioni basate sulla comunità. Una volta esaminata e approvata, uniremo la tua soluzione e accrediteremo il tuo contributo.

3. Supporto finanziario

Per i problemi al di fuori delle categorie menzionate, puoi scegliere di finanziare la loro risoluzione. Ogni problema aperto è collegato a un modulo d'ordine in cui puoi contribuire finanziariamente. Priorizziamo questi problemi in base all'importo del finanziamento fornito.

Contributi della comunità

L'open source prospera quando la sua comunità è attiva. Anche se non stai risolvendo bug, considera di contribuire attraverso miglioramenti del codice, aggiornamenti della documentazione, tutorial o assistendo gli altri nei canali della comunità. Incoraggiamo vivamente tutti, come comunità, ad aiutare il lavoro open source.

Per ribadire, DefectiveCode darà priorità ai bug in base a come influiscono sui nostri prodotti a pagamento, alle richieste di pull della comunità e al supporto finanziario ricevuto per i problemi.

Licenza - Licenza MIT

Copyright © Defective Code, LLC. Tutti i diritti riservati

È qui concesso, gratuitamente, a chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), di trattare il Software senza restrizioni, compresi, senza limitazione, i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di farlo, a condizione che siano rispettate le seguenti condizioni:

Il presente avviso di copyright e il presente avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSO, MA NON LIMITATO A, GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER ALCUN RECLAMO, DANNO O ALTRO TIPO DI RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, TORTO O ALTRO, DERIVANTE DA, CONNESSO A O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRO UTILIZZO DEL SOFTWARE.

Link Sharer - Defective Code