Cours 420-2D7-LL Développement web

*** lundi, 20 avril 2026 --> semaine 12 !!! ***



Télécharger : Travail Pratique 4 (Partie 9 - Ajout et Publication).docx


Ajout et Publication

 

Travail Pratique 4 (suite…)

10 points sur 30

 

        Partie 9

Ajouter un bouton détruire. (0,5 pts)

 

a)     À l'aide de toute les notes de cours, des vidéos et votre projet Angular jusqu'as maintenant…Ajouter un bouton détruire pour chaque objet. Faites une copie de votre projet Angular de la Partie 7 et 8 pour faire la partie 9. (Copier-coller de votre dossier) Attendre que la copie soit complète !!!

b)     Tester votre nouveau dossier.

c)     Dans mes exemples, j'ai utilisé comme sujet "Les voitures sports de luxe".  Poursuivez votre sujet choisi dans la partie 1,2,3,4,5,6,7 et 8.

d)     Ajouter un bouton détruire qui va détruire l'élément dans votre base de données.

 

e)     Pour cette partie, je ne vous donne pas la procédure pas-à-pas comme pour les autres parties.

f)     Vous devez démontrer vos connaissances et votre débrouillardise pour le faire fonctionner.

g)     Voici quelques indice: mon code……

 

 

   

 


    

 

Partie 10

Ajouter un élément de votre choix (5,5 pts)

 

a)     Ajouter au moins 3 éléments supplémentaires à votre projet. À la semaine 11 et 12, je vais vous présenter les sujets suivants:

Transfert de fichier

Fonction, librairie graphique et utile (GD)

Éditeur de texte en ligne

Gestion de panier virtuel

Paiement en ligne

 

Exemple:

Choix #1 – Envoyer la page PHP dans un nouvel onglet: (-0,5 point, plus facile)

Code à

<!--  Dans le fichier tamplate/html de votre component Angular… qui contient un menu… -->

 

<li class="nav-item">

            <a class="nav-link" routerLinkActive="active" href="http://localhost/angular/VoituresFinal/panier/liste.php" target="_blank">Panier</a>

          </li>

 

 

Choix #2 – Envoyer la page PHP dans un component de Angular: (Maximum de points)

Code à

// Exemple avec 3 options possible...

// Dans le fichier tamplate/html de votre component Angular...

<!DOCTYPE html>

<html>

<head>

<title>Test objet</title>

</head>

<body>

 

    <object type="text/html" data="http://localhost/angular/VoituresFinal/panier/liste.php" width="1024" height="250">

    </object>

   

               // ou

 

    <iframe src="http://localhost/angular/VoituresFinal/panier/liste.php" width="100%" height="300" style="border:1px solid black;">

    </iframe>

   

               // ou

 

    <iframe src="http://localhost/angular/VoituresFinal/panier/liste.php" width="100%" height="300" style="border:none;">

    </iframe>

 

</body>

</html>

 

 

 


 

        Partie 11

Publication (2 pts)

 

a)     Avant de publier votre projet:

·       Assuré vous du bon fonctionnement.

·       Vérifier les url des appels à vos fichier php

·       Donner les permissions aux dossier et fichier si nécessaire ! (777)

 

·       Le nom de la base de données et de la table dans vos fichiers php

b)     Déployée avec : 

sudo ng build

c)     Vérifier si le fichier index.html résultant possède la ligne suivante:

<base href="./">

d)     Tester en local (sur votre machine)

Avec Angular vers. 18 et plus…vérifier à

 

 

Le "build" est un moment où plusieurs erreurs peuvent arriver !

 

Il faut les corriger.

 

Exemple avec la version 18,19 et plus de Angular.

 

 

Solution :

 

app.routes.server.ts:

 

import { RenderMode, ServerRoute } from '@angular/ssr';

//import { inject, REQUEST } from '@angular/core';

//import { RenderMode } from '@angular/platform-server';

 

export const serverRoutes: ServerRoute[]= [

  {

    path: '**',

    renderMode: RenderMode.Client

  },

  {

    path: 'voitures/:id',

    renderMode: RenderMode.Prerender,

    getPrerenderParams(): Promise<Record<string, string>[]> {

      return Promise.resolve(['carcass'].map(i => ({ id: i })));

    }, // prerenders in browser/posts/carcass

 },

];

 

server.ts: (à la fin du fichier…)

 

// My new middleware

app.use(

  '/posts/:id',

  express.static(join(browserDistFolder, 'posts', 'carcass', 'index.html'), {

    maxAge: '1y',

    redirect: false,

  }),

);

 

// Default generated by Angular

app.use(

  express.static(browserDistFolder, {

    maxAge: '1y',

    index: false,

    redirect: false,

  }),

);

 

// Default generated by Angular

app.get('/**', (req, res, next) => {

  angularApp

    .handle(req)

    .then(response =>

      response ? writeResponseToNodeResponse(response, res) : next(),

    )

    .catch(next);

});

 

Ref.: https://github.com/angular/angular-cli/issues/29425

 

 

 

Pour régler le problème suivant:

 

Modifier dans angular.json à

 

 

"budgets": [

                {

                  "type": "initial",

                  "maximumWarning": "800kB",

                  "maximumError": "1MB"

                },

                {

                  "type": "anyComponentStyle",

                  "maximumWarning": "4kB",

                  "maximumError": "8kB"

                }

 

 

Pour régler le problème suivant:

 

Dans un terminal à

 

rm -rf .angular dist node_modules

npm cache clean --force

npm install

 

Publication:

e)     Je vais vous envoyer les mots de passe et les noms d'usager pour vous connecter au serveur pour la BD (phpMyAdmin) et transfert de fichier (sftp)

f)     Remise maximum, 11 mai 2026

g)     Sur le serveur PHP du cégep

Remise TP4, 11 mai 2026

Consigne pour vous connecter au serveur PHP:

Pour Développement Web:
Adresse Externe: 205.236.12.212  ou http://php.dinf.ca/
ou
au département ou derrière le VPN du département...
10.2.0.107

Pour envoyer les fichiers sur le serveur (exemple: Filezilla):
Protocole: sftp:

Hôte: 10.2.0.107 sur le port 22
utilisateur: votre#étudiant
Mot de passe: ***voir MIO******


 

h)     Suggestion pour le transfert, j'utilise FileZilla, connecter vous via le VPN du département d'informatique.

 

 

i)     Pour la BD, phpMyAdmin, connecter vous via le VPN du département d'informatique.

 

 

j)      Vérifier le fonctionnement  en local et ensuite sur le serveur::

 

 

 


 

 

 

 

TP4 - Grille de correction                     

 

 

Nom: __________________________               ______

                                                                            30

 

1 – 2 : Components et données dynamiques

 

         /5

3 – 4 : Directives et Pipes

 

         /5

5 – 6 : Les services et le routing

 

         /5

7 – 8 : Les forms et le httpclient

 

         /5

9 - Bouton détruire

 

         /0,5

10 - Ajouter trois éléments de votre choix

 

         /5,5

11 – Publication

 

         /2

Apparence

 

         /2

 

 

 

 


   

Voici mes coordonnees: Stéphane Mercier (Mers), stephane.mercier@cegeplevis.ca, 418 833-5110, poste 5511, Local G205A (disponnible par MIO)

Tout droit réservé à personne !!!

.