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などのプラットフォームで投稿を簡単に共有できるようにします。このオープンソースパッケージを使用して、Laravelのブレードコンポーネントシステムを通じて迅速に共有リンクを作成してください。
例
<x-link-sharer service="twitter" text="Share me!" 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">Click me!</span></x-link-sharer>
インストール
- まず、次のComposerコマンドを実行してPHPパッケージをインストールします:
composer require defectivecode/link-sharer
- これで完了です!私たちのパッケージは、Laravelのパッケージディスカバリーを使用して自動的にインストールされます。
サービス
サービスプロバイダは、事前通知なしに共有リンクを更新することがあります。私たちはこれらの変更に追従するために最善を尽くしています。しかし、機能しないサービスに遭遇した場合は、問題をオープンするか、プルリクエストを送信してください。新しいサービスの追加については、以下の貢献セクションを参照してください。
一部のサービスは、コンポーネントに渡すことができる追加のパラメータを提供します。これらは以下のテーブルに記載されています。
| サービス | テキストサポート | 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 投稿を送信する宛先の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
このパッケージは、ほとんどのサービスプロバイダで一般的な2つの主要属性「text」と「url」を識別します。該当サービスが異なる命名規則を採用している場合のみ、これらの属性を定義します。たとえば、Gmailではtextの代わりにbodyを使用しているため、この明示的なマッピングが必要です。Gmailを使用する際、ブレードコンポーネントに渡されたtext属性は、共有リンクのbodyクエリパラメータに変換されます。
$additionalParameters
一部のサービスは、より具体的なクエリパラメータを受け付けます。Gmailを参考にすると、bcc、cc、su、およびtoがサポートされています。これらをadditionalParameters配列に定義します。ユーザーがブレードコンポーネントにこれらの属性を含めると、共有リンクに追加されます。これらのパラメータは、サポートされるサービステーブルにも簡潔な説明と共にリストされていることを確認してください。
$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. 全著作権を保有します。
本ソフトウェア及び関連する文書ファイル(以下「ソフトウェア」)のコピーを取得したすべての人に対して、無償で本ソフトウェアを制限なく利用する権利、使用、複製、修正、統合、出版、配布、サブライセンス、及び/またはソフトウェアのコピーを販売する権利を許可し、ソフトウェアが提供される人々にもそれを行うことを許可します。ただし、以下の条件に従います:
上記の著作権表示とこの許可通知は、ソフトウェアのすべてのコピーまたは重要な部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、いかなる種類の保証もなく、明示または暗示を問わず、商業性、特定の目的への適合性および非侵害の保証を含むが、これに限定されない保証はありません。著作者または著作権者は、契約、不法行為、またはその他の方法によるいかなる請求、損害、またはその他の責任についても、ソフトウェアまたはソフトウェアの使用またはその他の取り扱いに起因する場合において、一切の責任を負わないものとします。