Cómo configurar un tema predeterminado mediante programación

8

Estoy tratando de crear un perfil de instalación y quiero tener mi tema personalizado habilitado y configurado de forma predeterminada después de la instalación.

Agregando en MYPROFILE.info.yml ...

theme:
  - my_theme

...no es suficiente. Esto solo lo instala, pero no está configurado como el tema predeterminado.

Supongo que tengo que hacer algo más en el archivo MYPROFILE.install en

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

Gracias

Guillaume Bois
fuente

Respuestas:

11

Mirando ThemeController::setDefaultTheme(el controlador de solicitudes para la ruta / admin / apariencia / predeterminada), esto debería hacer el truco:

\Drupal::configFactory()
  ->getEditable('system.theme')
  ->set('default', 'machine_name')
  ->save();
Clive
fuente
Para que esto funcione, el tema ya debe estar habilitado. Todavía no sé cómo habilitarlo mediante programación.
dxvargas
3
@hiphip Afortunadamente eso es bastante sencillo:\Drupal::service('theme_installer')->install(['theme_name']);
Clive
-2

Puede crear un sitio que tenga el tema predeterminado correcto y copiar los archivos de configuración relacionados con el tema en el directorio de configuración de su perfil (o todos los archivos si tiene sentido para su perfil).

Consulte https://www.drupal.org/node/2210443#config para obtener más información.

acrosman
fuente