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.
-
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).
-
- Remplacer les images (placeholders) par les 4 dernières photos.
- Les liens des photos devront mener vers la page Detail.
- Afficher 6 photos par page avec leur titre.
- Les liens des photos devront mener vers la page Detail.
- Gérer la pagination.
- Afficher l'image et ses données (title, date, location et description).
- Gérer la pagination.
- 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.
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).