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, si prega di aprire una pull request sul progetto e aggiungere il file tradotto a docs/{ISO 639-1 Code}.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 base di un social media con parametri di query per condividere contenuti dal tuo sito web o app. I parametri di solito includono l'URL del contenuto e un messaggio preimpostato. Questi link, come mostrato negli esempi, permettono agli utenti di condividere facilmente post su piattaforme come Twitter, Facebook e Telegram. Usa 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 e la sensazione del pulsante di condivisione -->
<span class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Cliccami!</span>
</x-link-sharer>

Installazione

  1. Per prima cosa, installa il pacchetto PHP eseguendo il seguente comando composer:
    composer require defectivecode/link-sharer
  2. Ecco fatto! Il nostro pacchetto si installerà automaticamente utilizzando la scoperta dei pacchetti di Laravel.

Servizi

I fornitori di servizi aggiornano occasionalmente i loro link di condivisione senza preavviso. Facciamo ogni sforzo per rimanere aggiornati con questi cambiamenti. Tuttavia, se incontri un servizio non funzionante, ti preghiamo di aprire un problema o inviare una pull request. Per aggiungere un nuovo servizio, consulta la sezione contributing qui sotto.

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

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 a cui inviare.
HackNews ✔️ ✔️
Instapaper ✔️ ✔️ description Una descrizione del post.
LineMe ❌️ ✔️
LinkedIn ✔️
LiveJournal ✔️ ✔️
Meneame ❌️ ✔️
Okru ❌️ ✔️
Outlook ✔️ ✔️
Pinterest ✔️ ✔️ media Un URL di un'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 di un'immagine da mostrare nel post.
Weibo ✔️ ✔️
WhatsApp ✔️ ✔️
Xing ✔️
YahooMail ✔️ ✔️

Contribuire

Aggiungere un servizio è relativamente semplice. Inizia creando una nuova classe di servizio all'interno della cartella src/Services. Nomina la classe in base al 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 è un 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 prega di notare che solo il baseUrl è obbligatorio. I 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, al quale 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à tra la maggior parte dei fornitori di servizi. Definisci questi attributi solo se il servizio in questione utilizza una convenzione di denominazione diversa. Ad esempio, Gmail utilizza body al posto di text, richiedendo questa mappatura esplicita. 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 nel 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. Tali attributi obbligatori sono 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, introduci 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 utilizzando il 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 nel servizio sono accessibili tramite l'array $attributes. Nell'esempio illustrato:

# Linee Guida per il Supporto
 
Grazie per aver scelto il nostro pacchetto open source! Prenditi un momento per dare un'occhiata a queste linee guida per il supporto. Ti aiuteranno a ottenere il massimo dal nostro progetto.
 
## Supporto Guidato dalla 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.
 
## Bug e Prioritizzazione delle Funzionalità
 
La realtà della gestione di un progetto open source significa che non possiamo affrontare immediatamente ogni bug segnalato o richiesta di funzionalità. Prioritizziamo i problemi nel seguente ordine:
 
### 1. Bug che Influenzano i Nostri Prodotti a Pagamento
 
I bug che impattano i nostri prodotti a pagamento saranno sempre la nostra massima priorità. In alcuni casi, potremmo affrontare solo i bug che ci riguardano direttamente.
 
### 2. Pull Request della Comunità
 
Se hai identificato un bug e hai una soluzione, invia una pull request. Dopo i problemi che influenzano i nostri prodotti, diamo la priorità più alta a queste correzioni guidate dalla comunità. Una volta esaminate e approvate, integreremo la tua soluzione e accrediteremo il tuo contributo.
 
### 3. Supporto Finanziario
 
Per i problemi al di fuori delle categorie menzionate, puoi optare per finanziare la loro risoluzione. Ogni problema aperto è collegato a un modulo d'ordine dove puoi contribuire finanziariamente. Prioritizziamo 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 fortemente tutti, come comunità, a supportare il lavoro open source.
 
_Per ribadire, DefectiveCode darà priorità ai bug in base a come influenzano i nostri prodotti a pagamento, alle pull request della comunità e al supporto finanziario ricevuto per i problemi._

Licenza - Licenza MIT

Copyright © Defective Code, LLC. Tutti i diritti riservati

Con la presente si concede il permesso, gratuitamente, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il "Software"), di trattare il Software senza restrizioni, inclusi senza limitazione i diritti di usare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di permettere alle persone a cui il Software è fornito di farlo, alle seguenti condizioni:

La suddetta nota di copyright e questa autorizzazione devono essere incluse in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I DETENTORI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, TORTO O ALTRO, DERIVANTE DA, FUORI O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.

Link Sharer - Defective Code