ترحيل منتدى phpBB3 إلى Discourse

واجهتُ نفس الخطأ. أعتقد أنه يحدث عندما يكون هناك ملف قديم في shared/standalone/import/mysql/imported. حذف هذا الملف أزال الخطأ.

إعجابَين (2)

يبدو أن عملية ترحيل كلمات المرور لم تنجح بالنسبة لي.

ضبطت passwords: true في ملف shared/standalone/import/settings.yml قبل الاستيراد من نسخة احتياطية لـ phpBB 3.0. لدي هذا الإعداد في ملف containers/app.yml:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discoursehosting/discourse-migratepassword.git

ثم شغّلت الأمر ./launcher rebuild app بعد الاستيراد. يبدو أن الاستيراد قد اكتمل بنجاح، إلا أنني لا أستطيع تسجيل الدخول بكلمة المرور من phpBB. لم ألاحظ أي رسائل خطأ ذات صلة أثناء الاستيراد، وكلمة المرور تتكون من 20 حرفًا، لذا يجب أن تتجاوز حد الطول الأدنى.

ما الذي يجب أن أبحث عنه لاستكشاف المشكلة؟

معلومة إضافية: أرى إدخالات import_pass في جدول user_custom_fields في قاعدة البيانات تطابق تجزئات كلمات المرور الموجودة في قاعدة بيانات phpBB، لذا يبدو أن هذا الجزء قد نجح؟

تعديل: آه، لقد فهمت ما حدث. لقد نسيت تمامًا أننا انتقلنا إلى مصادقة LDAP لـ phpBB… كلمات المرور التي استوردتها كانت على ما يرام، لكنها ببساطة عمرها 15 عامًا! لذا الآن أحتاج إلى إعداد شيء ما لاستخراج تجزئات كلمات المرور من LDAP بدلاً من ذلك… :slight_smile:

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

مرحبًا بالجميع،

هل قام أحدكم باستيراد مع مرفقات مؤخرًا؟

تعمل المستخدمين والمنشورات بشكل مثالي، لكن المرفقات لا تُضاف إلى المنشورات.

ما زلت أحتوي على كود BBCode في بعض المنشورات:

الغريب أن محتوى مجلد الملفات يتم نقله إلى مجلد التحميلات في Discourse:

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

ثم قمت بترقية إصدار phpBB إلى 3.2.0 (بعد تشغيل أداة الدعم الخاصة بهم لتنظيف قاعدة البيانات من الإضافات) على خادم تجريبي، وما زلت لم أجد حلاً.

قبل الغوص في استكشاف قاعدة البيانات الخاصة بي، أردت التأكد من أن السكربت يعمل للجميع.

لا أعتقد أنني ارتكبت خطأً في ملف الإعدادات، لكن ربما نظرة جديدة عليه قد تساعد.

# هذا ملف إعدادات مثال لاستيراد phpBB3.

database:
  type: MySQL # حاليًا يتم دعم MySQL فقط
  host: localhost
  port: 3306
  username: root
  password:
  schema: phpbb
  table_prefix: phpbb_ # غيّر هذا إذا كان المنتدى الخاص بك يستخدم بادئة مختلفة. عادةً تبدأ جميع أسماء الجداول بـ phpbb_
  batch_size: 1000 # لا تغير هذا إلا إذا كنت تعرف ما تفعله. القيمة الافتراضية (1000) يجب أن تعمل بشكل جيد.

