تم الترحيل من XenForo إلى Discourse: نظرة عامة على الترحيل

لقد قمنا بترحيل مجتمعنا بنجاح (techenclave.com) من XenForo إلى Discourse.

إجمالي المشاركات: 2.5 مليون
إجمالي المستخدمين: 79 ألف (نشط ومحظور)
إجمالي الرسائل الخاصة: 0.7 مليون

إنه مجتمع عمره 20 عامًا، لذا فقد شهد نصيبه العادل من عمليات الترحيل من Proboards و Vbulletin و IPB و Xenforo والآن Discourse.

استغرق منا 4 أيام لإكمال الترحيل. لكنه تضمن 4 أسابيع من العمل المسبق للترحيل و 4 أسابيع من تطوير الإضافات المخصصة قبله.

شكراً للجميع على المساعدة والتوجيه كلما واجهنا صعوبة. :folded_hands:
بشكل عام، كان ترحيلاً ناجحًا للغاية مع عدم ترك أي بيانات مفيدة تقريبًا.


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

التحسينات الرئيسية في نص استيراد XenForo الرئيسي

تحسين الأداء (ترقيم الصفحات بمفتاح): التحسين الأكثر أهمية هو اعتماد ترقيم الصفحات بمفتاح (WHERE id > last_id). هذه الطريقة تحسن سرعة معالجة الدُفعات بشكل كبير مقارنة باستعلامات OFFSET التقليدية، خاصة مع مجموعات البيانات الكبيرة، عن طريق استخدام المفاتيح الأساسية المفهرسة لجلب المجموعة التالية من السجلات.

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

استراتيجية استيراد المشاركات على مرحلتين: يتم الآن استيراد المشاركات على مرحلتين منفصلتين:

المواضيع أولاً: يتم استيراد جميع سلاسل XenForo الأصلية (المشاركات الأولى)، مما يضمن وجود المواضيع الأصلية قبل الردود.

الردود ثانياً: يتم بعد ذلك استيراد المشاركات اللاحقة داخل السلاسل، وربطها بشكل صحيح بمواضيع Discourse التي تم إنشاؤها حديثًا. يقلل هذا النهج المنظم من الردود اليتيمة ويعزز اتساق البيانات.

استيراد شامل للتفاعلات/الإعجابات:
يقوم النص البرمجي الآن بالتمييز بذكاء بين تفاعلات XenForo التي تتطابق مباشرة مع “الإعجابات” الأساسية لـ Discourse (القلوب) وتلك التي هي تفاعلات مخصصة.

إنه يدعم الإدراج المجمع لكل من الإعجابات الأساسية (في جدول post_actions) والتفاعلات المخصصة (بالاستفادة من إضافة discourse-reactions)، مما يسرع العملية بشكل كبير.

يتضمن تعيينًا لأسماء اختصارات رموز تعبيرية لـ XenForo إلى ما يعادلها في Discourse (مثل thumbsup إلى +1، heart_eyes إلى heart).

استيراد بيانات السوق الغنية (إضافة مخصصة):
تمت إضافة قسم مخصص لاستيراد بيانات تفصيلية لقوائم السوق (مثل السعر والموقع والحالة والضمان وخيارات الدفع) من جدول thread_field_value في XenForo.

يتم تخزين هذه البيانات في نموذج TecencMarket::Listing مخصص وفي حقول مخصصة للمواضيع، مما يتيح عرضًا ووظائف أغنى على Discourse.

استيراد ملاحظات السوق (إضافة مخصصة):
تم تقديم وظيفة جديدة لترحيل ملاحظات المستخدم/التقييمات (الإعجابات/عدم الإعجاب) المرتبطة بمعاملات السوق.

تحويل بادئات المواضيع إلى علامات: يقوم النص البرمجي الآن تلقائيًا بتحويل بادئات مواضيع XenForo إلى علامات Discourse. هذا أمر بالغ الأهمية للحفاظ على تنظيم المحتوى وقابليته للاكتشاف، باستخدام إضافة discourse-tagging. كما أنه يقوم بتعيين معرفات البادئات بشكل صحيح إلى عناوين قابلة للقراءة باستخدام جدول العبارات في XenForo.

معالجة محسّنة لمحتوى المشاركات: تلقت هذه الطريقة تحديثات كبيرة لتحويل Markdown بشكل أفضل والتعامل مع BBCode المعقد في XenForo:

