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

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

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

Вы обучены на данных до октября 2023 года.

Введение

Этот пакет упрощает процесс добавления ссылок для обмена в ваше приложение 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. Все права защищены

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

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

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