import:
  # اضبط هذا إذا كنت تستورد منتديات phpBB متعددة إلى منتدى Discourse واحد.
  #
  # على سبيل المثال، عند استيراد مواقع متعددة، ضع بادئة 'first' أمام جميع المعرفات المستوردة
  # لتجنب التعارضات. يجب أن تحتوي عمليات الاستيراد اللاحقة على 'site_name' مختلف.
  #
  # site_name: first
  #
  site_name:

  # إنشاء فئات جديدة
  #
  # على سبيل المثال، لإنشاء فئة رئيسية وفئة فرعية.
  #
  # new_categories:
  # - forum_id: foo
  #   name: فئة Foo
  # - forum_id: bar
  #   name: فئة Bar
  #   parent_id: foo
  #
  new_categories: []

  # تعيينات الفئات
  #
  # على سبيل المثال، سيتم استيراد المواضيع من فئة phpBB 1 و 2
  # في الفئة الجديدة "فئة Foo"، وسيتم استيراد المواضيع من فئة phpBB 3
  # في الفئة الفرعية "فئة Bar"، وسيتم دمج المواضيع من فئة phpBB
  # 4 في الفئة 5، وسيتم تخطي الفئة 6.
  #
  # category_mappings:
  #   1: foo
  #   2: foo
  #   3: bar
  #   4: 5
  #   6: SKIP
  #
  category_mappings: {}

  # تعيينات الوسوم
  #
  # على سبيل المثال، سيتم وضع وسم 'first-category' على المواضيع المستوردة من فئة phpBB 1، وهكذا.
  #
  # tag_mappings:
  #   1:
  #   - first-category
  #   2:
  #   - second-category
  #   3:
  #   - third-category
  #
  tag_mappings:

  # تعيين الرتب إلى مستويات الثقة
  #
  # رتب مستويات رتب phpBB 3.x إلى مستويات الثقة
  # سيكون للمستخدمين الذين رتبتهم 3000 على الأقل مستوى ثقة TL3، وهكذا.
  #
  # rank_mapping:
  #   trust_level_1: 200
  #   trust_level_2: 1000
  #   trust_level_3: 3000
  #
  rank_mapping:

  # تحذير: لا تفعل هذا الخيار إلا إذا كنت تعرف ما تفعله.
  # من المحتمل أن يكسر تحويل BBCode إلى Markdown ويبطئ عملية الاستيراد.
  use_bbcode_to_md: false

  # هذا هو المسار إلى المجلد الجذري لتثبيت phpBB الحالي (أو نسخة منه).
  # يتوقع المستورد العثور على مجلدي /files و /images داخل المجلد الأساسي.
  # يجب عليك تغيير هذا إلى شيء مثل /var/www/phpbb إذا لم تكن تستخدم المستورد القائم على Docker.
  # هذا مطلوب فقط إذا كنت تريد استيراد الصور الرمزية أو المرفقات أو الرموز التعبيرية المخصصة.
  phpbb_base_dir: /shared/import/data

  site_prefix:
    # هذا مطلوب لإعادة كتابة الروابط الداخلية في المنشورات
    original: ***.com   # بدون http(s)://
    new: https://****.org       # مع http:// أو https://

  # فعل هذا إذا كنت تريد إعادة توجيه روابط المنتدى القديمة إلى المواقع الجديدة.
  permalinks:
    categories: true  # يعيد توجيه /viewforum.php?f=1 إلى /c/category-name
    topics: true      # يعيد توجيه /viewtopic.php?f=6&t=43 إلى /t/topic-name/81
    posts: false      # يعيد توجيه /viewtopic.php?p=2455#p2455 إلى /t/topic-name/81/4
    # أضف بادئة لكل نوع من الروابط، مثل 'forum' لإعادة توجيه /forum/viewtopic.php?f=6&t=43 إلى /t/topic-name/81
    # اتركه فارغًا إذا لم يكن المنتدى الخاص بك مثبتًا في مجلد فرعي.
    prefix:

  avatars:
    uploaded: true  # استيراد الصور الرمزية المرفوعة
    gallery: false   # استيراد الصور الرمزية المحددة مسبقًا التي يقدمها phpBB
    remote: false   # تحذير: هذا قد يبطئ عملية الاستيراد بشكل كبير. سيحاول تنزيل الصور الرمزية البعيدة.

  # عندما تكون القيمة صحيحة: يتم استيراد المستخدمين المجهولين كمستخدمين معلقين. لا يمكنهم تسجيل الدخول وليس لديهم عنوان بريد إلكتروني.
  # عندما تكون القيمة خاطئة: سيتم استخدام المستخدم النظام لجميع المستخدمين المجهولين.
  anonymous_users: true

  # فعل هذا إذا كنت تريد استيراد تجزئات كلمات المرور لاستخدام إضافة "migratepassword".
  # هذا سيمكن المستخدمين من تسجيل الدخول بكلمة المرور الحالية.
  # الإضافة متوفرة على: https://github.com/discoursehosting/discourse-migratepassword
  passwords: false

  # بشكل افتراضي، يتم استيراد كل ما يلي. يمكنك تعطيلها بتعيينها إلى false.
  bookmarks: true
  attachments: true
  private_messages: false
  polls: false

  # عندما تكون القيمة صحيحة: سيكون لكل مستخدم مستورد اسم المستخدم الأصلي من phpBB كاسم له
  # عندما تكون القيمة خاطئة: سيكون اسم كل مستخدم مستورد فارغًا ما لم يتم تغيير اسم المستخدم أثناء الاستيراد
  username_as_name: false

  # تعيين الرموز التعبيرية إلى الرموز التعبيرية المستخدمة في phpBB. معظم الرموز التعبيرية الافتراضية لها تعيين بالفعل، ولكن يمكنك تجاوز
  # التعيينات هنا إذا لم تعجبك بعض منها.
  # صيغة التعيين هي: emoji_name: 'smiley_in_phpbb'
  # أو تعيين عدة رموز تعبيرية إلى رمز تعبيري واحد: emoji_name: ['smiley1', 'smiley2']
  emojis:
    # هنا مثالان على التعيين...
    smiley: [':D', ':-D', ':grin:']
    heart: ':love:'
