إيقاف مكون سمة لافتة البحث

خلال الأشهر القليلة الماضية، كنا نعمل على ميزة شريط ترحيب تُعد جزءًا من المنتج الأساسي لـ Discourse. يُعد شريط الترحيب الأساسي هذا بمثابة ترحيب للزوار الجدد والعودة إلى مجتمعك، ويسهل عليهم البحث عن المحتوى الذي يهم احتياجاتهم واهتماماتهم. مع وجود هذا الشريط الأساسي الجديد، نقوم الآن بإيقاف استخدام مكون قالب “شريط البحث” لتقليل تعقيد عروض منتجاتنا وضمان استفادة جميع مستخدمي Discourse من التحسينات المستمرة في الميزة الأساسية.

في هذا الموضوع، سنغطي ما يعنيه الإيقاف بالنسبة للمستخدمين الحاليين لمكون قالب “شريط البحث”.

إذا كنت عميلًا مُستضافًا لدينا…

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

سيتم خلال هذا النقل نسخ أي نصوص موقع قمت بتحديثها للعنصر النمطي (مثل search_banner.headline، search_banner.subhead، search_banner.search_button_text) وقيم إعدادات مكون القالب show on، plugin outlet، وbackground image إلى إعدادات الميزة الأساسية.

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

بعد هذا النقل، سيتم تعطيل مكون القالب ويمكن حذفه بأمان من صفحة القوالب والمكونات (/admin/config/customize/components).

إذا كنت مستخدمًا مُستضافًا ذاتيًا…

يجب أن تخطط للانتقال من مكون القالب إلى الميزة الأساسية بحلول 15 ديسمبر 2025. يمكنك القيام بذلك يدويًا أو باستخدام النص البرمجي المقدم.

التحويل اليدوي

إليك خريطة توضح كيف ترتبط إعدادات ونصوص موقع مكون شريط البحث مع نفس الميزات في شريط الترحيب الأساسي:

وصف الإعداد مكون شريط البحث النمطي ميزة شريط الترحيب الأساسية
نص العنوان المعروض على شريط الترحيب. search_banner.headline نص الموقع js.welcome_banner.header.anonymous_members و js.welcome_banner.header.logged_in_members نصوص الموقع
نص التوضيح المعروض على شريط الترحيب. search_banner.subhead نص الموقع js.welcome_banner.subheader.anonymous_members و js.welcome_banner.subheader.logged_in_members نصوص الموقع
النص المستخدم لزر البحث على الشريط. \* search_banner.search_button_text نص الموقع js.welcome_banner.search_placeholder نص الموقع
إعداد لتحديد الصفحات التي تظهر فيها شريط الترحيب. إعداد مكون القالب show on إعداد الموقع Welcome banner page visibility
إعداد لتحديد المكان الذي يظهر فيه شريط الترحيب على الصفحة. إعداد مكون القالب plugin outlet إعداد الموقع Welcome banner location
الصورة الخلفية المستخدمة على شريط الترحيب. إعداد مكون القالب background image light إعداد الموقع Welcome banner image

\* ملاحظة: لا تدعم ميزة شريط الترحيب الأساسي زر بحث صريح، لذلك نوصي بربط هذا النص بنص مكان البحث القابل للتخصيص للحصول على نتيجة مشابهة.

التحويل باستخدام النص البرمجي

يتكون التحويل من ثلاث مهام rake يجب تشغيلها بالترتيب التالي:

  1. نقل إعدادات المكون:
    themes:advanced_search_banner:1_migrate_settings_to_welcome_banner
  2. نقل ترجمات المكون:
    themes:advanced_search_banner:2_migrate_translations_to_welcome_banner
  3. تمكين الشريط الأساسي، واستبعاد المكون من القوالب التي تستخدمه، وتعطيل المكون:
    themes:advanced_search_banner:3_exclude_and_disable

ملفات \u003crandom_name\u003e.sh التي يجب تشغيلها داخل الحاوية:

  1. task_1.sh:
#!/bin/bash

cd /var/www/discourse && rake themes:advanced_search_banner:1_migrate_settings_to_welcome_banner
  1. task_2.sh:
#!/bin/bash

cd /var/www/discourse && rake themes:advanced_search_banner:2_migrate_translations_to_welcome_banner
  1. task_3.sh:
#!/bin/bash

cd /var/www/discourse && rake themes:advanced_search_banner:3_exclude_and_disable

من المستحسن تشغيل كل مهمة rake بشكل منفصل للحصول على تحكم أفضل في عملية التحويل.

كما تتوفر مهمة مريحة themes:advanced_search_banner:migrate_all لتشغيل الثلاثة بشكل متتالي، ولكن استخدمها على مسؤوليتك الخاصة.

7 إعجابات

هل تقصد شيئًا مثل هذا؟

#!/bin/bash
cd /var/www/discourse && rake themes:advanced_search_banner:migrate_settings_to_welcome_banner && rake themes:advanced_search_banner:migrate_translations_to_welcome_banner && rake themes:advanced_search_banner:exclude_and_disable

لا أعتقد أن الكثير من المستخدمين الذين يستضيفون أنفسهم سيستنتجون ذلك من <task_1_2_or_3>

هل من المرجح أن تفشل هذه المهام rake؟ هل يمكننا فقط تشغيلها جميعًا في وقت واحد؟ إذا كان الأمر كذلك، فلماذا لا نمتلك مهمة rake واحدة تقوم بجميعها؟

ربما يرغب الناس في شيء مثل هذا:

docker exec -t app bash -c `cd /var/www/discourse && rake themes:advanced_search_banner:migrate_settings_to_welcome_banner && rake themes:advanced_search_banner:migrate_translations_to_welcome_banner && rake themes:advanced_search_banner:exclude_and_disable`

إذن، بالنسبة للأشخاص الذين لا يفهمون كيفية القيام بذلك، فهم يفقدون جميع إعداداتهم القديمة والنصوص المخصصة، أليس كذلك؟

وماذا عن الأشخاص الذين لا يقومون بالترقية مرة أخرى حتى مارس؟ هل لا يزال بإمكانهم تشغيل تلك المهام rake حينها؟ لست متأكدًا من أهمية 15 ديسمبر.

3 إعجابات

سأترك زميلي الذي أنشأ النص البرمجي يساعدك في الجزء الأول من سؤالك، ولكن بالنسبة للأسئلتين الأخيرتين:

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

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

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

4 إعجابات

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

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

لا يمكننا ضمان نجاح بنسبة 100٪، لكننا تأكدنا من أن الفشل أمر غير محتمل جدًا.

نعم، لقد أضفنا مهمة مريحة: themes:advanced_search_banner:migrate_all.

إعجابَين (2)

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

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

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

إعجابَين (2)

هل تم تغيير السمات الرسمية التي تقوم بتثبيت المكون تلقائيًا مسبقًا بحيث لا يقوم أحد بتثبيت المكون دون إدراك أنه يحتاج إلى تكوين لافتة الترحيب يدويًا في النواة لكي تعمل السمة في المستقبل؟

إعجابَين (2)