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 الخاص بك. لا تتردد في فتح طلب سحب إذا لاحظت أننا نفتقد خدمة ما!
رابط المشاركة هو عنوان 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>
# التثبيت
composer require defectivecode/link-sharer
يقوم مقدمو الخدمات أحيانًا بتحديث روابط المشاركة الخاصة بهم دون إشعار مسبق. نبذل قصارى جهدنا للبقاء على اطلاع بهذه التغييرات. ومع ذلك، إذا واجهت خدمة غير وظيفية، يرجى فتح قضية أو تقديم طلب سحب. لإضافة خدمة جديدة، راجع قسم المساهمة أدناه.
توفر بعض الخدمات معلمات إضافية يمكن تمريرها إلى المكون. يتم توثيق هذه المعلمات في الجدول أدناه.
الخدمة | النص المدعوم | الرابط المدعوم | ملاحظات |
---|---|---|---|
Blogger | ✔️ | ✔️ | t نص منشور المدونة. |
Diaspora | ✔️ | ✔️ | |
Diigo | ✔️ | ✔️ | description وصف لإضافته إلى المنشور. |
Douban | ✔️ | ✔️ | comment تعليق لإضافته إلى المنشور. |
Evernote | ✔️ | ✔️ | |
❌ | ✔️ | ||
✔️ | ✔️ | quote اقتباس لإضافته إلى المنشور. |
|
Gmail | ✔️ | ✔️ | bcc قائمة عناوين البريد الإلكتروني للفئة المخفية. cc قائمة عناوين البريد الإلكتروني للفئة المنسوخة. su موضوع البريد الإلكتروني. to قائمة عناوين البريد الإلكتروني للإرسال إليها. |
HackNews | ✔️ | ✔️ | |
Instapaper | ✔️ | ✔️ | description وصف المنشور. |
LineMe | ❌️ | ✔️ | |
❌ | ✔️ | ||
LiveJournal | ✔️ | ✔️ | |
Meneame | ❌️ | ✔️ | |
Okru | ❌️ | ✔️ | |
Outlook | ✔️ | ✔️ | |
✔️ | ✔️ | media رابط صورة لعرضها في المنشور. |
|
Plurk | ❌ ️ | ✔️ | |
✔️ | ✔️ | ||
QZone | ✔️ | ✔️ | summary ملخص المنشور. |
✔️ | ✔️ | ||
Renren | ✔️ | ✔️ | description وصف المنشور. srcUrl الرابط الأصلي للمنشور. |
Skype | ✔️ | ✔️ | |
Telegram | ✔️ | ✔️ | |
Threema | ❌ | ✔️ | id معرف الشخص لإرسال المنشور إليه. |
Tumblr | ✔️ | ✔️ | caption تعليق لإضافته إلى المنشور. tags قائمة مفصولة بفواصل من العلامات لتطبيقها على المنشور. |
✔️ | ✔️ | hastags قائمة مفصولة بفواصل من الوسوم لتطبيقها على التغريدة. via المغرد الذي يجب منحه الفضل. |
|
Viber | ✔️ | ✔️ | |
VKontakte | ✔️ | ✔️ | description وصف المنشور. image رابط صورة لعرضها في المنشور. |
✔️ | ✔️ | ||
✔️ | ✔️ | ||
❌ | ✔️ | ||
YahooMail | ✔️ | ✔️ |
# المساهمة إضافة خدمة جديدة أمر بسيط نسبيًا. ابدأ بإنشاء فئة خدمة جديدة داخل مجلد `src/Services`. قم بتسمية الفئة باسم الخدمة التي تضيفها. يقوم النظام بتسجيل الخدمة تلقائيًا من خلال المصنع، لذا لا حاجة للتسجيل اليدوي. تعد خدمة Gmail المقدمة أدناه مثالًا جيدًا. ```php<?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 الأساسي للخدمة. هذا العنوان هو الأساس عند إنشاء رابط المشاركة، حيث يتم إلحاق معلمات الاستعلام به. باستخدام 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 الأولوية للأخطاء بناءً على كيفية تأثيرها على منتجاتنا المدفوعة، وطلبات السحب من المجتمع، والدعم المالي المقدم للقضايا._ ```markdown# الرخصة - رخصة MIT حقوق الطبع والنشر © Defective Code, LLC. جميع الحقوق محفوظة يتم بموجب هذا منح الإذن، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج والملفات التوثيقية المرتبطة به ("البرنامج")، للتعامل مع البرنامج دون قيود، بما في ذلك على سبيل المثال لا الحصر حقوق الاستخدام، النسخ، التعديل، الدمج، النشر، التوزيع، الترخيص الفرعي، و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين يتم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية: **يجب تضمين إشعار حقوق الطبع والنشر أعلاه وهذا الإذن في جميع النسخ أو الأجزاء الكبيرة من البرنامج.** يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريح أو ضمني، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق، الملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لن يكون المؤلفون أو أصحاب حقوق الطبع والنشر مسؤولين عن أي مطالبة، أضرار أو أي مسؤولية أخرى، سواء في عقد، ضرر أو غير ذلك، تنشأ عن، خارج أو فيما يتعلق بالبرنامج أو استخدامه أو التعاملات الأخرى في البرنامج.