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 um pull request se notar que estamos faltando algum 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 através do sistema de componentes blade do Laravel.
<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>
composer require defectivecode/link-sharer
Os provedores de serviços ocasionalmente atualizam seus links de compartilhamento sem aviso prévio. Fazemos todo o possível para nos manter 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 da postagem do blog. |
Diaspora | ✔️ | ✔️ | |
Diigo | ✔️ | ✔️ | description Uma descrição para adicionar à postagem. |
Douban | ✔️ | ✔️ | comment Um comentário para adicionar à postagem. |
Evernote | ✔️ | ✔️ | |
❌ | ✔️ | ||
✔️ | ✔️ | quote Uma citação para adicionar à postagem. |
|
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. |
HackNews | ✔️ | ✔️ | |
Instapaper | ✔️ | ✔️ | description Uma descrição da postagem. |
LineMe | ❌ | ✔️ | |
❌ | ✔️ | ||
LiveJournal | ✔️ | ✔️ | |
Meneame | ❌ | ✔️ | |
Okru | ❌ | ✔️ | |
Outlook | ✔️ | ✔️ | |
✔️ | ✔️ | media Um URL de imagem para mostrar na postagem. |
|
Plurk | ❌ | ✔️ | |
✔️ | ✔️ | ||
QZone | ✔️ | ✔️ | summary Um resumo da postagem. |
✔️ | ✔️ | ||
Renren | ✔️ | ✔️ | description Uma descrição da postagem. srcUrl O URL original da postagem. |
Skype | ✔️ | ✔️ | |
Telegram | ✔️ | ✔️ | |
Threema | ❌ | ✔️ | id O id da pessoa para enviar a postagem. |
Tumblr | ✔️ | ✔️ | caption Uma legenda para adicionar à postagem. tags Uma lista de tags separadas por vírgula para aplicar à postagem. |
✔️ | ✔️ | hastags Uma lista de hashtags separadas por vírgula para aplicar ao tweet. via O usuário do Twitter para dar crédito. |
|
Viber | ✔️ | ✔️ | |
VKontakte | ✔️ | ✔️ | description Uma descrição da postagem. image Um URL de imagem para mostrar na postagem. |
✔️ | ✔️ | ||
✔️ | ✔️ | ||
❌ | ✔️ | ||
YahooMail | ✔️ | ✔️ |
# Contribuindo Adicionar um serviço é relativamente simples. Comece criando uma nova classe de serviço dentro da pasta `src/Services`. Nomeie a classe de acordo com o serviço que você está adicionando. O sistema registra automaticamente o serviço através da fábrica, então não há necessidade de registro manual. O serviço Gmail fornecido abaixo serve como um bom exemplo. ```php<?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', ];}
Por favor, note que apenas o baseUrl
é obrigatório. O baseParameterMapping
, additionalParameters
e defaultParameters
são opcionais, mas podem melhorar 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, ao qual os parâmetros de consulta são adicionados. 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 entre a maioria dos provedores de serviços. Defina esses atributos apenas se o serviço em questão empregar uma convenção de nomenclatura diferente. Por exemplo, o Gmail utiliza body
em vez de text
, necessitando deste 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 esses parâmetros 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 necessita da inclusão de view=cm
. Tais atributos obrigatórios são declarados no array defaultParameters
. Eles sempre são adicionados 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
no 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 através do array $attributes
. No exemplo ilustrado:
text
e url
estiverem presentes, o url
é adicionado ao atributo text
.url
esteja disponível, o atributo text
assume o valor do url
. # Diretrizes de Suporte Obrigado por escolher nosso pacote de código aberto! Por favor, reserve um momento para conferir estas diretrizes de suporte. Elas ajudarão você a tirar o máximo proveito do 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, StackOverflow e outros recursos online são suas melhores opções. ## Bugs e Priorização de Funcionalidades A realidade de gerenciar um projeto de código aberto significa que não podemos resolver todos os bugs relatados ou pedidos de funcionalidades imediatamente. 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 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 resolver os problemas que afetam nossos produtos, damos a próxima maior prioridade a essas correções impulsionadas pela comunidade. Uma vez revisada e aprovada, integraremos sua solução e creditaremos 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 é ativa. Mesmo que você não esteja corrigindo bugs, considere contribuir através de melhorias no código, atualizações na documentação, tutoriais ou ajudando outros nos canais da comunidade. Incentivamos fortemente todos, como comunidade, a ajudar a apoiar o trabalho de código aberto. _Para reiterar, a DefectiveCode priorizará bugs com base em como eles impactam nossos produtos pagos, pull requests da comunidade e o suporte financeiro recebido para os problemas._ # Licença - Licença MIT Copyright © Defective Code, LLC. Todos os direitos reservados A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos dedocumentação associados (o "Software"), para lidar com o Software sem restrições, incluindo, sem limitação, os direitosde usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir queas pessoas a quem o Software é fornecido façam isso, sujeitas às seguintes condições: **O aviso de copyright acima e esta permissão devem ser incluídos em todas as cópias ou partes substanciais doSoftware.** O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDOÀS GARANTIAS DE COMERCIABILIDADE, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OUDETENTORES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJAEM UMA AÇÃO DE CONTRATO, DELITO OU DE OUTRA FORMA, DECORRENTE DE, FORA OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRASNEGOCIAÇÕES NO SOFTWARE.