Rattrapage 16/03/2022

Drupal 8

Rattrapage 16/03/2022

Soumis par Antoine le lun 14/03/2022 - 11:19

 Ce partiel dure 4 heures

Vous devez créer un module qui permet de gérer une bibliothèque de propriétaires d'animaux

ATTENTION : votre module doit s'appeler par votre nom de famille (sans aucun caractère spécial). A la fin de l'épreuve, vous devez l'envoyer zippé à l'adresse

Objectif n°1 Créer les contenus qui seront gérés (1 heures)

Vous devez créer deux types de contenus sur votre site

  • les propriétaires avec les champs : nom (titre), photo (plusieurs possible), biographie, date de naissance
  • les animaux de compagnie avec les champs : nom (titre), description, , photo(1 seule possible), un champ taxonomie qui permet d'indiquer le type d'animal (chien, chat, lapin...), une case à cocher "Dangereux" et un champ référence qui permet d'indiquer le propriétaire de l'animal

Vous devez créer deux propriétaires et 4 animaux :

Objectif n°2 (1 heure)

Le module doit créer deux pages : 1 page "Propriétaires "et 1 pages "Animaux"

La page "Propriétaires "

Cette page contient :

  • un bouton qui permet de créer un propriétaire
  • un tableau avec la liste des propriétaires avec les colonnes suivantes :
    • une case à cocher
    • le nom du propriétaire
    • la liste des animaux possédés. 

// Pour afficher la valeur d'un champ dans une cellule d'un render-array, vous devez utiliser $row[]=$node->get('nommachine_champs')->value;
// Pour afficher un terme de taxonomie
// En haut du contrôleur : use Drupal\taxonomy\Entity\Term;
// Puis dans la cellule $row[]=\Drupal\taxonomy\Entity\Term::load($node->get('nommachine_champs')->target_id)->getName();

La page "Animaux"

Cette page affiche toutes les photos des animaux les unes en dessous des autres

// Dans Twig on peut afficher une image après avoir chargé le noeud : <img src="{{ file_url(node.machine_name_field_image.entity.uri.value) }}" alt="{{ node.machine_name_field_image.alt }}" />

Navigation

Le module doit créer un lien de menu sur le menu principal. Ce lien doit indiquer "Nos amis" et pointer vers la page "Propriétaires".

Sur les pages "Propriétaires" et "Animaux" des onglets permettent de passer d'une page à l'autre. 

Objectif n°3 Traitement en masse des animaux (40 minutes)

Sur la page "Animaux", on doit trouver un menu déroulant qui contient les options "Dangereux" et "Pas dangereux" ainsi qu'un bouton "Valider".

Un clic sur ce bouton doit permettre de modifier le champ "Dangereux" pour tous les animaux cochés dans le tableau principal.

Objectif n°4 (1 heure)

Créer un bloc qui est censé être placé par l'utilisateur uniquement sur des pages de animaux. Ce bloc qui aura comme identifiant votre nom de famille devra afficher la photo du propriétaire du chien. Comme on ne peut pas faire confiance à l'utilisateur, vous devrez tester si la page sur laquelle se trouve le bloc affiche bien un animal.

// Pour récupérer le noeud affiché $node = \Drupal::routeMatch()->getParameter('node');

Version