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

Aviso de Tradução

Este documento foi traduzido automaticamente. Se houver erros de tradução, por favor, abra um pull request no projeto e adicione o arquivo traduzido em docs/{Código ISO 639-1}.md.

Introdução

Este pacote simplifica o processo de adicionar links de compartilhamento à sua aplicação Laravel. Sinta-se à vontade para abrir uma solicitação de pull se você perceber que estamos faltando um serviço!

Um link de compartilhamento é uma URL que combina uma URL base de mídia social com parâmetros de consulta para compartilhar conteúdo do seu site ou aplicativo. Os parâmetros geralmente incluem a URL do conteúdo e uma mensagem predefinida. Esses links, como mostrado nos exemplos, permitem que os usuários compartilhem facilmente postagens em plataformas como Twitter, Facebook e Telegram. Use este pacote de código aberto para criar rapidamente links de compartilhamento via sistema de componentes blade do Laravel.

Exemplo

<x-link-sharer service="twitter" text="Compartilhe-me!" url="https://www.defectivecode.com" hashtags="incrível,links" class="p-4">
<!-- Seu código HTML aqui para controlar a aparência do botão de compartilhamento -->
<span class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Clique em mim!</span>
</x-link-sharer>

Instalação

  1. Primeiro, instale o pacote PHP executando o seguinte comando do composer:
    composer require defectivecode/link-sharer
  2. É isso! Nosso pacote será instalado automaticamente usando a descoberta de pacotes do Laravel.

Serviços

Os provedores de serviços ocasionalmente atualizam seus links de compartilhamento sem aviso prévio. Fazemos todo o esforço para nos mantermos atualizados com essas mudanças. No entanto, se você encontrar um serviço não funcional, por favor, abra uma issue ou envie um pull request. Para adicionar um novo serviço, consulte a seção contribuindo abaixo.

Alguns serviços fornecem parâmetros extras que podem ser passados para o componente. Estes estão documentados na tabela abaixo.

Serviço Texto Suportado URL Suportada Notas
Blogger ✔️ ✔️ t O texto do post do blog.
Diaspora ✔️ ✔️
Diigo ✔️ ✔️ description Uma descrição para adicionar ao post.
Douban ✔️ ✔️ comment Um comentário para adicionar ao post.
Evernote ✔️ ✔️
Facebook ✔️
Flipboard ✔️ ✔️ quote Uma citação para adicionar ao post.
Gmail ✔️ ✔️ bcc Uma lista de endereços de e-mail separados por vírgula para BCC.
cc Uma lista de endereços de e-mail separados por vírgula para CC.
su O assunto do e-mail.
to Uma lista de endereços de e-mail separados por vírgula para enviar para.
HackNews ✔️ ✔️
Instapaper ✔️ ✔️ description Uma descrição do post.
LineMe ❌️ ✔️
LinkedIn ✔️
LiveJournal ✔️ ✔️
Meneame ❌️ ✔️
Okru ❌️ ✔️
Outlook ✔️ ✔️
Pinterest ✔️ ✔️ media Uma URL de imagem para mostrar no post.
Plurk ❌ ️ ✔️
Pocket ✔️ ✔️
QZone ✔️ ✔️ summary Um resumo do post.
Reddit ✔️ ✔️
Renren ✔️ ✔️ description Uma descrição do post.
srcUrl A URL original do post.
Skype ✔️ ✔️
Telegram ✔️ ✔️
Threema ✔️ id O id da pessoa para enviar o post.
Tumblr ✔️ ✔️ caption Uma legenda para adicionar ao post.
tags Uma lista de tags separadas por vírgula para aplicar ao post.
Twitter ✔️ ✔️ hastags Uma lista de hash tags separadas por vírgula para aplicar ao tweet.
via O usuário do Twitter para dar crédito.
Viber ✔️ ✔️
VKontakte ✔️ ✔️ description Uma descrição do post.
image Uma URL de imagem para mostrar no post.
Weibo ✔️ ✔️
WhatsApp ✔️ ✔️
Xing ✔️
YahooMail ✔️ ✔️

Contribuir

Adicionar um serviço é relativamente simples. Comece criando uma nova classe de serviço dentro da pasta src/Services. Nomeie a classe com o nome do serviço que você está adicionando. O sistema registra automaticamente o serviço por meio da fábrica, portanto, não é necessário registro manual.

O serviço Gmail fornecido abaixo serve como um bom exemplo.

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

Observe que apenas o baseUrl é obrigatório. O baseParameterMapping, additionalParameters e defaultParameters são opcionais, mas podem aprimorar a funcionalidade.

