Snippets

Drupal 8 - Routing - Utiliser le theme d'administration

Partager cet article :

Pour définir qu'une route doit utiliser le thème d'administration, il faut utiliser le fichier MON_MODULE.routing.yml.

Cela se fait en défininssant l'option _admin_route à TRUE.

Exemple :

ma.route:
  path: '/mon/chemin'
  defaults:
    _controller: '\Drupal\mon_module\Controller\MonController::MaMethode'
    _title: 'MaMethode'
  options:
     _admin_route: TRUE

 

Drupal 8 - Entité - Champ de base «Liste d'entiers»

Partager cet article :

    $fields['photos_number'] = BaseFieldDefinition::create('list_integer')
      ->setLabel(t('Nombre de photos autorisées'))
      ->setRequired(TRUE)
      ->setSettings(array(
        'allowed_values' => [
          1 => t('1 photo'),
          2 => t('2 photos'),
          3 => t('3 photos'),
        ],
      ))
      ->setDefaultValue('public')
      ->setDisplayOptions('form', array(
        'type' => 'options_buttons',
      ))
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayConfigurable('view', FALSE);

 

Drupal8 - Installer un module dans le code

Partager cet article :

Pour installer un module via le code dans drupal 8 il faut utiliser le service ModuleInstaller, exemple avec le snippet suivant :

 \Drupal::service('module_installer')->install(['mon_module']);

Les dépendances, si existantes seront automatiquement installées aussi.

Pour activer plusieurs modules à la fois, il faut simplement les ajouter à l'array :

 \Drupal::service('module_installer')->install(['mon_module', 'mon_autre_module']);

La pluaprt du temps vous voudrez utiliser cette solution dans une fonction d'update :

/**
 * Enable modules
 */
function HOOK_update_8001() {
 \Drupal::service('module_installer')->install(['mon_module', 'mon_autre_module']);
}

Pages