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

مقدمة

هذا الحزمة تبسط عملية إضافة روابط المشاركة إلى تطبيق Laravel الخاص بك. لا تتردد في فتح طلب سحب إذا لاحظت أننا نفتقر إلى خدمة!

رابط المشاركة هو عنوان URL يجمع بين عنوان URL الأساسي لوسائل التواصل الاجتماعي مع معلمات الاستعلام لمشاركة المحتوى من موقعك الإلكتروني أو تطبيقك. تشمل المعلمات عادةً عنوان URL للمحتوى ورسالة مسبقة التعيين. تتيح هذه الروابط، كما هو موضح في الأمثلة، للمستخدمين مشاركة المنشورات بسهولة على منصات مثل تويتر وفيسبوك وتيليجرام. استخدم هذه الحزمة مفتوحة المصدر لإنشاء روابط مشاركة بسرعة عبر نظام مكونات 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 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

لا يحتاج عنوان الخدمة للإطلاق إلى البدء بـ HTTPS. على سبيل المثال، يستخدم Viber viber://forward.

تحدد خاصية baseUrl عنوان 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 الأولوية للأخطاء بناءً على كيفية تأثيرها على منتجاتنا المدفوعة، وطلبات السحب الخاصة بالمجتمع، والدعم المالي المستلم للقضايا.

Lizenz - MIT Lizenz

Copyright © Defective Code, LLC. Alle Rechte vorbehalten

Hiermit wird kostenlos die Erlaubnis erteilt, an jede Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, mit der Software ohne Einschränkung umzugehen, einschließlich, aber nicht beschränkt auf die Rechte, die Software zu nutzen, zu kopieren, zu modifizieren, zu fusionieren, zu veröffentlichen, zu verteilen, Unterlizenzen zu erteilen und/oder Kopien der Software zu verkaufen, und Personen, denen die Software zur Verfügung gestellt wird, zu gestatten, dies zu tun, unter der Bedingung der folgenden Bedingungen:

Der obige Copyright-Hinweis und dieser Erlaubnishinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.

DIE SOFTWARE WIRD "WIE BESEHEN" BEREITGESTELLT, OHNE JEGLICHE GARANTIE, WELCHER ART, AUSDRÜCKLICH ODER IMPLIZIT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTFÄHIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND KEINEN RECHTSBRUCH. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHT-RECHTHABER FÜR IRGENDEINEN ANSPRUCH, SCHÄDEN ODER SONSTIGE HAFTUNG HAFTBAR, UNABHÄNGIG DAVON, OB IN EINER KLAGE AUS VERTRAG, DELIKT ODER SONSTIGEM, ENTSTEHEND AUS, IM HINBLICK AUF ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN TRANSAKTIONEN IN DER SOFTWARE.