$baseUrl

A URL de um serviço não precisa começar com HTTPS. Por exemplo, o Viber usa viber://forward.

A propriedade baseUrl especifica a URL principal do serviço. Esta URL é fundamental ao gerar o link de compartilhamento, para a qual os parâmetros de consulta são anexados. Usando o Gmail como exemplo, sua URL base é https://mail.google.com/mail/u/0.

$baseParameterMapping

Este pacote identifica dois atributos principais: text e url, dada sua ubiquidade na maioria dos provedores de serviços. Defina apenas esses atributos se o serviço em questão empregar uma convenção de nomenclatura diferente. Por exemplo, o Gmail utiliza body em vez de text, exigindo esse mapeamento explícito. Ao usar o Gmail, qualquer atributo text passado para o componente blade é transformado no parâmetro de consulta body no link de compartilhamento.

$additionalParameters

Alguns serviços aceitam parâmetros de consulta mais específicos. Tomando o Gmail como referência, ele suporta bcc, cc, su e to. Defina-os no array additionalParameters. Quando os usuários incluem esses atributos no componente blade, eles são adicionados ao link de compartilhamento. Certifique-se de que esses parâmetros também estejam listados na tabela de serviços suportados, com descrições concisas.

$defaultParameters

Certos serviços exigem parâmetros de consulta específicos para que o link de compartilhamento funcione. Como exemplo, o Gmail exige a inclusão de view=cm. Esses atributos obrigatórios são declarados no array defaultParameters. Eles sempre são anexados ao link de compartilhamento e não podem ser omitidos.

prepareAttributes()

Para manipular os atributos antes de gerar um link de compartilhamento, introduza um método prepareAttributes em seu serviço. Este método é ativado antes de passar os atributos para o método generateLink, permitindo modificações personalizadas nos atributos. Abaixo está uma demonstração usando o 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'];
}
}
}

Os atributos passados para o serviço são acessíveis por meio do array $attributes. No exemplo ilustrado:

Diretrizes de Suporte

Obrigado por escolher nosso pacote de código aberto! Por favor, reserve um momento para verificar estas diretrizes de suporte. Elas vão te ajudar a aproveitar ao máximo nosso projeto.

Suporte Orientado pela Comunidade

Nosso projeto de código aberto é impulsionado por nossa incrível comunidade. Se você tiver perguntas ou precisar de assistência, o StackOverflow e outros recursos online são suas melhores opções.

Bugs e Priorização de Recursos

A realidade de gerenciar um projeto de código aberto significa que não podemos resolver imediatamente todos os bugs relatados ou solicitações de recursos. Priorizamos os problemas na seguinte ordem:

1. Bugs que Afetam Nossos Produtos Pagos

Bugs que impactam nossos produtos pagos sempre serão nossa maior prioridade. Em alguns casos, podemos resolver apenas os bugs que nos afetam diretamente.

2. Pull Requests da Comunidade

Se você identificou um bug e tem uma solução, por favor, envie um pull request. Após os problemas que afetam nossos produtos, damos a próxima maior prioridade a essas correções orientadas pela comunidade. Depois de revisado e aprovado, mesclaremos sua solução e daremos crédito à sua contribuição.

3. Suporte Financeiro

Para problemas fora das categorias mencionadas, você pode optar por financiar sua resolução. Cada problema aberto está vinculado a um formulário de pedido onde você pode contribuir financeiramente. Priorizamos esses problemas com base no valor do financiamento fornecido.

Contribuições da Comunidade

O código aberto prospera quando sua comunidade está ativa. Mesmo que você não esteja corrigindo bugs, considere contribuir por meio de melhorias de código, atualizações de documentação, tutoriais ou ajudando outras pessoas nos canais da comunidade. Nós incentivamos fortemente a todos, como uma comunidade, a ajudar a apoiar o trabalho de código aberto.

Para reiterar, a DefectiveCode dará prioridade aos bugs com base em como eles impactam nossos produtos pagos, pull requests da comunidade e suporte financeiro recebido para os problemas.

Licença - Licença MIT

Direitos autorais © Defective Code, LLC. Todos os direitos reservados

Por meio deste, é concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e de permitir que pessoas a quem o Software seja fornecido o façam, sujeito às seguintes condições:

O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO A, GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA E NÃO VIOLAÇÃO. EM NENHUMA HIPÓTESE OS AUTORES OU DETENTORES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, DELITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS OPERAÇÕES NO SOFTWARE.

Link Sharer - Defective Code