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

Предупреждение о переводе

Этот документ был автоматически переведен. Если есть ошибки в переводе, пожалуйста, откройте запрос на включение изменений в проекте и добавьте переведенный файл в docs/{ISO 639-1 Code}.md.

Введение

Этот пакет упрощает процесс добавления ссылок для обмена в вашем приложении Laravel. Не стесняйтесь открывать pull request, если заметите, что нам не хватает сервиса!

Ссылка для обмена - это URL, объединяющий базовый URL социальной сети с параметрами запроса для обмена контентом с вашего веб-сайта или приложения. Параметры обычно включают URL контента и предустановленное сообщение. Эти ссылки, как показано в примерах, позволяют пользователям легко делиться сообщениями на платформах, таких как Twitter, Facebook и Telegram. Используйте этот пакет с открытым исходным кодом, чтобы быстро создавать ссылки для обмена через систему компонентов blade Laravel.

Пример

<x-link-sharer service="twitter" text="Поделиться со мной!" url="https://www.defectivecode.com" hashtags="круто,ссылки" class="p-4">
<!-- Ваш HTML-код здесь для управления внешним видом кнопки обмена -->
<span class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Нажми на меня!</span>
</x-link-sharer>

Установка

  1. Сначала установите пакет PHP, выполнив следующую команду composer:
    composer require defectivecode/link-sharer
  2. Вот и все! Наш пакет будет автоматически установлен с использованием механизма обнаружения пакетов Laravel.

Сервисы

Провайдеры услуг время от времени обновляют свои ссылки на обмен. Мы прилагаем все усилия, чтобы быть в курсе этих изменений. Однако, если вы столкнулись с неработающей услугой, пожалуйста, откройте проблему или отправьте запрос на включение. Чтобы добавить новую услугу, обратитесь к разделу вклад ниже.

Некоторые услуги предоставляют дополнительные параметры, которые могут быть переданы компоненту. Они документированы в таблице ниже.

Сервис Поддержка текста Поддержка URL Примечания
Blogger ✔️ ✔️ t Текст блог-поста.
Diaspora ✔️ ✔️
Diigo ✔️ ✔️ description Описание для добавления к сообщению.
Douban ✔️ ✔️ comment Комментарий для добавления к сообщению.
Evernote ✔️ ✔️
Facebook ✔️
Flipboard ✔️ ✔️ quote Цитата для добавления к сообщению.
Gmail ✔️ ✔️ bcc Список адресов электронной почты для скрытой копии.
cc Список адресов электронной почты для копии.
su Тема письма.
to Список адресов электронной почты для отправки.
HackNews ✔️ ✔️
Instapaper ✔️ ✔️ description Описание сообщения.
LineMe ❌️ ✔️
LinkedIn ✔️
LiveJournal ✔️ ✔️
Meneame ❌️ ✔️
Okru ❌️ ✔️
Outlook ✔️ ✔️
Pinterest ✔️ ✔️ media URL изображения для отображения в сообщении.
Plurk ❌ ️ ✔️
Pocket ✔️ ✔️
QZone ✔️ ✔️ summary Краткое описание сообщения.
Reddit ✔️ ✔️
Renren ✔️ ✔️ description Описание сообщения.
srcUrl Исходный URL сообщения.
Skype ✔️ ✔️
Telegram ✔️ ✔️
Threema ✔️ id Идентификатор получателя сообщения.
Tumblr ✔️ ✔️ caption Подпись для добавления к сообщению.
tags Список тегов, разделенных запятыми, для применения к сообщению.
Twitter ✔️ ✔️ hastags Список хэштегов, разделенных запятыми, для применения к твиту.
via Автор твита.
Viber ✔️ ✔️
VKontakte ✔️ ✔️ description Описание сообщения.
image URL изображения для отображения в сообщении.
Weibo ✔️ ✔️
WhatsApp ✔️ ✔️
Xing ✔️
YahooMail ✔️ ✔️

Внесение вклада

Добавление сервиса довольно просто. Начните с создания нового класса сервиса в папке src/Services. Назовите класс по имени добавляемого сервиса. Система автоматически регистрирует сервис через фабрику, поэтому нет необходимости в ручной регистрации.

Приведенный ниже пример службы Gmail служит хорошим примером.

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

Обратите внимание, что только baseUrl является обязательным. baseParameterMapping, additionalParameters и defaultParameters являются необязательными, но могут улучшить функциональность.

$baseUrl

URL сервиса не обязательно должен начинаться с HTTPS. Например, Viber использует viber://forward.

Свойство baseUrl указывает основной URL сервиса. Этот URL является основой при генерации ссылки для обмена, к которой добавляются параметры запроса. Например, для Gmail его базовый URL - https://mail.google.com/mail/u/0.

