Hello World
Le portfolio est en construction.
# Story 1.3: Templates PHP de Base (Header/Footer) ## Status Ready for Dev ## Story **As a** développeur, **I want** créer les templates PHP réutilisables pour le header et le footer, **so that** je ne duplique pas le code HTML commun sur chaque page. ## Acceptance Criteria 1. `templates/header.php` contient le doctype, head, meta tags SEO de base, et lien vers le CSS 2. `templates/footer.php` contient la fermeture body, les scripts JS, et le copyright 3. Le header inclut les balises meta viewport pour le responsive 4. Le header permet de passer un titre de page dynamique via une variable PHP 5. Les templates sont inclus dans `index.php` et la page s'affiche correctement 6. Une fonction helper `include_template()` est créée pour inclure les templates avec des données ## Tasks / Subtasks - [] **Task 1 : Créer la fonction helper include_template()** (AC: 6) - [] Créer le fichier `includes/functions.php` - [] Implémenter la fonction `include_template($name, $data = [])` - [] La fonction doit utiliser `extract()` pour passer les variables au template - [] Gérer le chemin vers le dossier templates/ - [] **Task 2 : Créer le template header.php** (AC: 1, 3, 4) - [] Créer `templates/header.php` - [] Ajouter le doctype HTML5 - [] Ajouter les meta tags essentiels (charset, viewport, description) - [] Ajouter les meta tags Open Graph de base - [] Ajouter le lien vers `output.css` - [] Ajouter le preload des polices - [] Permettre un titre dynamique via `$pageTitle` - [] Permettre une description dynamique via `$pageDescription` - [] **Task 3 : Créer le template footer.php** (AC: 2) - [] Créer `templates/footer.php` - [] Ajouter le copyright avec l'année dynamique - [] Ajouter le lien vers `main.js` avec attribut `defer` - [] Fermer les balises body et html - [] **Task 4 : Mettre à jour index.php** (AC: 5) - [] Inclure `includes/functions.php` - [] Utiliser `include_template('header', ['pageTitle' => '...'])` - [] Ajouter un contenu de test minimal - [] Utiliser `include_template('footer')` - [] **Task 5 : Tester l'affichage** - [] Lancer le serveur PHP local - [] Vérifier que la page s'affiche correctement - [] Vérifier le titre dans l'onglet du navigateur - [] Vérifier que le CSS est chargé - [] Valider le HTML avec W3C Validator ## Dev Notes ### Fonction include_template() ```php // includes/functions.php /** * Inclut un template avec des données * @param string $name Nom du template (sans .php) * @param array $data Variables à passer au template */ function include_template(string $name, array $data = []): void { extract($data); include __DIR__ . "/../templates/{$name}.php"; } ``` ### Contenu templates/header.php ```php
Le portfolio est en construction.