Deprecazione del componente tema Search Banner

Negli ultimi mesi abbiamo lavorato a una funzionalità di banner di benvenuto (Creating a banner to display at the top of your site) che fa parte del prodotto principale di Discourse. Questa funzionalità di banner di benvenuto integrata nel nucleo del prodotto saluta i visitatori nuovi e ritornanti della tua community e li aiuta a cercare contenuti rilevanti per le loro esigenze e interessi. Con questa nuova funzionalità di banner di benvenuto integrata nel nucleo, stiamo ora deprecando il componente tema Search Banner per ridurre la complessità delle nostre offerte di prodotto e garantire che tutti gli utenti di Discourse possano beneficiare di ulteriori miglioramenti alla funzionalità principale.

In questo argomento, illustreremo cosa significa la deprecazione per gli utenti attuali del componente tema Search Banner.

Se sei un cliente ospitato…

Inizieremo a migrare i clienti ospitati dal componente Search Banner alla funzionalità di banner di benvenuto il 20 novembre 2025. Se stai attualmente utilizzando questo componente, riceverai un messaggio con i dettagli esatti relativi al momento della migrazione per il tuo piano.

Questa migrazione copierà tutti i testi del sito che hai modificato per il componente tema (ad esempio search_banner.headline, search_banner.subhead, search_banner.search_button_text) e i valori per le impostazioni del componente tema show on, plugin outlet e background image nelle impostazioni della funzionalità principale.

Il nostro obiettivo è minimizzare l’impatto visivo di questo passaggio, in modo che il banner creato dalla funzionalità principale abbia lo stesso aspetto del banner creato dal componente tema. Le community con un’immagine sul banner potrebbero notare un leggero spostamento della posizione, che può essere risolto ritagliando l’immagine per centrare il contenuto che si desidera far apparire nel banner.

Dopo questa migrazione, il componente tema verrà disabilitato e potrà essere eliminato in sicurezza dalla pagina Temi & componenti (/admin/config/customize/components).

Se sei un utente auto-ospitato…

Dovresti pianificare la tua migrazione dal componente tema alla funzionalità principale entro il 15 dicembre 2025. Puoi farlo manualmente o utilizzando lo script fornito.

Migrazione manuale

Ecco una tabella che mostra come i testi del sito e le impostazioni del componente tema Search Banner si relazionano alle stesse funzionalità del banner di benvenuto integrato nel nucleo:

Descrizione impostazione Componente tema Search Banner Funzionalità di banner di benvenuto integrato nel nucleo
Il testo dell’intestazione visualizzato sul banner di benvenuto. search_banner.headline testo del sito js.welcome_banner.header.anonymous_members e js.welcome_banner.header.logged_in_members testi del sito
Il testo del sottotitolo visualizzato sul banner di benvenuto. search_banner.subhead testo del sito js.welcome_banner.subheader.anonymous_members e js.welcome_banner.subheader.logged_in_members testi del sito
Il testo utilizzato per il pulsante di ricerca sul banner. \* search_banner.search_button_text testo del sito js.welcome_banner.search_placeholder testo del sito
Impostazione per determinare su quali pagine viene visualizzato il banner di benvenuto. Impostazione del componente tema show on Impostazione del sito Welcome banner page visibility
Impostazione per determinare dove sulla pagina appare il banner di benvenuto. Impostazione del componente tema plugin outlet Impostazione del sito Welcome banner location
Immagine di sfondo utilizzata sul banner di benvenuto. Impostazione del componente tema background image light Impostazione del sito Welcome banner image

\* Nota: la funzionalità di banner di benvenuto integrato nel nucleo non supporta un pulsante di ricerca esplicito, quindi si consiglia di mappare questo testo sul testo di placeholder del campo di ricerca personalizzabile per ottenere un risultato simile.

Migrazione con script

