Comment créer ou mettre à jours une entité Field Collection
Création
Pour ajouter du contenu dans un Field Collection, nous allons utiliser la classe Drupal\field_collection\Entity\FieldCollectionItem :
Création
Pour ajouter du contenu dans un Field Collection, nous allons utiliser la classe Drupal\field_collection\Entity\FieldCollectionItem :
Pour éviter la redondance de \drupal::service('monservice') dans nos classes, nous allons utiliser les injections de dépendances
Partager le dossier de cache
Lorsque vous lancé Composer celui ci va télécharger la liste des packages au format JSON pour les stocker dans un dossier de cache.
Quand vous lancé votre container celui ci est vide, donc vous perdez 30s à chaque fois que vous le lancer.
L'idée ici est d'aller chercher votre dossier de cache local pour le monter sous forme de volume
Placer le hook_unistall dans le fichier .install de votre module
Sa y est, j'ai enfin franchi le cap. j'ai migré tout mon site sur une architecture full Docker en dev, test et prod.
Je vais vous expliquer dans cet article, comment j'ai réussi à mettre tout ça en place
Voici comment ajouter des suggestions de template à un type d'entité personnalisé en fonction du mode d'affichage (view_mode).
Ici mon module s’appelle « mon_module » et mon type d'entité personnalisé « resource » :
function monmodule_theme_suggestions_resource(array $variables) { $suggestions = []; $sanitized_view_mode = str_replace('.', '_', $variables['elements']['#view_mode']); $suggestions[] = $variables['theme_hook_original'] . '__' . $sanitized_view_mode; return $suggestions;}
Ainsi, si j'ai un mode d'affichage « teaser » je pourrais utiliser un template resource--teaser.html.twig à la place de celui par défaut : resource.html.twig
Vous pouvez évidement ajouter autant de suggestions de template que nécessaire, en fonction d'autres paramètres.
En octobre dernier, l'équipe a décollé pour Amsterdam afin d'y retrouver la communauté Drupal européenne.
Au programme : sessions, BoFs, discussions et contribution.
En octobre dernier, l'équipe a décollé pour Amsterdam afin d'y retrouver la communauté Drupal européenne.
Au programme : sessions, BoFs, discussions et contribution.
Drupal 7 utilisait auparavant Simpletest, solution propre à Drupal pour l'écriture de ses tests.
Désormais, Drupal 8 utilise PHPUnit.
Il y a quelques temps, nous sommes intervenu pour une formation à l'écriture de tests sous Drupal 8. La présentation réalisée à cet effet en pièce jointe présente :
Les différents types de tests
Les outils de testing sous Drupal 8
La structure d'un test
Comment configurer PHPStorm et PHPUnit
Drupal 7 utilisait auparavant Simpletest, solution propre à Drupal pour l'écriture de ses tests.
Désormais, Drupal 8 utilise PHPUnit.
Il y a quelques temps, nous sommes intervenu pour une formation à l'écriture de tests sous Drupal 8. La présentation réalisée à cet effet en pièce jointe présente :
Les différents types de tests
Les outils de testing sous Drupal 8
La structure d'un test
Comment configurer PHPStorm et PHPUnit
Drupal 7 utilisait auparavant Simpletest, solution propre à Drupal pour l'écriture de ses tests.
Désormais, Drupal 8 utilise PHPUnit.
Il y a quelque temps, nous sommes intervenus pour mener une formation à l'écriture de tests sous Drupal 8. La présentation réalisée à cet effet en pièce jointe expose :
Les différents types de tests
Les outils de testing sous Drupal 8
La structure d'un test
Comment configurer PHPStorm et PHPUnit
Voici comment ajouter une classe css à un élément de menu défini dans un module.
mon_module.links.menu.yml
main.abonnez: title: 'Abonnez-vous' route_name: entity.node.canonical route_parameters: { node: 6 } menu_name: main weight: 4 options: attributes: class: - 'arrow'
la clé class étant un tableau, il est évidement possible d'ajouter autant de classes css que l'on veut.
Voir aussi : Drupal 8 - Menu - Ajouter un élément de menu avec des paramètres GET
Voici comment supprimer le basefield « mon_champ_a_suppr » de mon type d'entité personnalisé « mon_type_entite ».
/** * Delete basefield mon_type_entite.mon_champ_a_suppr */function monmodule_update_8020() { $update_manager = Drupal::service('entity.definition_update_manager'); $definition = $update_manager->getFieldStorageDefinition('mon_champ_a_suppr', 'mon_type_entite'); $update_manager->uninstallFieldStorageDefinition($definition); return t('mon_type_entite : mon_champ_a_suppr was uninstalled');}
Lancez les mises à jours de base de données de drupal (drush updb par exemple) et hop, votre champ sera supprimé de votre base de données, évidement si votre type d'entité avait des enregistrements, les données concernants le champ supprimé seront perdues.
Certains diront qu'il est possible d'utiliser la commande drush entup, mais le mécanisme n'est plus présent depuis drupal 8.7. (mais si vraiment vous en avez besoin, vous pouvez regarder du côté du module Devel Entity Updates, à n'installer qu'en connaissance de cause !
Jusque Drupal 8.7, nous disposions d'une commande drush fort bien utile pour le développement d'entités de contenu, et les mettre à jour au fur et à mesure de leur évolution avec le projet. Cette commande, drush entup ou drush entity-updates, nous permettait de mettre à jour la définition des entités et/ou de leur champs.
La DrupalCon est un événement organisé par la communauté Drupal qui regroupe des présentations selon différents axes :
Commerce et Marketing
DevOps et Infrastructure
Drupal et Backend
Drupal et Frontend
La Communauté Drupal et Être humain
Entreprise
Après une courte absence, relayée par la Drupal Europe en 2018, c'est le retour des DrupalCon en Europe. Pour sa reprise, la DrupalCon aura lieu à Amsterdam du 28 au 31 octobre 2019.
La DrupalCon est un événement organisé par la communauté Drupal qui regroupe des présentations selon différents axes :
Commerce et Marketing
DevOps et Infrastructure
Drupal et Backend
Drupal et Frontend
La Communauté Drupal et Être humain
Entreprise
Après une courte absence, relayée par la Drupal Europe en 2018, c'est le retour des DrupalCon en Europe. Pour sa reprise, la DrupalCon aura lieu à Amsterdam du 28 au 31 octobre 2019.
La DrupalCon est un événement organisé par la communauté Drupal qui regroupe des présentations selon différents axes :
Commerce et Marketing
DevOps et Infrastructure
Drupal et Backend
Drupal et Frontend
La Communauté Drupal et Être humain
Entreprise
Après une courte absence, relayée par la Drupal Europe en 2018, c'est le retour des DrupalCon en Europe. Pour sa reprise, la DrupalCon aura lieu à Amsterdam du 28 au 31 octobre 2019.