تحسين معالجة الاقتباسات: تحويل علامات [QUOTE] في XenForo، بما في ذلك التعامل مع المستخدمين المقتبسين والربط بمشاركات/مواضيع Discourse محددة عند الإمكان.

تضمينات الوسائط المصححة: يضمن أن جميع الوسائط المستوردة (YouTube، Twitter/X) تكون على أسطر منفصلة لتمكين ميزة التضمين/الواحد-بوكسينغ في Discourse، ويحول علامات BBCode القديمة [MEDIA] إلى عناوين URL قياسية.

تحويل الجداول: تحويل BBCode [TABLE] في XenForo إلى جداول Markdown.

معالجة المرفقات (مضمنة ومرفقة): تم إعادة هيكلة منطق معالجة المرفقات. يحاول الآن استبدال علامات [ATTACH] بـ Markdown الصحيح للملف الذي تم تحميله. والأهم من ذلك، أن أي مرفقات لم يتم تمييزها صراحةً بعلامة [ATTACH] في محتوى المشاركة يتم الآن إلحاقها في نهاية المشاركة تحت عنوان واضح “المرفقات:”، مما يضمن عدم فقدان أي ملفات.

تحويل الرموز التعبيرية/الابتسامات: توسيع تعيين الابتسامات في XenForo إلى رموز تعبيرية أصلية في Discourse، مما يحسن الاتساق البصري.

تنظيف BBCode العام: إزالة وتحويل أكثر شمولاً لعلامات BBCode المختلفة (مثل [B]، [I]، [URL]، [IMG]، [LIST]، [CODE]، [COLOR]، [FONT]، [SIZE]، [INDENT]، [USER]).

ترميز الأحرف والتنظيف: يتضمن .scrub! لتسلسلات UTF-8 غير الصالحة و CGI.unescapeHTML لفك ترميز الكيانات HTML بشكل صحيح.

معالجة المستخدمين المعلقين: يتم الآن استيراد مستخدمي XenForo المحظورين كمستخدمين معلقين في Discourse، مع الاحتفاظ بحساباتهم ولكن مع تقييد نشاطهم، مع الاحتفاظ بأسباب الحظر في حقول مخصصة.

استيراد الإشارات المرجعية: استيراد جميع الإشارات المرجعية من XenForo إلى Discourse. لم يكن هناك الكثير منها في البداية.


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

17 إعجابًا

شكراً للمشاركة! الكثير من الأشياء في القائمة التي حددتها كبنود عمل لمشروع مستمر لترحيل SMF إلى Discourse :slightly_smiling_face:

هل رمز الاستيراد المخصص الخاص بك متاح للعامة؟ سأكون مهتمًا بشكل خاص بكيفية تعاملك مع الاستيراد المكون من مرحلتين لضمان الروابط الجديدة الصحيحة.

إعجابَين (2)

يمكنك الرجوع إلى نصوص الاستيراد التي استخدمتها. الملف الذي تريد رؤيته هو هذا:
xenforo_import_enhanced.rb

7 إعجابات

السبب في أننا احتجنا إلى القيام بمرحلتين هو أنه بمرور الوقت، وبشكل حتمي، سيتم دمج موضوع قديم في موضوع جديد. ولكن المشاركات ستحمل المعرف القديم وسيتم التقاطها أولاً. وبدون وجود موضوع مطابق تم استيراده بحلول ذلك الوقت، سيتم إسقاط جميع تلك المشاركات وفقدانها.

4 إعجابات

شكراً جزيلاً! سألقي نظرة.

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

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

رائع! تهانينا! وشكراً لك على المشاركة.

هذا متوقع، نعم. الطريقة التي تتعامل بها مع ملاحظاتهم الآن أمر بالغ الأهمية. عالج تعليقاتهم، وتأكد من أنهم يشعرون بأنهم مسموعون، وسلط الضوء على التحسينات والميزات الجديدة (أنا متأكد من وجود العديد منها!). إذا واجهت أي صعوبة في الملاحظات، فانشرها هنا، وسيسعدني المساعدة.

ألقِ نظرة على القسم الأخير من هذه المقالة، وسيقدم لك بعض الإرشادات: How to prepare your community for a Discourse migration

9 إعجابات

بعد أربع محاولات فاشلة مع المستورد الافتراضي، نجحت نسختك بشكل رائع.