La migrazione consiste in tre task rake che devono essere eseguiti nell’ordine seguente:

  1. Migrazione delle impostazioni del componente:
    themes:advanced_search_banner:1_migrate_settings_to_welcome_banner
  2. Migrazione delle traduzioni del componente:
    themes:advanced_search_banner:2_migrate_translations_to_welcome_banner
  3. Abilitazione del banner principale, esclusione del componente dai temi in cui viene utilizzato e disabilitazione del componente:
    themes:advanced_search_banner:3_exclude_and_disable

File \u003crandom_name\u003e.sh da eseguire nel container:

  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

Si consiglia di eseguire ogni task rake individualmente per avere un maggiore controllo sul processo di migrazione.

È disponibile anche un task di convenienza themes:advanced_search_banner:migrate_all per eseguire tutti e tre i task in sequenza, ma utilizzalo a tua discrezione.

7 Mi Piace

Intendi qualcosa del genere?

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

Non credo che molti utenti self-hosted dedurranno questo da <task_1_2_or_3>.

Questi task rake hanno probabilità di fallire? Possiamo semplicemente eseguirli tutti insieme? Se è così, perché non avere un unico task rake che li esegue tutti?

Forse le persone vogliono qualcosa del genere:

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`

Quindi, per chi non capisce come farlo, perderanno semplicemente tutte le vecchie impostazioni e il testo personalizzato, giusto?

E per chi non effettuerà l’aggiornamento fino a marzo? Potranno comunque eseguire quei task rake allora? Non capisco l’importanza del 15 dicembre.

3 Mi Piace

Lascio che il mio collega, che ha creato lo script, aiuti con la prima parte della tua domanda, ma per le ultime due domande:

No.

Lo script è un’opzione; la migrazione manuale è un’altra opzione. Ecco perché abbiamo fornito descrizioni molto chiare su come le impostazioni e i testi del componente del tema della barra di ricerca si mappano alle impostazioni e ai testi della barra di benvenuto.

Il 15 dicembre è il giorno in cui completeremo la nostra migrazione dei clienti ospitati e quando smetteremo ufficialmente di supportare/mantenere il componente della barra di ricerca. Raccomandiamo agli altri utenti di questo componente di migrare prima di quella data, in modo da non essere colti di sorpresa quando il componente del tema diventerà incompatibile con il nucleo di Discourse in futuro.

Se le persone scelgono di aspettare fino a più tardi, potranno comunque eseguire questi task o effettuare la migrazione manualmente, ma nel frattempo utilizzeranno un componente del tema non supportato.

4 Mi Piace

Corretto, il comando fornito eseguirà tutti e tre i task uno dopo l’altro. Si noti che abbiamo prefissato ogni task con un numero per indicare l’ordine di esecuzione previsto.

Grazie, abbiamo aggiornato la sezione Migrazione dello script per renderla più chiara.

Non possiamo garantire il successo al 100%, ma abbiamo assicurato che i fallimenti siano altamente improbabili.

Sì, abbiamo aggiunto un task di comodità: themes:advanced_search_banner:migrate_all.

2 Mi Piace

Fantastico! Penso che aiuterà molto. A persone come noi non dispiace eseguire una manciata di attività all’interno di un container, ma la maggior parte degli auto-ospitanti, non tanto.

Se fosse possibile aggiornare il componente del tema per avere un link di deprezzamento sul pannello di amministrazione che puntasse qui, allora li aiuterebbe a sapere che questo argomento esiste.

Quello che vorrei fare è trovare un modo per scoprire se il componente del tema è installato, preferibilmente dall’API. Immagino che si tratterà di estrarre il JSON del componente del tema, eseguirlo tramite jq e filtrare sul nome del componente. Penso che dovrebbe funzionare, e la mia dashboard ha una chiave API. Quindi posso far eseguire ad Ansible il task rake all’interno del container!

2 Mi Piace

I temi ufficiali che installano automaticamente il componente vengono modificati in anticipo in modo che nessuno installi il componente senza rendersi conto che è necessario configurare manualmente il banner di benvenuto nel core affinché il tema funzioni in futuro?

2 Mi Piace