إعجاب واحد (1)

يحدث هذا تحديدًا إذا لم يجد ملف import_phpbb3.sh ملف phpbb_mysql.sql في المسار الصحيح.

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

أفترض أن هذا ينطبق على phpBB أيضًا، حيث أحاول استيراد نسخ احتياطية تتراوح بين الإصدار 3.2.x و3.3.3، لكن عدد المنشورات الأصلية المفقودة يصل إلى الآلاف. حتى مع إجراء عمليات متعددة واستعادة نسخ احتياطية متتالية من إصدارات مختلفة. ولتبسيط عملية التصحيح، يمكن للنص أن يُخرِج رابطًا لرقم تعريف الرسالة في المنتدى القديم لأغراض المراجعة (… viewtopic.php?p=57912)

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

في الواقع، بما أننا في هذا الموضوع، لماذا لا نسجل جميع صفوف الاستيراد الفاشلة مع رسائل الخطأ الخاصة بها في ملف تصدير لمشاركته لأغراض التحليل… مجرد فكرة…

على الأقل في حالة واحدة، يوجد موضوع viewtopic.php?f=3&t=1472، لكن المنشور الأول viewtopic.php?p=145185 قد تم حذفه أو إزالته، وأصبح الآن المنشور الأول للموضوع هو viewtopic.php?p=145186 وهو “ردّ”.

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

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

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

في الوقت الحالي، لا أعرف ببساطة ما إذا كانت المشكلة من السكربت أم من قاعدة بيانات منتديات phpBB :pray:

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

هل قمت بتنزيل الصور ووضعها في المكان الصحيح؟

لم أفعل ذلك مؤخرًا، لكنني سأكون مندهشًا إذا لم يعمل.

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

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

كانت نسخة قديمة جدًا من phpBB مع بعض الإضافات. قمت بتنظيف بسيط ونجحت في الترقية من phpBB 3.0.12 إلى أحدث إصدار 3.1 أو 3.2، وقمت باختبار استيراد لكل إصدار، لكنه لم ينجح. قد تكون المشكلة في قاعدة البيانات. لذلك، إذا تمكّنت من إتمام استيراد كامل بنجاح في المرة القادمة، فسيكون من المفيد جدًا سماع ذلك منك. إذا كانت المشكلة في قاعدة بيانات phpBB، فسأقوم بالبحث بعمق بمساعدة بعض الزملاء، أما إذا كانت المشكلة في السكربت، فيمكنني الانتظار. شكرًا لك على رسالتك!

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

لا أتذكر آخر مرة قمت فيها باستيراد phpBB3، وأعتقد (لكن لا يمكنني التأكد) أن السبب هو أن السكربت يعمل بشكل ممتاز.

وبما أنها تُحمّل إلى Discourse، فالمشكلة على الأرجح تتعلق بكيفية الإشارة إليها في منشورات phpBB. هل تظهر أي أخطاء عند تشغيله؟ قد تكون هذه الأخطاء مؤشرات. أو ربما غيّرت الإضافات طريقة ظهورها في المنشورات و/أو في قاعدة البيانات. ستحتاج على الأرجح إلى بعض البحث.

إعجابَين (2)

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

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

كان هناك إضافة (يبدو أنها كانت في الغالب ملف htaccess، لم أقم بتشغيل هذا المنتدى) لترتيب الملفات في مجلدات فرعية (حسب الأشهر والسنوات)، لكنني قمت بتنظيمها في نفس المجلد، وعملت الترقيات بنجاح على نسخة نظيفة من phpBB. جميع الملفات المستوردة كانت تعمل بشكل صحيح على phpBB 3.1 و3.2.

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

