amitaknkpt / php-web-portfolio

Développer un portfolio de photographe en PHP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ekyna-learn/php-web-portfolio

Développement PHP d'un site internet : portfolio de photographe.

Dans un premier temps, la base de données est « simulée » par le fichier data/gallery.php, vous pourrez recupérer les données de ce fichier comme ceci :

$data = require('data/gallery.php');

Les photos y sont représentées par des tableaux de ce type :

[
    'id'          => 1,
    'slug'        => '...',
    'title'       => '...',
    'date'        => '...',
    'location'    => '...',
    'description' => '...',
];

Le champ slug représente le nom des fichiers de l'image (auquel il faut ajouter l'extension .jpg). Les images sont stockées dans différents dossiers selon leur format :

  • images/small : miniatures pour la page Home.
  • images/medium : miniatures pour la page Gallery.
  • images/large : originaux pour la page Detail.

Développement

  • Renommer les fichiers .html en fichiers .php.

  • Déplacer le code HTML commun à toutes les pages dans des fichiers PHP (head.php, header.php, footer.php) placés dans un dossier nommé includes.

  • Créer un fichier includes/functions.php et y développer les fonctions suivantes :

    • findOneById(int $id): array

      Renvoi la photo ayant l'id [id], ou FALSE si cet identifiant est introuvable

    • getCount(): int

      Renvoi le nombre de photos présente dans la base de données.

    • findPaged(int $limit, int $offset = 0): array

      Renvoi les [limit] photos, à partir de la photo [offset].

    • findLatest(int $limit): array

      Renvoi les [limit] dernières photos (triées par date).

Page Home

  • Remplacer les images (placeholders) par les 4 dernières photos.
  • Les liens des photos devront mener vers la page Detail.

Page Gallery

  • Afficher 6 photos par page avec leur titre.
  • Les liens des photos devront mener vers la page Detail.
  • Gérer la pagination.

Page Detail

  • Afficher l'image et ses données (title, date, location et description).
  • Gérer la pagination.

Page Contact

  • Développer le formulaire et afficher les erreurs le cas échéant.
  • On pourra enregistrer les messages dans des fichiers placés dans un dossier contact pour simuler l'envoi de mails.

Base de données

Créer une base de données MySql et y importer le fichier data/gallery.sql. Modifier les fonctions du fichier includes/functions.php pour exploiter la base de données MySql. (Gardez une copie du fichier fonctionnant avec la « base de données » PHP du fichier data/gallery.php).

About

Développer un portfolio de photographe en PHP


Languages

Language:HTML 40.9%Language:PHP 25.5%Language:TSQL 17.9%Language:CSS 15.8%