Partiel du 09/03/2022

Drupal 8 Drupal 9

Partiel du 09/03/2022

Soumis par Antoine le mar 08/03/2022 - 18:09

 Ce partiel dure 4 heures

Vous devez créer un module qui permet de gérer une bibliothèque de films.

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 acteurs avec les champs : nom (titre), photo (plusieurs possible), biographie, date de naissance
  • les films avec les champs : titre, description, réalisateur (une chaine de caractère), affiche (1 seule possible), un champ taxonomie qui permet d'indiquer le type de film (action, comédie romantique...), une case à cocher "Déconseillé aux moins de 16 ans" et un champ référence qui permet d'indiquer les acteurs qui jouent dans ce film

Vous devez créer deux films et 4 acteurs :

Les photos nécessaires sont disponibles en bas de page

Objectif n°2 (1 heure)

Le module doit créer deux pages : 1 page "Films"et 1 pages "Acteurs"

La page "Films"

Cette page contient :

  • un bouton qui permet de créer un film
  • un tableau avec la liste des films avec les colonnes suivantes :
    • une case à cocher
    • le titre du film
    • public conseillé avec 2 valeurs possibles soit "Déconseillé aux moins de 16 ans", soit "Tout public"
    • la liste des acteurs

// 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 "Acteurs"

Cette page affiche toutes les photos des acteurs 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 "Vidéothèque" et pointer vers la page "Films".

Sur les pages "Films" et "Acteurs" des onglets permettent de passer d'une page à l'autre. 

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

Sur la page film, on doit trouver un menu déroulant qui contient les options "Tout public" et "Déconseillé aux moins de 16 ans ainsi qu'un bouton "Valider".

Un clic sur ce bouton doit permettre de modifier le champ "Déconseillé au moins de 16 ans" pour tous les films 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 film. Ce bloc qui aura comme identifiant votre nom de famille devra afficher pour chaque acteur qui joue dans ce film un lien qui pointe vers sa page ainsi que sa première photo. Comme on ne peut pas faire confiance à l'utilisateur, vous devrez tester si la page sur laquelle se trouve le bloc affiche bien un film.

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

Photo Hugh Grant

https://tuto-drupal.fr/sites/default/files/2022-03/hugh_grant.jpg

 

Documents utiles
Version