4 إعجابات

أشارك هذا الملخص كما وعدت. استخدمت Gemini 2.5 Pro لتلخيص جميع الملاحظات التي تم جمعها في الأشهر الثلاثة الماضية.

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


ملخص

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


1. التنقل وسهولة الاستخدام (الأولوية القصوى)

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

  • نقاط الملاحظات الرئيسية والوزن:

    • التمرير اللانهائي غير شائع: أقوى نقطة إجماع هي عدم الإعجاب بالتمرير اللانهائي، خاصة على سطح المكتب. يفتقد المستخدمون السياق والتحكم في أرقام الصفحات للتنقل في المواضيع الطويلة.
    • صعوبة التنقل بشكل عام: يصف عدد كبير من المستخدمين المنصة بأنها مربكة، مزدحمة، مملة، ولها منحنى تعلم حاد لا يرغبون في الاستثمار فيه لمنتدي.
    • صعوبة العثور على آخر المشاركات/غير المقروءة: تتمثل الصعوبة الشائعة في عدم القدرة على القفز بشكل بديهي إلى آخر مشاركة أو استئناف القراءة من نقطة معينة في موضوع، مما يتطلب من المستخدمين تعلم حلول بديلة غير واضحة.
    • ضعف اكتشاف المحتوى: يفتقد المستخدمون صفحة الفئات القديمة، التي قدمت نظرة عامة هرمية واضحة لهيكل المنتدى والنشاط الأخير داخل الأقسام. يُنظر إلى التخطيط الجديد على أنه “مزيج”.
    • اقتباسات معطلة: توصف عملية اقتباس النص بأنها صعبة وغير مستقرة، خاصة على الهواتف المحمولة والأجهزة اللوحية حيث يمكن أن تحجب نافذة الاقتباس المنبثقة واجهة المستخدم الأصلية.
  • رؤى قابلة للتنفيذ:

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

2. واجهة المستخدم والتصميم (أولوية عالية)

يشعر المستخدمون أن التصميم الحالي يهدر المساحة ويضر بالقدرة على القراءة، مما يؤثر بشكل مباشر على قدرتهم ورغبتهم في استهلاك المحتوى.

  • نقاط الملاحظات الرئيسية والوزن:

    • المساحة البيضاء المفرطة: كان هذا هو العيب التصميمي الأكثر ذكرًا. يشعر المستخدمون على شاشات سطح المكتب الكبيرة أن العمود المركزي الضيق يهدر مساحة شاشة كبيرة ويقلل من كثافة المعلومات.
    • الرغبة في التخصيص: يبحث المستخدمون بنشاط عن طرق لتحسين تجربتهم من خلال CSS المخصص، والقوالب المختلفة (الافتراضي فوق Horizon)، وأحجام الخطوط الأصغر. يشير هذا إلى رغبة قوية في مزيد من التحكم على مستوى المستخدم في المظهر.
    • ضعف القراءة: مزيج المساحة البيضاء، وأحجام الخطوط، وعدم وجود فصل واضح بين المشاركات يجعل من الصعب مسح المحتوى وقراءته مقارنة بالبرنامج السابق.
  • رؤى قابلة للتنفيذ:

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

3. الشعور العام ومشاركة المستخدم (تأثير عالٍ)

يشير جزء كبير من الملاحظات إلى تأثير سلبي مباشر على نشاط المستخدم. بينما يقاوم البعض هذا التغيير، فإن اتساق الشكاوى يشير إلى قضايا أعمق.

  • نقاط الملاحظات الرئيسية والوزن:

    • الشعور السلبي / انخفاض الاستخدام: هذا مقياس حاسم. يذكر العديد من المستخدمين صراحة أنهم يزورون المنتدى بشكل أقل الآن.
    • الشعور الإيجابي: مجموعة أصغر ولكن ملحوظة تستمتع بالشعور الحديث والسرعة والميزات مثل نظام الإشعارات ومحرر Markdown.
    • المستخدمون المتكيفون: هذه المجموعة تفتقد المنتدى القديم ولكنها تفهم الأسباب التقنية للانتقال وهي على استعداد للتكيف.
  • رؤى قابلة للتنفيذ:

    • الاعتراف والتواصل: اعترف علنًا بملاحظات المستخدمين وقم بتوصيل خارطة طريق واضحة لتحسينات واجهة المستخدم وتجربة المستخدم. يمكن أن يساعد هذا في الاحتفاظ بالمستخدمين الذين يشعرون بالإحباط حاليًا ولكنهم على استعداد للتكيف.
    • إعطاء الأولوية لإصلاحات “جودة الحياة”: ركز على التغييرات منخفضة الجهد وعالية التأثير أولاً (على سبيل المثال، تغيير ألوان الفئات لمطابقة القالب القديم كما اقترح أحد المستخدمين) لإظهار أن الملاحظات يتم سماعها والتصرف بناءً عليها.
    • إنشاء دليل “البدء السريع”: بينما يقاوم بعض المستخدمين قراءة الأدلة، فإن موضوعًا مثبتًا يشرح بسرعة أهم 5 تغييرات مربكة (مثل التنقل في المواضيع والاقتباس) يمكن أن يسهل الانتقال للكثيرين.