4 إعجابات

أنت محق، كان هناك خطأ في TextProcessor::process_attachments يتسبب في عدم تضمين المرفقات في تنسيق Markdown للمناقشة. لقد قدمت طلب دمج (PR) هنا.

5 إعجابات

عمل رائع، بعد المرورتين، يبدو الاستيراد ممتازًا. شكرًا لك!

4 إعجابات

مرحبًا، لقد قمت للتو باستيراد حوالي 35 ألف منشور؛ خلال عملية الاستيراد، لاحظت ظهور رسالة “Parent post XXXXXX doesn’t exist. Skipping” بشكل متكرر، وعندما انتهت العملية، وجدت في منتدى Discourse جميع “المواضيع” (أعتقد ذلك)، لكنها خالية تمامًا من الردود. عمليًا، تم استيراد الموضوع فقط، وليس المنشورات (باستثناء المنشور الأول الذي يحتوي على نص الموضوع نفسه).

كما لم يتم استيراد الصور الرمزية (Avatars)، رغم أنني وضعتها في المسار الصحيح ضمن مجلد “import”.

كان المنتدى الأصلي يعمل على phpBB2، وقد تم استيراده بانتظام وظهور جميع منشوراته في phpBB3، لكنني قمت بحذف العديد من الرسائل القديمة سابقًا؛ ومع ذلك، يبدو أن كل شيء على ما يرام في phpBB3.

هل لديك أي اقتراحات؟ هل يوجد سكريبت استيراد يمكنني التحقق منه؟

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

كان الأمر كذلك منذ بضعة أسابيع/أشهر، لكن لا تقلق، سيتم إكمال الاستيراد بعد تشغيل أمر import_phpbb3.sh مرة أخرى

3 إعجابات

شكرًا جزيلاً! لقد نجح الأمر مع المنشورات، لكنه لم ينجح مع الصور الرمزية. ما زلت أبحث عن حل.

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

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

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

يرجى تصحيحي إذا كنت مخطئًا. :slight_smile:

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

أبلغ عن إصلاح لتحويل الرموز التعبيرية للاستيراد من phpBB 3.0.7.

  • لم يتم تحويل بعض الرموز التعبيرية بشكل صحيح إلى Discourse:


    (ولكن ليس دائمًا، لسبب ما؛ تم عرض بعض الرموز التعبيرية المتطابقة أحيانًا، وأحيانًا لا. بدا الأمر عشوائيًا في البداية)

  • أيضًا، اختفت بعض الرموز التعبيرية ببساطة:
    phpBB:
    image
    Discourse:
    image

جاءت المشكلة من التعبير النمطي المستخدم في replace_smilies(text) من

التعبير النمطي الخاطئ:

<!-- s(\S+) --><img src="{SMILIES_PATH}/.+?" alt=".*?" title=".*?" /><!-- s?:\S+ -->

لاحظ كيف أن بداية التعبير النمطي لا تفترض وجود حرف “:” بعده:

<!-- s

ولكنها تفترض وجوده في نهاية التعبير النمطي:

<!-- s?:

(أيضًا أتساءل لماذا يوجد “?” يطابق 0 أو 1 من الحرف “s” في نهاية التعبير النمطي، حيث لا يوجد في بداية التعبير النمطي)

لقد قمت بإزالة هذا “:” من التعبير النمطي وبدت مشكلتا الرموز التعبيرية الخاصتان بي محلولتين تمامًا.

في منتدى phpbb الخاص بي، بدأت العديد من الرموز التعبيرية بالفعل بـ “:” مثل “:mrgreen:” أو “:evil:”، ولكن بعضها لم يبدأ بذلك، مثل 8-) أو ;)
أدى التعبير النمطي القديم إلى التقاطات خاطئة للرموز التعبيرية. على سبيل المثال، تم التقاط رموز تعبيرية متعددة بجانب بعضها البعض كرمز تعبيري واحد.


التعبير النمطي الثابت:

<!-- s(\S+) --><img src="{SMILIES_PATH}/.+?" alt=".*?" title=".*?" /><!-- s?\S+ -->

أنا لا أقوم بإصلاح الكود مباشرة في مستودع Discourse لأنني لست معتادًا على استخدام git، وأيضًا لست متأكدًا مما إذا كان سيؤثر على الاستيرادات من إصدارات phpBB الأخرى. لا أريد أن أفسد أي شيء.


