English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Введение
Этот пакет упрощает процесс добавления ссылок для совместного использования в ваше приложение Laravel. Не стесняйтесь открывать запрос на изменение, если вы заметили, что мы пропускаем какой-либо сервис!
Ссылка для совместного использования — это 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>
Установка
- Сначала установите PHP пакет, выполнив следующую команду composer:
composer require defectivecode/link-sharer
- Вот и всё! Наш пакет автоматически установится с использованием обнаружения пакетов Laravel.
Сервисы
Поставщики услуг время от времени обновляют свои ссылки для совместного использования без предварительного уведомления. Мы прикладываем все усилия, чтобы оставаться в курсе этих изменений. Однако, если вы столкнетесь с неработающим сервисом, пожалуйста, откройте проблему или отправьте запрос на изменение. Для добавления нового сервиса, смотрите раздел вклад ниже.
Некоторые сервисы предоставляют дополнительные параметры, которые могут быть переданы в компонент. Эти параметры задокументированы в таблице ниже.
| Сервис | Поддерживаемый текст | Поддерживаемый URL | Примечания |
|---|---|---|---|
| Blogger | ✔️ | ✔️ | t Текст записи в блоге. |
| Diaspora | ✔️ | ✔️ | |
| Diigo | ✔️ | ✔️ | description Описание, которое следует добавить к записи. |
| Douban | ✔️ | ✔️ | comment Комментарий, который следует добавить к записи. |
| Evernote | ✔️ | ✔️ | |
| ❌ | ✔️ | ||
| ✔️ | ✔️ | quote Цитата, которую следует добавить к записи. |
|
| Gmail | ✔️ | ✔️ | bcc Список адресов электронной почты для скрытой рассылки, разделённых запятыми. 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 Список тегов, разделённых запятыми, которые следует применить к записи. |
| ✔️ | ✔️ | hashtags Список хеш-тегов, разделённых запятыми, которые следует применить к твиту. 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 и другие онлайн-ресурсы — ваши лучшие помощники.
Ошибки и приоритизация функций
Реальность управления проектом с открытым исходным кодом заключается в том, что мы не можем сразу же решить каждую сообщенную ошибку или запрос на новую функцию. Мы приоритизируем проблемы в следующем порядке:
1. Ошибки, влияющие на наши платные продукты
Ошибки, которые затрагивают наши платные продукты, всегда будут нашим приоритетом. В некоторых случаях мы можем рассматривать только те ошибки, которые влияют на нас напрямую.
2. Запросы на внесение изменений от сообщества
Если вы выявили ошибку и у вас есть решение, пожалуйста, отправьте запрос на внесение изменений. После вопросов, касающихся наших продуктов, мы придаем следующий высокий приоритет этим исправлениям, инициированным сообществом. После проверки и одобрения мы объединим ваше решение и отметим ваш вклад.
3. Финансовая поддержка
Для вопросов за пределами упомянутых категорий вы можете выбрать финансирование их решения. Каждая открытая проблема связана с формой заказа, через которую вы можете внести финансовый вклад. Мы приоритизируем эти вопросы на основе суммы финансирования.
Вклад сообщества
Проекты с открытым исходным кодом процветают, когда их сообщество активно. Даже если вы не исправляете ошибки, подумайте о том, чтобы внести вклад через улучшение кода, обновление документации, создание учебных пособий или помощь другим в каналах сообщества. Мы настоятельно призываем всех, как сообщество, поддерживать работу с открытым исходным кодом.
Повторим, что DefectiveCode будет приоритизировать ошибки в зависимости от того, как они влияют на наши платные продукты, запросы на внесение изменений от сообщества и финансовую поддержку, полученную за проблемы.
Лицензия - MIT Лицензия
Авторские права © Defective Code, LLC. Все права защищены
Настоящим предоставляется разрешение, безвозмездно, любому лицу, получающему копию этого программного обеспечения и сопутствующих документационных файлов (далее «Программное обеспечение»), пользоваться Программным обеспечением без ограничений, включая, но не ограничиваясь правами использовать, копировать, изменять, сливать, публиковать, распространять, предоставлять сублицензии и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это, при соблюдении следующих условий:
Указанные выше авторские права и данное разрешение должны быть включены во все копии или значительные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ ГАРАНТИЙ ЛЮБОГО ВИДА, ЯВНЫХ ИЛИ ИМПЛИЦИТНЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОРГОВОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ И НАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ДЕРЖАТЕЛИ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ИСКИ, УЩЕРБ ИЛИ ДРУГИЕ ОБЯЗАТЕЛЬСТВА, НИ В КАКОМ УКАЗАНИИ, ДОГОВОРЕ, ДЕЛИКТЕ ИЛИ ИНОМ, ВЫТЕКАЮЩИЕ ИЗ, ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.