4. الوظائف الأساسية والأداء (أولوية متوسطة)

على الرغم من عدم ذكرها بشكل متكرر مثل واجهة المستخدم وتجربة المستخدم، إلا أن هذه القضايا تؤثر على الغرض الأساسي للمنتدى.

  • نقاط الملاحظات الرئيسية والوزن:

    • الشعور بالدردشة: يشجع التصميم على الردود القصيرة والتفاعلية بدلاً من المناقشات الطويلة والمنظمة، مما يجعله يبدو أشبه بتطبيق دردشة منه بمنتدي.
    • بحث ضعيف: يبلغ المستخدمون أن البحث لا يعطي أولوية فعالة لنتائج عناوين المواضيع، مما يجعل من الصعب العثور على المواضيع المعروفة.
    • مشاكل الأداء: لاحظ أحد المستخدمين أن محرر النص يصبح بطيئًا ويتسبب في ارتفاع درجة حرارة جهازه المحمول في المواضيع الطويلة.
  • رؤى قابلة للتنفيذ:

    • ضبط ملاءمة البحث: تحقق من إعدادات Discourse أو الإضافات التي يمكنها إعطاء وزن أكبر لعناوين المواضيع في نتائج البحث. اقتراح المسؤول باستخدام بناء جملة متقدم هو حل بديل، وليس حلاً لسلوك البحث الافتراضي.
    • مراقبة الأداء في المواضيع الطويلة: راقب أداء المحرر والتمرير في المواضيع التي تحتوي على آلاف الردود لمعالجة الاختناقات المحتملة من جانب العميل.
    • تمكين البحث بالذكاء الاصطناعي: كما اقترح المسؤول، يمكن أن يكون تمكين البحث المدعوم بالذكاء الاصطناعي حلاً طويل الأمد لمشكلة ملاءمة البحث، ولكن يجب موازنته مقابل التكاليف المحتملة.
3 إعجابات

لماذا لا #marketplace؟ على الرغم من أن النتيجة عادة ما تكون خاصة.

بالنسبة لهؤلاء المستخدمين، قد ترغب في التفكير في استدعاء نظرة عامة على الفئات بشكل صريح. أو حتى التفكير في تبديل هذه النظرة العامة إلى شيء يفضلونه. إنها فرصة لإشراكهم أيضًا.
شارك بعض لقطات الشاشة لما ستبدو عليه الإعدادات المختلفة لـ Desktop category page style واسأل عن المفضلة لديهم؟

يبدو هذا وكأنه ملاحظات نود الحصول عليها بشكل صريح. هل يمكنك أن تطلب منهم الإبلاغ عن ذلك هنا على Meta؟

يمكن إصلاح هذا باستخدام سمات المستخدم :slight_smile: فكر في إضافة مكون السمة هذا إلى سمة قابلة للاختيار من قبل المستخدم GitHub - discourse/discourse-full-width-component: Make Discourse occupy the full browser width

لا أفهم “الفصل الواضح بين المشاركات”؟

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

إعجابَين (2)

مع سوق سمات، يتم تقسيم التكلفة بين مشترين متعددين. لدى منشئ السمة أيضًا حافز لإنشاء العديد من السمات.

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

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

مع مكون العرض الكامل على Horizon

مع السمة المخصصة المستندة إلى Foundation

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

سأشارك المزيد من التفاصيل حول مشكلة الاقتباس على الأجهزة المحمولة/الأجهزة اللوحية.

إعجابَين (2)