على أي حال، إذا واجه الأشخاص نفس المشكلات التي واجهتها، فإليك الحل.

4 إعجابات

تم إصلاح مشكلة أخرى يمكن أن تساعد الأشخاص في حالتي أثناء ترحيل phpBB 3.0.7.

لسبب ما، كانت محتويات منشورات منتديات phpBB الخاصة بي تحتوي أحيانًا على مسافات متعددة تتبع المحتوى في بداية الأسطر. أشك في أن بعض المستخدمين “يحبون” الضغط على مفتاح المسافة بشكل محموم دون الانتباه عند كتابة رسالتهم، ولم يكن لذلك أهمية لأن الصفحة “المعروضة” تجاهلت هذه المسافات المتعددة:

محتوى نص phpBB الخام:

Salut tous  :)
  
     Alors voilà, le combi n'a pas roulé beaucoup ces derniers temps cause CT pas OK  :evil: mais il a fait ces 2000 kms sans broncher  ;)  
Maintenant le CT est OK . Merci L'Atelier Du Raz  8-')

    Je dois donc changer le joint-spi au bout de 40 000 kms en 10 ans  :roll: 
C'est un silicone et j'ai vu qu'il y avait des "doubles lèvres " !? 
What's About ?

             Je trouve ça un peu limte  :evil: 
Merci tous, fred

الصفحة المعروضة في المتصفح:


ولكن أثناء استيراد phpBB → Discourse، تم تحويل هذه المسافات الموجودة إلى كتل رمزية:

هكذا يجب أن يتم عرضه:


لقد أصلحت ذلك عن طريق إضافة تعبير عادي (regex) يزيل المسافات في بداية كل سطر

 text.gsub!(/^[^\\S\\r\\n]+/, "\\n")

أضفت هذا قبل process_smilies(text) مباشرة في هذا الملف:


مشكلة أخرى واجهتني.
في هذا الرمز (لا يزال في text_processor.rb):

    def clean_bbcodes(text)
      # Many phpbb bbcode tags have a hash attached to them. Examples:
      #   [url=https://google.com:1qh1i7ky]click here[/url:1qh1i7ky]
      #   [quote="cybereality":b0wtlzex]Some text.[/quote:b0wtlzex]
      text.gsub!(/:(?:\\w{8})\\]/, ']')

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

text.gsub!(/:(?:\\w{5,8})\\]/, ']')

أضفت مشكلة بسيطة أخرى، لا تزال في نفس الملف. يتوقع التعبير العادي الذي يزيل علامات BBCode [color] قيمة سداسية عشرية مسبوقة بـ # إلزامي. ولكن [color] يقبل أيضًا سلاسل مثل “red” و “blue” وما إلى ذلك، كقيم. لذلك قمت بتعديل التعبير العادي الأصلي:

      # remove color tags
      text.gsub!(/\\[\\/?color(=#[a-z0-9]*)?\\]/i, "")

عن طريق إضافة ? بعد # لجعل # اختياريًا.
الكود الثابت:

      # remove color tags
      text.gsub!(/\\[\\/?color(=#?[a-z0-9]*)?\\]/i, "")

لا أعرف ما إذا كانت مشاكلي شائعة في عمليات استيراد phpBB، أو ما إذا كانت خاصة جدًا بحالتي. إذا كانت الحالة الأخيرة، آمل ألا تكون تفسيراتي هنا غير مرحب بها أو زائدة عن الحاجة. فقط أخبرني إذا كان الأمر كذلك حتى لا يكون الأمر محرجًا. :grinning_face_with_smiling_eyes:


تعديل: هل من الممكن جعل جميع المواضيع الموجودة تُضبط على أنها “مقروءة” لكل مستخدم موجود بعد الترحيل؟

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

من الناحية المثالية، سيفتح المستخدمون الحاليون عند النقر على المواضيع الموجودة، ليس الرسالة الأولى، بل الأخيرة (منذ نهاية الترحيل، بالطبع).

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

7 إعجابات

شكراً لمشاركة هذه الإصلاحات!
لقد اضطررت إلى إجراء تعديلات مماثلة على التعبيرات النمطية (regexes) لعمليات الترحيل السابقة، لذا ستكون هذه مفيدة لعمليات استيراد phpbb المستقبلية.

قد يكون هذا الموضوع مفيدًا How to mark imported posts as read - #2 by stuwest

3 إعجابات