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="awesome,links" 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>
composer require defectivecode/link-sharer
Поставщики услуг иногда обновляют свои ссылки для обмена без предварительного уведомления. Мы прилагаем все усилия, чтобы быть в курсе этих изменений. Однако, если вы столкнулись с неработающей услугой, пожалуйста, откройте проблему или отправьте запрос на внесение изменений. Для добавления новой услуги обратитесь к разделу вклад ниже.
Некоторые услуги предоставляют дополнительные параметры, которые можно передать компоненту. Они задокументированы в таблице ниже.
Услуга | Поддержка текста | Поддержка URL | Примечания |
---|---|---|---|
Blogger | ✔️ | ✔️ | t Текст блога. |
Diaspora | ✔️ | ✔️ | |
Diigo | ✔️ | ✔️ | description Описание для добавления в пост. |
Douban | ✔️ | ✔️ | comment Комментарий для добавления в пост. |
Evernote | ✔️ | ✔️ | |
❌ | ✔️ | ||
✔️ | ✔️ | quote Цитата для добавления в пост. |
|
Gmail | ✔️ | ✔️ | bcc Список адресов электронной почты для BCC через запятую. cc Список адресов электронной почты для CC через запятую. su Тема письма. to Список адресов электронной почты для отправки через запятую. |
HackNews | ✔️ | ✔️ | |
Instapaper | ✔️ | ✔️ | description Описание поста. |
LineMe | ❌ | ✔️ | |
❌ | ✔️ | ||
LiveJournal | ✔️ | ✔️ | |
Meneame | ❌ | ✔️ | |
Okru | ❌ | ✔️ | |
Outlook | ✔️ | ✔️ | |
✔️ | ✔️ | media URL изображения для отображения в посте. |
|
Plurk | ❌ | ✔️ | |
✔️ | ✔️ | ||
QZone | ✔️ | ✔️ | summary Краткое описание поста. |
✔️ | ✔️ | ||
Renren | ✔️ | ✔️ | description Описание поста. srcUrl Оригинальный URL поста. |
Skype | ✔️ | ✔️ | |
Telegram | ✔️ | ✔️ | |
Threema | ❌ | ✔️ | id Идентификатор человека для отправки поста. |
Tumblr | ✔️ | ✔️ | caption Подпись для добавления в пост. tags Список тегов через запятую для применения к посту. |
✔️ | ✔️ | hastags Список хэштегов через запятую для применения к твиту. via Твиттер для указания авторства. |
|
Viber | ✔️ | ✔️ | |
VKontakte | ✔️ | ✔️ | description Описание поста. image URL изображения для отображения в посте. |
✔️ | ✔️ | ||
✔️ | ✔️ | ||
❌ | ✔️ | ||
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
. В приведенном примере:
text
и url
, url
добавляется к атрибуту text
.url
, атрибут text
принимает значение url
.Спасибо, что выбрали наш пакет с открытым исходным кодом! Пожалуйста, уделите минуту, чтобы ознакомиться с этими рекомендациями по поддержке. Они помогут вам максимально эффективно использовать наш проект.
Наш проект с открытым исходным кодом поддерживается нашей замечательной общиной. Если у вас есть вопросы или вам нужна помощь, StackOverflow и другие онлайн-ресурсы будут лучшими вариантами.
Реальность управления проектом с открытым исходным кодом означает, что мы не можем немедленно решить каждую сообщенную ошибку или запрос функции. Мы приоритизируем проблемы в следующем порядке:
Ошибки, которые влияют на наши платные продукты, всегда будут нашим главным приоритетом. В некоторых случаях мы можем решать только те ошибки, которые непосредственно влияют на нас.
Если вы обнаружили ошибку и у вас есть решение, пожалуйста, отправьте запрос на внесение изменений. После проблем, влияющих на наши продукты, мы придаем следующий по важности приоритет этим исправлениям, управляемым сообществом. После проверки и утверждения мы объединим ваше решение и отметим ваш вклад.
Для проблем, не входящих в упомянутые категории, вы можете выбрать финансирование их решения. Каждая открытая проблема связана с формой заказа, где вы можете внести финансовый вклад. Мы приоритизируем эти проблемы на основе предоставленной суммы финансирования.
Открытый исходный код процветает, когда его сообщество активно. Даже если вы не исправляете ошибки, рассмотрите возможность внесения вклада через улучшения кода, обновления документации, учебные пособия или помощь другим в каналах сообщества. Мы настоятельно призываем всех, как сообщество, помогать поддерживать работу с открытым исходным кодом.
Еще раз, DefectiveCode будет приоритизировать ошибки в зависимости от того, как они влияют на наши платные продукты, запросы на внесение изменений от сообщества и полученную финансовую поддержку для решения проблем.
Copyright © Defective Code, LLC. Все права защищены
Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию этого программного обеспечения и сопутствующих документационных файлов (далее "Программное обеспечение"), использовать Программное обеспечение без ограничений, включая, помимо прочего, права на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также лицам, которым предоставляется Программное обеспечение, при соблюдении следующих условий:
Вышеуказанное уведомление об авторских правах и это разрешение должны быть включены во все копии или значительные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ КОММЕРЧЕСКОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ИНЫЕ ОБЯЗАТЕЛЬСТВА, НЕЗАВИСИМО ОТ ТОГО, ЯВЛЯЮТСЯ ЛИ ОНИ РЕЗУЛЬТАТОМ ДОГОВОРА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКШИЕ ИЗ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.