$baseParameterMapping

Этот пакет определяет два основных атрибута: text и url, так как они являются общими для большинства сервис-провайдеров. Определите эти атрибуты только в том случае, если сервис, с которым вы работаете, использует другую схему именования. Например, Gmail использует body вместо text, что требует явного сопоставления. При использовании Gmail любой атрибут text, переданный в компонент blade, преобразуется в параметр запроса body в ссылке для обмена.

$additionalParameters

Некоторые сервисы принимают более конкретные параметры запроса. Например, Gmail поддерживает bcc, cc, su и to. Определите их в массиве additionalParameters. Когда пользователи включают эти атрибуты в компонент blade, они добавляются в ссылку для обмена. Убедитесь, что эти параметры также перечислены в таблице поддерживаемых сервисов с краткими описаниями.

$defaultParameters

Некоторые сервисы требуют определенных параметров запроса для работы ссылки для обмена. Например, Gmail требует включения view=cm. Обязательные атрибуты объявляются в массиве defaultParameters. Они всегда добавляются к ссылке для обмена и не могут быть опущены.

prepareAttributes()

Для изменения атрибутов перед генерацией ссылки для обмена введите метод prepareAttributes в ваш сервис. Этот метод активируется перед передачей атрибутов в метод generateLink, что позволяет вносить пользовательские изменения атрибутов. Ниже приведен пример использования трейта 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'];
}
}
}

Атрибуты, переданные в сервис, доступны через массив $attributes. В приведенном примере:

Руководство по поддержке

Благодарим вас за выбор нашего пакета с открытым исходным кодом! Пожалуйста, ознакомьтесь с этими руководствами по поддержке. Они помогут вам получить максимальную отдачу от нашего проекта.

Поддержка от сообщества

Наш проект с открытым исходным кодом развивается благодаря нашему потрясающему сообществу. Если у вас есть вопросы или вам нужна помощь, лучше всего обратиться к StackOverflow и другим онлайн-ресурсам.

Ошибки и приоритеты функций

Реальность управления проектом с открытым исходным кодом означает, что мы не можем сразу же решить каждую сообщенную ошибку или запрос на функцию. Мы устанавливаем приоритеты проблем в следующем порядке:

1. Ошибки, влияющие на наши платные продукты

Ошибки, которые влияют на наши платные продукты, всегда будут нашим главным приоритетом. В некоторых случаях мы можем решать только те ошибки, которые непосредственно затрагивают нас.

2. Запросы на слияние от сообщества

Если вы обнаружили ошибку и у вас есть решение, пожалуйста, отправьте запрос на слияние. После проблем, влияющих на наши продукты, мы приоритетно рассматриваем эти исправления, предложенные сообществом. После проверки и утверждения мы объединим ваше решение и укажем ваш вклад.

3. Финансовая поддержка

Для проблем, не относящихся к упомянутым категориям, вы можете решить финансово поддержать их решение. Каждая открытая проблема связана с формой заказа, где вы можете внести свой вклад финансово. Мы устанавливаем приоритеты для этих проблем на основе предоставленной суммы финансирования.

Вклад сообщества

Открытый исходный код процветает, когда его сообщество активно. Даже если вы не исправляете ошибки, рассмотрите возможность внести свой вклад через улучшение кода, обновление документации, создание учебных пособий или помощь другим в сообществе. Мы настоятельно призываем всех, как сообщество, помогать поддерживать работу с открытым исходным кодом.

Повторим, DefectiveCode будет устанавливать приоритеты для ошибок в зависимости от того, как они влияют на наши платные продукты, запросы на слияние от сообщества и финансовую поддержку, полученную для проблем.

Лицензия - Лицензия MIT

Авторское право © Defective Code, LLC. Все права защищены.

Настоящим предоставляется разрешение бесплатно и безвозмездно любому лицу, получающему копию данного программного обеспечения и связанных с ним файлов документации (далее - "Программное обеспечение"), осуществлять с Программным обеспечением любые действия без ограничений, включая, помимо прочего, право использования, копирования, изменения, объединения, публикации, распространения, сублицензирования и/или продажи копий Программного обеспечения, а также лицам, которым Программное обеспечение предоставляется, - осуществлять такие действия, при условии соблюдения следующих условий:

Вышеуказанное уведомление об авторском праве и это разрешение должны быть включены во все копии или существенные части Программного обеспечения.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, А ТАКЖЕ ОТСУТСТВИЯ НАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, ВОЗНИКАЮЩИЕ В РЕЗУЛЬТАТЕ ДЕЙСТВИЙ ПО ДОГОВОРУ, ПРАВОНАРУШЕНИЮ ИЛИ ИНАЧЕ, В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Link Sharer - Defective Code