Außerbetriebnahme der Suchbanner-Theme-Komponente

In den letzten Monaten haben wir an einer Willkommensbanner-Funktion gearbeitet, die Teil des Kernprodukts von Discourse ist. Diese Kern-Willkommensbanner-Funktion begrüßt neue und zurückkehrende Besucher in Ihrer Community und erleichtert es ihnen, nach Inhalten zu suchen, die für ihre Bedürfnisse und Interessen relevant sind. Mit dieser neuen Kernbanner-Funktion deaktivieren wir nun die Suchbanner-Themenkomponente, um die Komplexität unserer Produktangebote zu reduzieren und sicherzustellen, dass alle Discourse-Nutzer von kontinuierlichen Verbesserungen an der Kernfunktion profitieren.

In diesem Beitrag behandeln wir, was die Deaktivierung für aktuelle Nutzer der Suchbanner-Themenkomponente bedeutet.

Wenn Sie ein Hosted-Kunde sind…

Wir beginnen mit der Migration von Hosted-Kunden von der Suchbanner-Komponente zur Willkommensbanner-Funktion am 20. November 2025. Wenn Sie diese Komponente derzeit verwenden, erhalten Sie eine Nachricht mit den genauen Zeitangaben für Ihre Tarifstufe.

Diese Migration kopiert alle von Ihnen für die Themenkomponente aktualisierten Site-Texte (d. h. search_banner.headline, search_banner.subhead, search_banner.search_button_text) sowie die Werte für die Einstellungen der Themenkomponente show on, plugin outlet und background image in die Einstellungen der Kernfunktion.

Unser Ziel ist es, die sichtbare Auswirkung dieses Schritts so gering wie möglich zu halten, sodass das von der Kernfunktion erstellte Banner dem von der Themenkomponente erstellten Banner ähneln soll. Communities mit einem Bild auf ihrem Banner können eine leichte Verschiebung der Positionierung bemerken, die durch das Beschneiden des Bildes zur Zentrierung des Inhalts, der im Banner erscheinen soll, behoben werden kann.

Nach dieser Migration wird die Themenkomponente deaktiviert und kann sicher von der Seite Themen & Komponenten (/admin/config/customize/components) gelöscht werden.

Wenn Sie ein selbsthostender Benutzer sind…

Sie sollten bis zum 15. Dezember 2025 selbst von der Themenkomponente zur Kernfunktion migrieren. Sie können dies manuell oder mit unserem bereitgestellten Skript tun.

Manuelle Migration

Hier ist eine Übersicht, wie die Site-Texte und Einstellungen der Suchbanner-Themenkomponente mit denselben Funktionen der Kern-Willkommensbanner-Funktion verknüpft sind:

Einstellungsbeschreibung Suchbanner-Themenkomponente Kern-Willkommensbanner-Funktion
Der auf dem Willkommensbanner angezeigte Überschriftstext. search_banner.headline Site-Text js.welcome_banner.header.anonymous_members und js.welcome_banner.header.logged_in_members Site-Texte
Der auf dem Willkommensbanner angezeigte Untertiteltext. search_banner.subhead Site-Text js.welcome_banner.subheader.anonymous_members und js.welcome_banner.subheader.logged_in_members Site-Texte
Der Text, der für die Suchschaltfläche im Banner verwendet wird. \* search_banner.search_button_text Site-Text js.welcome_banner.search_placeholder Site-Text
Einstellung zur Bestimmung, auf welchen Seiten der Willkommensbanner angezeigt wird. show on Themenkomponenten-Einstellung Willkommensbanner-Seitensichtbarkeit Site-Einstellung
Einstellung zur Bestimmung, wo auf der Seite der Willkommensbanner erscheint. plugin outlet Themenkomponenten-Einstellung Willkommensbanner-Position Site-Einstellung
Hintergrundbild, das auf dem Willkommensbanner verwendet wird. background image light Themenkomponenten-Einstellung Willkommensbanner-Bild Site-Einstellung

\* Hinweis: Die Kern-Willkommensbanner-Funktion unterstützt keine explizite Suchschaltfläche, daher empfehlen wir, diesen Text an den anpassbaren Platzhaltertext für die Suchfelder zu mappen, um ein ähnliches Ergebnis zu erzielen.

Skript-Migration

Die Migration besteht aus drei Rake-Aufgaben, die in der folgenden Reihenfolge ausgeführt werden müssen:

  1. Komponenteneinstellungen migrieren:
    themes:advanced_search_banner:1_migrate_settings_to_welcome_banner
  2. Komponentenübersetzungen migrieren:
    themes:advanced_search_banner:2_migrate_translations_to_welcome_banner
  3. Kernbanner aktivieren, Komponente von Themen, in denen sie verwendet wird, ausschließen und Komponente deaktivieren:
    themes:advanced_search_banner:3_exclude_and_disable

