IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Web Discussion :

Comment pouvoir faire évoluer un site ?


Sujet :

Conception Web

  1. #1
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 59
    Par défaut Comment pouvoir faire évoluer un site ?
    Bonjour
    ma question est assez difficile à cerner.
    Imaginons un site dédié à la poésie : des auteurs, des recueils, des textes de poèmes.

    Après quelques années de service, le webmaster décide d'ajouter aux pages une paire de boutons "précédent/prochain" pour parcourir les poésies d'un recueil.

    Si rien n'a été fait dès l'origine il lui faut (du moins c'est ce que je pense) ouvrir toutes les pages une à une pour ajouter cet élément.
    D'où la question :

    Comment doit-on s'y prendre dès l'origine pour éviter ça ?

    Si l'on veut changer de police il suffit d'avoir créer des feuilles css gouvernant le style des pages. Si l'on a déjà une bannière/bandeau/header on peut la gérer par un php "include" (cela a été l'objet d'un post précédent de ma part).
    Mais que faire si on décide brutalement d'un ajout à un endroit non prévu? Par exemple juste en bas du texte du poème . Comment s'y prendre si 'on décide soudain d'ajouter une paire de balise dans plusieurs centaines de pages ?
    Du genre : Wikipedia décide de changer quelque chose dans ces pages, comment s'y sont-ils pris dès l'origine pour pouvoir le faire ?

    Ce n'est pas très précis comme question mais j'espère que vous comprenez le problème.

    En tant que Webbizuth je n'ai pas la moindre idée.
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 429
    Par défaut
    Bonjour,

    Pour faire simple, imaginons un site statique qui affiche uniquement des poésies.
    Le site statique est composé d'un ensemble de fichier html, chaque fichier html correspond à l'affichage d'une poésie et toutes les pages ont la même structure :

    poesie1.html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!doctype html>
    <html lang="fr">
    <head>
      <meta charset="utf-8">
      <title>Poésie</title>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>
     
      <h1>Ma première poésie</h1>
     
      <p>Lorem ipsum...</p>
     
      <footer>copyright - mentions légales</footer>
    </body>
    </html>

    poesie2.html
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!doctype html>
    <html lang="fr">
    <head>
      <meta charset="utf-8">
      <title>Poésie</title>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>
     
      <h1>Ma deuxième poésie</h1>
     
      <p>Dolor sit amet...</p>
     
      <footer>copyright - mentions légales</footer>
    </body>
    </html>



    Une première solution est de factoriser le code commun à tous les fichiers html dans des fichiers php et d'inclure ces fichiers dans toutes les pages.
    Je commence par créer un fichier head.php et footer.php qui contient le code html commun :

    includes/head.php :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <!doctype html>
    <html lang="fr">
    <head>
      <meta charset="utf-8">
      <title>Poésie</title>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>

    includes/footer.php
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      <footer>copyright - mentions légales</footer>
    </body>
    </html>

    Je renomme poesie1.html en poesie1.php afin que les instructions php soit interprétées et je remplace le code html commun par des instructions include, idem pour poesie2.php :

    poesie1.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php include 'includes/head.php'; ?>
      <h1>Ma première poésie</h1>
     
      <p>Lorem ipsum...</p>
    <?php include 'includes/footer.php'; ?>

    poesie2.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php include 'includes/head.php'; ?>
      <h1>Ma deuxième poésie</h1>
     
      <p>Dolor sit amet...</p>
    <?php include 'includes/footer.php'; ?>

    Je peux désormais modifier un fichier inclus afin que les modifications soient reportées sur toutes les pages.
    Note : Idéalement, la balise html <title> devrait être différente pour chaque page. Une solution pourrait être de définir une variable $titre dans chaque page poesieX.php et afficher cette variable dans le fichier inclus head.php.



    Une autre solution est d'utiliser un seul script php pour l'affichage de toutes les poésies, celles-ci sont alors stockées dans une base de données.
    Un exemple (code non testé, l'exemple est surtout là pour expliquer le principe) :

    poesie.php (chargé via https://localhost/poesie.php?id=1)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    $idPoesie = $_GET['id'] ?? null;
     
    $pdo = new PDO('...');
    $poesie = $pdo->query('SELECT id, titre, contenu FROM poesie WHERE id = ' . intval($idPoesie))->fetch(PDO::FETCH_OBJ);
     
    if (!$poesie) {
        http_response_code(404)
        echo 'Not found';
        exit();
    }
    ?>
    <!doctype html>
    <html lang="fr">
    <head>
      <meta charset="utf-8">
      <title><?= htmlspecialchars($poesie->titre) ?></title>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>
     
      <h1><?= htmlspecialchars($poesie->titre) ?></h1>
     
      <p><?= htmlspecialchars($poesie->contenu) ?></p>
     
      <footer>copyright - mentions légales</footer>
    </body>
    </html>



    La première solution est la plus simpe mais l'inconvénient est qu'il y a toujours un fichier php par poésie (poesie1.php, poesie2.php, etc).
    Si on veut ajouter un autre include sur toutes les pages, on risque donc de devoir modifier tous les fichiers poesieX.php.

    La deuxième solution est plus complexe à mettre en place (prendre le temps de bien modéliser la bdd) mais elle permet une meilleure maintenabilité et facilite l'évolution du site puisqu'il n'y a qu'un seul script à modifier pour changer l'affichage de toutes les poésies.

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 59
    Par défaut
    Merci beaucoup
    C'est sur que la deuxième solution...

    Comme je vais être obligé de créer un moteur de recherche (ou plutôt d'essayer d'en faire un), je sens que je vais être obligé de me mettre au bdd sql !
    Reste à espérer que free (qui est mon hébergeur) ne fiche pas trop le bazard. On ne peut déjà pas du tout utiliser le php mail() alors les bdd je n'ose pas imaginer le binz qu'ils ont pu inventer.

    En tout cas merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 12/06/2018, 10h50
  2. [Débutant] Pouvoir faire ajouter des commentaires sur son site asp.net mvc
    Par BRUNO71 dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 02/03/2018, 14h33
  3. Comment faire entrer votre site dans l'ère du Web 2.0 avec AJAX
    Par The_Pretender dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 21/07/2014, 08h11
  4. Réponses: 5
    Dernier message: 21/02/2007, 16h53
  5. ClassWizard --> comment lui faire reconnaitre mes classes
    Par bigboomshakala dans le forum MFC
    Réponses: 6
    Dernier message: 06/05/2004, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo