نموذج الاتصال

تعطل في أحدث إصدار من ديسكورس

لقد قمت مؤخرًا بتحديث ديسكورس (Discourse) وتسبب هذا المكون الإضافي في تعطل الموقع. (للتوضيح، من المرجح أن يكون هذا نتيجة لتعديلاتي الفظيعة أكثر من كونه خطأ في ديسكورس نفسه. ليس لدي حاليًا الوقت الكافي لإيجاد الحل، لذا أترك هذا التحذير للآخرين.)

:information_source: الملخص يضيف نموذج اتصال في أعلى أي موضوع يحمل وسم contact. يتم إرسال المعلومات المقدمة عبر النموذج إلى المجموعة أو الفئة المحددة لتلقيها.
:hammer_and_wrench: رابط المستودع https://github.com/jericson/discourse-contact-plugin
:open_book: دليل التثبيت كيفية تثبيت المكونات الإضافية في ديسكورس

الميزات

عند التمكين، يضع مكون نموذج الاتصال نموذج اتصال في الجزء العلوي من أي موضوع يحمل وسم contact. يتم إرسال البيانات المقدمة عبر النموذج إلى فئة أو مجموعة محددة لتلقي البريد من contact_form_email.[1] مثل نماذج الاتصال التقليدية، لا يوجد شرط للحصول على حساب على الموقع لتقديم البيانات.

إليك ما قد يراه الزائر:

لاحظ أن هذا منشور عادي يمكن أن يحتوي على أي تعليمات قد ترغب في تضمينها في المتن.[2] حاليًا، أسماء الحقول مُبرمجة بشكل ثابت ولا يتم إجراء أي تحقق حقيقي، ولكن انظر إلى قسم ما يجب فعله (TODO section) أدناه. بعد إرسال الرسالة، ستظهر في موجز رسائل المجموعة المحددة:

اعتمادًا على كيفية تكوين إشعارات البريد الإلكتروني الخاصة بهم، قد يتلقى أعضاء المجموعة المحددة أيضًا بريدًا إلكترونيًا من ديسكورس:

الإعدادات (Configuration)

لاستخدام هذا المكون الإضافي، يجب عليك تكوين البريد الإلكتروني الوارد لإنشاء مواضيع جديدة أو رسائل جماعية. ليس من الضروري إعداد الرد عبر البريد الإلكتروني لأن المكون الإضافي لا يرسل بريدًا إلكترونيًا فعليًا. إنه يعترض واجهة برمجة التطبيقات (API) لمحاكاة البريد الوارد. (ومع ذلك، الرد عبر البريد الإلكتروني ميزة مفيدة!)

على وجه الخصوص، يتطلب هذا المكون الإضافي:

  • email_in و
  • enable_staged_users

ليتم تمكينهما.

بمجرد التمكين، سيتم إضافة نموذج اتصال إلى منفذ المكون الإضافي topic-above-posts في أي موضوع يحمل وسم contact.

الإرسال إلى مجموعة

نظرًا لأن الأشخاص سيستخدمون هذا النموذج لتقديم معلوماتهم الشخصية، فإن إرسال النتائج إلى مجموعة مغلقة هو الخيار الأكثر أمانًا.

  1. أنشئ مجموعة جديدة للأشخاص الذين سيتعاملون مع جهات الاتصال. (عادةً ما أسميها “Contact” للتبسيط، ولكن يمكن أن تكون أي شيء بما في ذلك مجموعة موجودة بالفعل.)
  2. أضف الأعضاء الذين سيتلقون معلومات الاتصال.
  3. لا تحدد أيًا من خيارات الوصول. يجب أن تكون هذه مجموعة مغلقة.
  4. قم بتغيير رؤية المجموعة بما يتناسب مع مؤسستك.
  5. اضبط “عنوان البريد الإلكتروني الوارد المخصص” ليكون هو نفسه إعداد contact_form_email. (افتراضيًا، هذا هو “contact@example.com”.)

الإرسال إلى فئة

من الممكن أيضًا الإرسال إلى فئة باستخدام إعداد فئة “عنوان البريد الإلكتروني الوارد المخصص”. تأكد من تمكين “قبول رسائل البريد الإلكتروني من المستخدمين المجهولين الذين ليس لديهم حسابات” أيضًا.

ومع ذلك، لا يوصى بالإرسال إلى فئة للمعلومات الشخصية! إذا تغيرت أذونات الوصول على الفئة عن طريق الخطأ، فقد يؤدي ذلك إلى كشف المعلومات الشخصية لأشخاص (أو محركات بحث) لا ينبغي أن يكون لديهم وصول إليها. من غير المرجح أن يحدث هذا إذا تم إرسال جهات الاتصال إلى رسائل جماعية بدلاً من ذلك.