Dateien \u003crandom_name\u003e.sh, die im Container ausgeführt werden sollen:

  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

Es wird empfohlen, jede Rake-Aufgabe einzeln auszuführen, um eine bessere Kontrolle über den Migrationsprozess zu haben.

Eine bequeme Aufgabe themes:advanced_search_banner:migrate_all ist ebenfalls verfügbar, um alle drei Aufgaben sequenziell auszuführen, aber verwenden Sie diese auf eigene Gefahr.

7 „Gefällt mir“

Meinen Sie etwas in dieser Art?

#!/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

Ich glaube nicht, dass viele Selbsthoster daraus auf <task_1_2_or_3> schließen werden.

Werden diese Rake-Tasks wahrscheinlich fehlschlagen? Können wir sie einfach alle auf einmal ausführen? Falls ja, warum nicht einfach einen einzigen Rake-Task, der alles erledigt?

Vielleicht möchten die Leute etwas wie folgt:

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`

Also verlieren Leute, die nicht wissen, wie sie das tun sollen, einfach alle ihre alten Einstellungen und angepassten Texte, richtig?

Was ist mit denjenigen, die erst im März wieder aktualisieren? Können sie diese Rake-Tasks dann immer noch ausführen? Ich verstehe nicht, warum der 15. Dezember so wichtig ist.

3 „Gefällt mir“

Ich lasse meinen Kollegen, der das Skript erstellt hat, bei der ersten Frage helfen, aber zu den letzten beiden Fragen:

Nein.

Das Skript ist eine Option; die manuelle Migration ist eine weitere Option. Deshalb haben wir sehr klare Beschreibungen bereitgestellt, wie die Einstellungen / Strings der Theme-Komponente mit den Einstellungen / Strings der Willkommensleiste korrespondieren.

Der 15. Dezember ist der Zeitpunkt, an dem wir unsere Migration der gehosteten Kunden abschließen und offiziell die Unterstützung / Wartung der Search Banner-Komponente einstellen. Wir empfehlen anderen Benutzern dieser Komponente, vor diesem Datum zu migrieren, damit sie nicht überrascht werden, wenn die Theme-Komponente in Zukunft mit Discourse Core inkompatibel wird.

Wenn Leute sich dafür entscheiden, später zu warten, können sie diese Aufgaben immer noch ausführen oder die Migration manuell durchführen, aber in der Zwischenzeit verwenden sie eine nicht unterstützte Theme-Komponente.

4 „Gefällt mir“

Richtig, der bereitgestellte Befehl führt alle drei Aufgaben nacheinander aus. Bitte beachten Sie, dass wir jede Aufgabe mit einer Nummer versehen haben, um die beabsichtigte Ausführungsreihenfolge anzugeben.

Danke, wir haben den Abschnitt Skriptmigration aktualisiert, um ihn klarer zu gestalten.

Wir können keinen 100%igen Erfolg garantieren, aber wir haben dafür gesorgt, dass Fehler äußerst unwahrscheinlich sind.

Ja, wir haben eine bequeme Aufgabe hinzugefügt: themes:advanced_search_banner:migrate_all.

2 „Gefällt mir“

Großartig! Ich denke, das wird sehr helfen. Leute wie wir haben nichts dagegen, ein paar Handgriffe in einem Container auszuführen, aber die meisten Self-Hosters eher nicht.

Wenn es möglich wäre, die Theme-Komponente so zu aktualisieren, dass sie einen Deprecations-Link im Admin-Panel hat, der hierher verweist, würde das ihnen helfen zu wissen, dass dieses Thema existiert.

Was ich tun möchte, ist einen Weg zu finden, um herauszufinden, ob die Theme-Komponente installiert ist, vorzugsweise über die API. Ich schätze, das wird sein, das Theme-Komponenten-JSON abzurufen, es durch jq laufen zu lassen und nach dem Komponentennamen zu filtern. Ich denke, das sollte funktionieren, und mein Dashboard hat einen API-Schlüssel. Dann kann ich Ansible die Rake-Aufgabe im Container ausführen lassen!

2 „Gefällt mir“

Wurden die offiziellen Themes, die die Komponente automatisch installieren, im Voraus geändert, damit niemand die Komponente installiert, ohne zu merken, dass er das Willkommensbanner in Core manuell konfigurieren muss, damit das Theme in Zukunft funktioniert?

2 „Gefällt mir“