Come impostare un tema predefinito a livello di codice


8

Sto cercando di creare un profilo di installazione e desidero che il mio tema personalizzato sia abilitato e impostato per impostazione predefinita dopo l'installazione.

Aggiunta in MYPROFILE.info.yml ...

theme:
  - my_theme

...non è abbastanza. Questo lo installa solo, ma non è impostato come tema predefinito.

Immagino di dover fare qualcos'altro nel file MYPROFILE.install in

function MYPROFILE_install() {
  // how to set as default my custom theme
}

Grazie

Risposte:


11

Guardando ThemeController::setDefaultTheme(il gestore richieste per il percorso / admin / aspect / default), questo dovrebbe fare il trucco:

\Drupal::configFactory()
  ->getEditable('system.theme')
  ->set('default', 'machine_name')
  ->save();

Perché questo funzioni, il tema deve essere già abilitato. Non so ancora come abilitarlo a livello di codice.
dxvargas,

3
@hiphip Fortunatamente è abbastanza semplice:\Drupal::service('theme_installer')->install(['theme_name']);
Clive

-2

Puoi creare un sito con il tema predefinito corretto e copiarlo sui file di configurazione relativi al tema nella directory di configurazione del tuo profilo (o su tutti i file se ha senso per il tuo profilo).

Vedi https://www.drupal.org/node/2210443#config per ulteriori informazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.