| الملخص | إنشاء بوابة مرنة (Soft Gate) لمجتمعك | |
| المستودع | GitHub - VaperinaDEV/soft-login-required: Creating a flexible Soft Gate for your community · GitHub | |
| هل وجدته مفيدًا؟ | > ./support --coffee | |
| دليل التثبيت | كيفية تثبيت سمة أو مكوّن سمة | |
| جديد على سمات Discourse؟ | دليل المبتدئين لاستخدام سمات Discourse |
قم بتثبيت مكوّن السمة هذا
![]()
ماذا يفعل هذا المكوّن؟
بشكل افتراضي، يمنحك Discourse خيارين رئيسيين: إما أن تترك موقعك مفتوحًا للجميع، أو أن تقفله بالكامل باستخدام إعداد الموقع login required (تسجيل الدخول مطلوب).
Soft Login Required يسدّ هذه الفجوة من خلال إنشاء بوابة مرنة (Soft Gate) لمجتمعك:
إعادة التوجيه: يعيد توجيه الزوار المجهولين إلى /login. عند محاولتهم الوصول إلى مواضيع، سيتم إعادة توجيههم إلى /login (مع معامل returnPath).
بطاقة معاينة للموضوع على صفحة تسجيل الدخول: عند إعادة التوجيه من موضوع، يتم عرض بطاقة معاينة مخصصة مباشرة على صفحة /login، مما يعرض للضيوف لمحة/سياقًا عن الموضوع الذي هم على وشك فتحه!
متوافق مع محركات البحث والزواحف: تتجاوز روبوتات محركات البحث (مثل Googlebot و Bingbot) إعادة التوجيه الأمامية بالكامل من خلال كشف الزواحف الأصلي في Discourse، مما يحافظ على ترتيبات SEO الخاصة بك بأمان.
قواعد استبعاد المسارات: استبعد بسهولة مسارات محددة أو أنماط عناوين URL باستخدام إعداد disabled_url مع استخدام الرموز البرية (مثل /c/* أو /about).
كيف يعمل (مسار المستخدم)
يصل الضيف إلى الموضوع
يتم إعادة توجيهه إلى /login
يرى بطاقة معاينة الموضوع على صفحة تسجيل الدخول
يسجّل الدخول
يُعاد إلى عنوان URL الدقيق للموضوع
مهم: فلسفة التصميم (Soft Login Required مقابل Login Required)
ملاحظة حول الأمان مقابل تجربة المستخدم:
يعمل هذا المكوّن كـ بوابة تسجيل دخول مرنة (Soft Login Gate) مصممة لـ طلبات تسجيل الدخول على مستوى تجربة المستخدم، أو الامتثال للتحقق من العمر، أو تشجيع المجتمع مع الحفاظ الكامل على ترتيبات SEO.نظرًا لأن نواة Discourse تخدم محتوى المواضيع لزواحف البحث لأغراض الفهرسة، يبقى HTML/JSON الخام قابلًا للوصول للعملاء غير JavaScript بالتصميم. إذا كانت حالتك الاستخدام تتطلب عزلًا صارمًا للمحتوى على مستوى الخادم، فالرجاء استخدام الفئات الخاصة المدمجة في Discourse أو إعداد الموقع
login requiredبدلاً من ذلك.
