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

Langage PHP Discussion :

Créer un template design pour un site en PHP


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Créer un template design pour un site en PHP
    Bonjour à tous,

    Je sollicite votre aide car dans le cadre d'un travail à rendre pour ce jeudi (BTS SIO), je dois créer un site avec base de données, événements, clients ... en PHP. Les différents fichiers (accueil, personnes, participations, événements) sont crées en PHP et le site fonctionne bien. Or, il me reste à améliorer le site avec un template design et ne sait comment m'y prendre. J'ai pourtant crée 3 fichiers (index.php/template.html/application.class.php ?

    Pouvez-vous m'aider dans ma quête ?
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    en faisant une recherche (je me souvenais que jreaux62 m'avait aidé sur le même sujet), je suis tombé sur https://codepen.io/jreaux62/pen/POGdjj

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci pour ton aide !

    Il n'y a pas de besoin de fichier externe PHP pour créer ce site PHP ?
    Dernière modification par rawsrc ; 15/04/2020 à 19h17. Motif: Inutile de citer un message dans son intégralité pour y répondre

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Non, pas la peine d'un fichier externe.

    Tes fichiers attachés, j'ai eu la flemme de les ouvrir. Si tu veux montrer du code, met le plutôt dans ta discussion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exemple de code : le bouton avec un dièse à l'extrême droite

  5. #5
    Invité
    Invité(e)
    Par défaut
    D'accord, je verrai ça demain en cours.
    C'est qu'il y a une dizaine de fichiers ...
    Fichiers attachés Fichiers attachés
    Dernière modification par rawsrc ; 15/04/2020 à 19h17. Motif: Inutile de citer un message dans son intégralité pour y répondre

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Cours...à distance, je suppose, vu le confinement.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Exactement !

    Si tu peux me dire tout de même si le site te va, ce serait super chouette !
    Dernière modification par rawsrc ; 15/04/2020 à 19h18. Motif: Inutile de citer un message dans son intégralité pour y répondre

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Bon, j'ai finalement regardé tes fichiers (en diagonal).

    Quelques remarques :

    - tu as adopté une architecture MVC donc à la racine, je ne pensais trouver que index.php. Que font ici les autres fichiers ?

    - dans index.php, il y a le menu : afficher le menu, ça devrait être dans "vue".
    - la gestion de la bdd, le mieux, c'est d'avoir une classe qui s'en charge et d'utiliser des méthodes de cette classe pour la connexion et pour exécuter des requêtes. Moi, j'utilise la classe MyPDO de rawsrc :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    <?php
    declare(strict_types=1);
    namespace vendor\util;
     
    /**
     * TUTORIAL DVP SUR LE CONCEPT MVC : MODÈLE-VUE-CONTRÔLEUR
     * @link https://www.developpez.net/forums/blogs/32058-rawsrc/b7786/developpement-selon-l-approche-mvc-modele-vue-controleur-retour-theorie/
     * @link https://www.developpez.net/forums/blogs/32058-rawsrc/b7804/developpement-selon-lapproche-mvc-modele-vue-controleur-cas-pratique/
     */
    class MYPDO
    extends \PDO
    {
        /**
         * @var \PDO
         */
        private static $pdo = null;
     
        public function __construct()
        {
            if (self::$pdo === null) {
                self::connect();
            }
            return self::$pdo;
        }
     
          /**
         * @param  string scheme     Ex: mysql pgsql...
         * @param  string $host      Adresse IP du serveur
         * @param  string $database  Nom de la base de données
         * @param  string $user      Nom de l'utilisateur
         * @param  string $pwd       Mot de passe de la connexion
         * @param  string $port      Numéro du port pour la connexion
         */
        private static function connect(string $scheme = DB_SCHEME, string $host = DB_HOST, string $database = DB_NAME,
                                        string $user = DB_USER, string $pwd = DB_PWD, string $port = DB_PORT)
        {
     
            $dsn = "{$scheme}:host={$host};dbname={$database};";
     
            if ((int)($port)) {
                $dsn .= "port={$port};";
            }
     
            try {
                self::$pdo = new \PDO($dsn, $user, $pwd, [
                    \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
                    \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
                    \PDO::ATTR_EMULATE_PREPARES   => false,
                    \PDO::MYSQL_ATTR_INIT_COMMAND   => "SET NAMES utf8"
                ]);
            } catch (\PDOException $e) {
                throw $e;
            }
        }
     
        /**
         * @param  mixed $sql
         * @param  mixed $values    [:tag => value]
         * @param  mixed $types     [:tag => PDO::PARAM_XXX] si tag absent alors PDO::PARAM_STR
         * @return array            null si erreur
         */
        public function select($sql, array $values, array $type = []): ?array
        {//echo "mypdo 63 sql=".$sql."<br/>";
            try {
                $stmt = self::$pdo->prepare($sql);
                foreach ($values as $tag => $v) {
                    $stmt->bindValue($tag, $v, $type[$tag] ?? \PDO::PARAM_STR);
                }
                $exec = $stmt->execute();
                //var_dump($stmt);
                return $stmt->fetchAll(\PDO::FETCH_ASSOC);
            } catch (\PDOException $e) {
                error_log('PDO::select - '.$e->getmessage());
                return null;
            }
        }
     
     
        public function insert($sql, array $values, array $type = []):bool
        {
            try {
                $stmt = self::$pdo->prepare($sql);
                foreach ($values as $tag => $v) {
                    $stmt->bindValue($tag, $v, $type[$tag] ?? \PDO::PARAM_STR);
                }
                $exec = $stmt->execute();
                //var_dump($stmt);
                return true;
            } catch (\PDOException $e) {
                error_log('PDO::select - '.$e->getmessage());
                return false;
            }
        }
     
        public function insertMultipleValues(string $table_name, string $list_colons, array $values):bool
        {
            try { 
                $list_values=" VALUES (";
                foreach ($values as $val_bdd)
                 {   
                     //$sup_str="(".$val_bdd."),";
                     $list_values.=$val_bdd.",";
                 }
                 $ln=strlen($list_values);
                 $list_values=substr($list_values,0, -1);
                 $list_values.=")";
                 $deb_req="INSERT INTO `".$table_name."` ";
     
                 $sql=$deb_req.$list_colons.$list_values;
                 $stmt = self::$pdo->prepare($sql);
                 $exec = $stmt->execute();
     
                return true;
            } catch (\PDOException $e) {
                error_log('PDO::select - '.$e->getmessage()); 
                return false;
            }
        }
     
     
     
    }  //end class MYPDO

    Tu aurais aussi à gagner à utiliser son routeur, qui est décrit (je crois) dans https://www.developpez.net/forums/bl...nis-php-objet/

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    je vais tout faire mais voici comment je ferais pour gérer le menu :

    dans "vue" un fichier dispMenu.php :
    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
    <?php
    namespace vue;
    class dispMenu
    {
    public function dispMenu()
    {
    ?>
     
        <h1>La ville de Paris</h1>
     
        <a href="index.php?page=0">Accueil</a><br>
     
        <a href="index.php?page=1">Gestion des événements</a><br>
     
        <a href="index.php?page=2">Gestion des personnes</a><br>
     
        <a href="index.php?page=3">Gestion des participations</a><br>
     
    <?php
    }
    ?>

    puis dans chaque vue, tu commences par :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    use vue\dispMenu.php;
    $menu=new dispMenu();
    $menu->dispMenu();
    etc...

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ok, je vais tacher de modifier ceci dès que possible.

    Par contre, sais-tu pourquoi uniquement la page d'accueil (en HTML) s'affiche avec la présentation CSS (couleurs) et pas les autres pages du menu (en PHP - personnes, événements et participations) qui gardent une forme classique ?
    Images attachées Images attachées   
    Dernière modification par Invité ; 16/04/2020 à 09h57.

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    N'ayant pas la DDL de ta bdd, je ne peux pas tester ton code (ça me serait plus pratique), donc je ne peux que regarder ton code. J'ai vu que tu as un fichier style.css (que je ne juge pas, n'étant pas un expert), mais trouvé nulle part, où tu l'insérais. Tu peux le dire ?
    Avec la méthode de rawsrc, tous les fichiers sont inclus dans index.php donc il suffit de mettre <link type="text/css" rel="stylesheet" href="style.css"> dans index.php.

  12. #12
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Quand on est développeur et pas designer et que l'on veux un rendu propre l'idéal c'est d'utiliser un framework css qui nous met à disposition tout un tas de classe css;

    Le plus connu est sans doute bootstrap , très complet mais pas forcément facile d'accès.

    Il en existe des dizaines qui font tous un peu la même chose , faut juste trouver celui qui convient à ce qu'on cherche.

  13. #13
    Invité
    Invité(e)
    Par défaut
    @laurentSc
    Ca ne fait que modifier les pages PHP mais pas un design uniforme pour l'ensemble ...

    Et avec ce code, ça ne marche pas non plus.

    Code : 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
    <table border= 1 >
            	<tr><th> ID Event </th>
              <th> Nom </th>
              <th> Nombre d'inscrits</th>
              <th> Total des places </th>
              </tr>
     
        <?php
        use paris2\vue\dispMenu.php;
        $menu=new dispMenu();
        $menu->dispMenu();
     
        foreach ($lesParticipations as $uneParticipation)
            {
            echo "<tr>  <td>".$uneParticipation['idevent']."</td>
                		    <td>".$uneParticipation['nom']."</td>
              			    <td>".$uneParticipation['nbPers']."</td>
              		 	    <td>".$uneParticipation['totalPlaces']."</td>
                  </tr>";
           	}
        ?>
    </table>
    Fichiers attachés Fichiers attachés
    Dernière modification par rawsrc ; 16/04/2020 à 14h13. Motif: Balises [code][/code] pour la coloration syntaxique

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Et alors, vu que tous tes fichiers sont des PHP ?

    Petit souci (pas trouvé la raison) : quand je teste ton appli (ayant la DDL, je peux), le contenu des tables n'est pas affiché. Par exemple, gestion des événements : aucun n'est affiché alors qu'il y a une pièce de théâtre...

  15. #15
    Invité
    Invité(e)
    Par défaut
    Ce que je voudrais, c'est qu'on trouve le même design bleu-blanc-rouge sur les 4 pages (accueil, événements, ...)

    Dans le fichier gestionEvents ? Comment puis-je afficher le contenu des tables ?
    Dernière modification par rawsrc ; 16/04/2020 à 14h45. Motif: Inutile de citer un message dans son intégralité pour y répondre

  16. #16
    Invité
    Invité(e)
    Par défaut
    Ça ne marcherait avec un simple fichier CSS ?
    Dernière modification par rawsrc ; 16/04/2020 à 17h43. Motif: Inutile de citer un message dans son intégralité pour y répondre

  17. #17
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Si biensur , c'est juste qu'en général on est pas capable de produire un css de qualité qui donne un rendu acceptable.

  18. #18
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Si bien sûr, mais quand on maîtrise mal le CSS, utiliser un framework CSS permet d'obtenir un joli design qu'on arriverait pas à obtenir sans lui.

  19. #19
    Invité
    Invité(e)
    Par défaut
    C'est bon, c'est en fait un réservoir de milliers de propriétés CSS ?

    Maintenant comment faire pour uniformiser les Quatre fichiers sous la même présentation ?
    Dernière modification par Invité ; 16/04/2020 à 19h06.

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Et alors, vu que tous tes fichiers sont des PHP ?

    Petit souci (pas trouvé la raison) : quand je teste ton appli (ayant la DDL, je peux), le contenu des tables n'est pas affiché. Par exemple, gestion des événements : aucun n'est affiché alors qu'il y a une pièce de théâtre...
    Ce que je voudrais, c'est qu'on trouve le même design bleu-blanc-rouge sur les 4 pages (accueil, événements, ...)

    Dans le fichier gestionEvents ? Comment puis-je afficher le contenu des tables ?

Discussions similaires

  1. Créer un tchat audio pour son site
    Par waouh dans le forum Services
    Réponses: 0
    Dernier message: 24/06/2011, 23h24
  2. Nouveau design pour mon site
    Par badr dans le forum Mon site
    Réponses: 5
    Dernier message: 16/11/2007, 12h38
  3. [Conception] comment simplement créer des menus boutons pour mon site?
    Par irnbru dans le forum Webdesign & Ergonomie
    Réponses: 1
    Dernier message: 10/05/2007, 17h08

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