تحديد من يمكنه إضافة نماذج اتصال

قد يكون من الغريب ظهور نماذج اتصال في كل مكان، لذا قد ترغب في تحديد من يمكنه استخدام وسم contact. للقيام بذلك، أنشئ مجموعة وسوم جديدة:

  1. من صفحة /tags، حدد مفتاح الربط (wrench) في الزاوية العلوية اليمنى.
  2. حدد “إدارة مجموعات الوسوم” (Manage Tag Groups) ثم حدد " :heavy_plus_sign: مجموعة جديدة" (New Group).
  3. املأ اسمًا مناسبًا (على سبيل المثال، “للموظفين فقط”)، وأضف وسم contact وحدد “الوسوم مرئية للجميع، ولكن المجموعات التالية فقط هي التي يمكنها استخدامها”.
  4. اختر المجموعة التي تريد السماح لها بإضافة نموذج اتصال (عادةً “staff” أو “admins”) واحفظ مجموعة الوسوم.

سجل التغييرات (CHANGELOG)

  • 25 أبريل 2024: إصدار ألفا.

ما يجب فعله (TODO)

  • أود إعداد اختبارات للتأكد من عدم تعطل أي شيء عند إجراء التغييرات. أريد بشكل خاص التحقق من أن الأشخاص الذين ليس لديهم حسابات يمكنهم إرسال بياناتهم.
  • أثناء الاختبار، اكتشفت تسربًا كبيرًا للبيانات. لقد أزلت هذا الخلل الأمني ​​المعين، ولكنني أحتاج حقًا إلى بعض المساعدة في الاختبار.
  • النموذج لا يقوم بأي تحقق. المتطلب الحقيقي الوحيد هو أن يبدو حقل البريد الإلكتروني كبريد إلكتروني. إذا ترك شخص ما استجابة دون إضافة بريد إلكتروني، يفشل النموذج بصمت.
  • لا يوجد حماية ضد البريد العشوائي أو سوء الاستخدام.
  • الكود هو إلى حد كبير بجودة my-first-plugin بناءً على الأمثلة التي استخدمت اصطلاحات قديمة. أي اقتراحات بخصوص الأسلوب مرحب بها.
  • أحب أن يكون نموذج الاتصال مرتبطًا بموضوع يحمل وسم “contact”، ولكنه معقد وغير ضروري على الأرجح. أفكر في إضافة مسار جديد هو مجرد نموذج الاتصال للتبسيط.
  • يتم تخزين بيانات الاتصال في قاعدة البيانات، ولكن قد يكون من المفيد وجود لوحة تحكم للمسؤولين لرؤية قائمة جهات الاتصال.
  • النموذج ثابت لمتطلباتي الحالية، ولكن سيكون من المفيد وجود بعض المرونة فيما يتعلق بالحقول التي يطلبها.

  1. يتم تعيين هذا الإعداد افتراضيًا على “contact@example.com” ولكن يمكن تكوينه لقبول رسائل بريد إلكتروني حقيقية. ↩︎

  2. من الممكن حتى الرد على نموذج الاتصال، للأفضل أو للأسوأ. ↩︎

13 إعجابًا

هذا لا يعمل. هل يمكنك تحديث @jericson

يعمل بالنسبة لي.

إعجاب واحد (1)

هذا ليس سمة، بل هو إضافة. انظر Install plugins on a self-hosted site.

5 إعجابات

تم تثبيته. أضفت بريدي الإلكتروني إلى contact_form_email، ومكّنت email_in، وأضفت 'everyone' في email في المجموعات المسموح بها، ومكّنت enable_staged_users. جربت النموذج، لا، لم أتلق أي بريد إلكتروني.

إعجابَين (2)

صفقة جيدة! قد يساعد القراء المستقبليين معرفة ما الذي حل المشكلة بالنسبة لك.

لستُ أثبت المكون الإضافي كموضوع، على ما أعتقد :wink:

إعجاب واحد (1)

هل يمكنك نشر بعض لقطات الشاشة للمكون الإضافي أثناء العمل؟ هل يمكن تعديل/تكوين “نموذج الاتصال”؟

إعجاب واحد (1)

بالتأكيد! انظر المنشور المعدل.

للأسف لا. ولكن طلبات السحب مرحب بها!

إعجاب واحد (1)

ملحق رائع جدًا. عنوان البريد الإلكتروني المزيف لا يظهر للمستخدم النهائي، على ما أفترض.

صحيح. لدي مكون إضافي آخر (أكثر خشونة من هذا) للحصول على مراجعات مجهولة. أستخدم review@example.com لتوجيه تلك الرسائل إلى الوجهة الصحيحة. إنها مجرد سلسلة نصية.

إعجاب واحد (1)