Wednesday, October 1, 2025
Home General Readme refonte site

Readme refonte site

by Paris T'aime

πŸ“„ NOTE DE TRAVAIL β€” SITE LOCAL paristaime

  1. RÈGLES DE BASE
    Nom du projet : paristaime (en un mot, minuscule)

Tous les fichiers en anglais

1 composant = 1 fichier = 1 Alex

Aucun fichier ne peut Γͺtre renommΓ©, dΓ©placΓ© ou supprimΓ© sans validation de LI Yongxin

Tous les composants vont dans le dossier : /components/

Aucun travail direct dans index.php

Tout script, style, ou image doit aller dans /public/

  1. STRUCTURE DU DOSSIER
    /paristaime/
    β”‚
    β”œβ”€β”€ index.php ← Page d’accueil principale
    β”œβ”€β”€ config.php ← Constantes globales (BASE_URL, API keys…)
    β”œβ”€β”€ README.md ← Guide du projet pour les Alex
    β”‚
    β”œβ”€β”€ /components/ ← Tous les composants PHP
    β”‚ β”œβ”€β”€ adopt-button.php ← Bouton pour adopter un quartier et s’y engager
    β”‚ β”œβ”€β”€ carousel-single.php ← Carrousel horizontal 1 ligne (swiper)
    β”‚ β”œβ”€β”€ contribute-button.php ← Bouton appel Γ  participation (tΓ©moignage, vidΓ©o…)
    β”‚ β”œβ”€β”€ filter-tags.php ← Filtres interactifs (par langue, ambiance, type…)
    β”‚ β”œβ”€β”€ footer-basic.php ← Pied de page simple et responsive
    β”‚ β”œβ”€β”€ form-quartier.php ← GΓ©nΓ©rateur de code PHP pour quartiers
    β”‚ β”œβ”€β”€ form-video.php ← GΓ©nΓ©rateur de code PHP pour vidΓ©os
    β”‚ β”œβ”€β”€ gallery-grid.php ← Grille d’images responsive (photos, street-art)
    β”‚ β”œβ”€β”€ header-video.php ← VidΓ©o plein Γ©cran (hero) avec lecture automatique
    β”‚ β”œβ”€β”€ language-tags.php ← Affiche les langues ou identitΓ©s culturelles locales
    β”‚ β”œβ”€β”€ lang-switcher.php ← SΓ©lecteur de langue (FR/EN/CN…)
    β”‚ β”œβ”€β”€ lightbox-video.php ← Lecture de vidΓ©o dans une fenΓͺtre modale (overlay)
    β”‚ β”œβ”€β”€ map-interactive.php ← Carte interactive de Paris (survol quartiers)
    β”‚ β”œβ”€β”€ progress-status.php ← Affiche le niveau d’intΓ©gration Paris T’aime par quartier
    β”‚ β”œβ”€β”€ quartier-card.php ← Encart de quartier (image, titre, lien)
    β”‚ β”œβ”€β”€ quartier-page.php ← Structure complΓ¨te d’une page quartier
    β”‚ β”œβ”€β”€ quote-overlay.php ← Citation poΓ©tique ou phrase-clΓ© en surimpression
    β”‚ β”œβ”€β”€ search-bar.php ← Barre de recherche (vidΓ©os ou quartiers)
    β”‚ β”œβ”€β”€ seo-meta.php ← Meta-tags dynamiques pour SEO (title, desc…)
    β”‚ β”œβ”€β”€ stats-block.php ← Statistiques clΓ©s d’un quartier (surface, pop., langues)
    β”‚ β”œβ”€β”€ testimonial-block.php ← Bloc de tΓ©moignages texte/vidΓ©o
    β”‚ β”œβ”€β”€ video-detail.php ← Page ou bloc avec infos dΓ©taillΓ©es d’une vidΓ©o
    β”‚ β”œβ”€β”€ video-sticky-click.php ← VidΓ©o sticky aprΓ¨s clic
    β”‚ β”œβ”€β”€ video-sticky-scroll.php ← VidΓ©o sticky dΓ©clenchΓ©e au scroll
    β”‚
    β”œβ”€β”€ /data/ ← DonnΓ©es centralisΓ©es
    β”‚ β”œβ”€β”€ quartier-video-data.php ← Liste des 80 quartiers avec vidΓ©o, couleur, texte…
    β”‚ β”œβ”€β”€ video-data.php ← Liste des vidΓ©os (titre, ID, description, quartier…)
    β”‚
    β”œβ”€β”€ /public/ ← Fichiers statiques
    β”‚ β”œβ”€β”€ /css/
    β”‚ β”‚ β”œβ”€β”€ tlt-custom.css ← CSS principal du site
    β”‚ β”‚ β”œβ”€β”€ [autres fichiers] ← Un CSS optionnel par composant si nΓ©cessaire
    β”‚ β”‚
    β”‚ β”œβ”€β”€ /js/
    β”‚ β”‚ β”œβ”€β”€ header-video.js ← JS pour lecture vidΓ©o hero
    β”‚ β”‚ β”œβ”€β”€ carousel.js ← JS pour le carrousel swiper
    β”‚ β”‚ β”œβ”€β”€ video-player.js ← ContrΓ΄le des lecteurs
    β”‚ β”‚ β”œβ”€β”€ [autres fichiers]
    β”‚ β”‚
    β”‚ β”œβ”€β”€ /img/
    β”‚ β”‚ β”œβ”€β”€ logo.png
    β”‚ β”‚ β”œβ”€β”€ play-icon.svg ← IcΓ΄ne personnalisΓ©e lecture
    β”‚ β”‚ β”œβ”€β”€ quartier-[slug].jpg ← Miniatures manuelles si besoin
    β”‚ β”‚
    β”‚ └── /fonts/ ← Polices personnalisΓ©es (si utilisΓ©es)
    β”‚
    β”œβ”€β”€ /tools/ ← GΓ©nΓ©rateurs manuels de contenu (dev only)
    β”‚ β”œβ”€β”€ formulaire-quartier.php ← Interface de gΓ©nΓ©ration de blocs quartier-video-data
    β”‚ β”œβ”€β”€ formulaire-video.php ← Interface de gΓ©nΓ©ration de blocs video-data
    β”‚
    β”œβ”€β”€ /dev/ ← Tests non publics / prototypes
    β”‚ β”œβ”€β”€ quartier.php ← Page prototype pour afficher un quartier
    β”‚ β”œβ”€β”€ test-sticky.php ← Test du player sticky en scroll
    β”‚ β”œβ”€β”€ [autres fichiers]
  2. AVANT DE CODER
    Chaque Alex doit :

Lire cette note

Demander validation du nom du composant (fichier PHP)

S’engager Γ  ne jamais modifier de fichier existant

Noter son nom et sa mission dans la liste de suivi

  1. STANDARD DE FICHIER PHP
    Chaque fichier .php doit commencer par :

php
Copier
Modifier
<?php
/**

  • Component: [Nom du composant en anglais]
  • File: [nom-du-fichier.php]
  • Author: Alex [numΓ©ro]
  • Created: [date]
  • Description: [fonction courte]
  • DO NOT RENAME β€” validated by LI Yongxin.
    */
    ?>
  1. SPÉCIFICITÉS VIDÉO YOUTUBE
    Les miniatures YouTube doivent Γͺtre rΓ©cupΓ©rΓ©es via YouTube Data API pour Γ©viter les miniatures cassΓ©es

On utilise un proxy d’image ou une requΓͺte serveur si besoin

On prΓ©pare une icΓ΄ne personnalisΓ©e (lecture) pour remplacer celle par dΓ©faut de YouTube

Toutes les vidΓ©os doivent Γͺtre intΓ©grΓ©es avec iframe, autoplay contrΓ΄lΓ© et fallback mobile

  1. PRÉCAUTIONS TECHNIQUES (mise à jour continue)
    Pas de require() entre composants

Centraliser les constantes dans config.php

Aucune inclusion de script directement dans un composant

Aucun style inline : tout dans /public/css/

Chaque JS doit Γͺtre modulaire et unique (ex : carousel.js, video-player.js)

Fichier video-data.php (dans /data/) sert de base pour toutes les vidΓ©os

ProblΓ¨mes Γ  prΓ©voir : navigateur bloque autoplay son β†’ prΓ©voir fallback (bouton “lancer”)

  1. EN CAS D’INCERTITUDE
    Toujours demander Γ  Alex Coordination (LI Yongxin)
    Ne jamais improviser un nom de fichier
    Ne jamais toucher un autre composant sans accord

Les dossiers /tools/ et /dev/ ne seront jamais mis en production.

Les donnΓ©es dans /data/ doivent rester simples, bien formatΓ©es, et documentΓ©es.

Toute inclusion dans index.php ou quartier.php se fait via include ‘components/xxx.php’;

β€œToute proposition de nouveau nom ou nouveau composant doit Γͺtre validΓ©e par l’équipe avant ajout”

πŸ“ Note: Lessons Learned from File Naming and Structure Mistakes

During the setup of our custom forms and components for Paris T’aime, we encountered major difficulties due to unclear file naming, misplaced directories, and inconsistent path references. These issues led to errors, white pages, broken links, and confusion between local vs. production environments.


⚠️ What Went Wrong

  • CSS, PHP, and data files were scattered without clear logic (some in /tools/, others in /dev/, or even root).
  • File names were inconsistent (e.g., form-video.php vs form-video-meta.php), making it hard to remember or reference them.
  • Components referred to nonexistent paths or wrong directories (e.g., writing to /data/ instead of /dev/data/).
  • Files were edited without central config constants, causing hardcoded paths to break on different machines or servers.
  • French and English were mixed in code and comments, further complicating collaboration.

πŸ’‘ What We Learned

  1. Structure is sacred. Without a clear file system, even small forms become fragile.
  2. Naming must follow logic β€” use consistent, descriptive English names like form-video-meta.php, video-data.php, form-quartier.php.
  3. Centralize path definitions in one place (config.php) and never use relative paths manually.
  4. Data files must not be directly edited by scripts β€” always use a dump system (*-dump.txt) and verify before merging.
  5. Protect your future self β€” every shortcut now creates long-term maintenance costs.
  6. Work modularly β€” every component (PHP, CSS, data) should be clean, independent, and testable alone.

βœ… Moving Forward

  • All new forms will follow the structure:
    /tools/ β†’ logic
    /dev/data/ β†’ data
    /public/css/ β†’ style
  • Every file will be named in English, with purpose-first clarity.
  • We will version and track data changes through dumps and backups.

✨ Conclusion

This experience reminded us that clarity beats speed, and that a creative project like Paris T’aime deserves technical foundations that are as elegant and poetic as its message.

We document this moment not as a failure β€” but as a milestone in maturity.

Appendix:

πŸ“˜ README.md – Paris T’aime Site Structure (2025)

markdownCopierModifier# 🌐 Paris T’aime – Site Structure Guide

This project follows a modular and human-centric architecture inspired by the values of *Paris T’aime*.

All components, tools, and data follow strict naming and folder placement rules to ensure clarity, collaboration, and long-term maintainability.

---

## πŸ” Root Tree Overview

/paristaime/
β”‚
β”œβ”€β”€ components/ # 🎨 Public-facing UI components (reusable)
β”‚ β”œβ”€β”€ form-video.php
β”‚ └── header-video.php
β”‚
β”œβ”€β”€ tools/ # πŸ”§ Admin tools for block generation or testing
β”‚ β”œβ”€β”€ form-video-meta.php
β”‚ β”œβ”€β”€ form-quartier.php
β”‚
β”œβ”€β”€ data/ # πŸ“¦ Final PHP data blocks (editable but versioned)
β”‚ β”œβ”€β”€ video-data.php
β”‚ β”œβ”€β”€ quartier-video-data.php
β”‚
β”œβ”€β”€ dev/ # πŸ§ͺ Temporary test files and staging scripts
β”‚ β”œβ”€β”€ quartier.php
β”‚ β”œβ”€β”€ test-thumbnails.php
β”‚
β”œβ”€β”€ public/ # πŸ–ŒοΈ Assets: styles, images, JS
β”‚ └── css/
β”‚ β”œβ”€β”€ tlt-custom.css # Global site design
β”‚ β”œβ”€β”€ form-video.css # Video form-specific layout
β”‚
β”œβ”€β”€ config.php # πŸ“ Central path config (defines BASE_URL, ROOT_PATH, etc.)
└── index.php # πŸ” Default page (can be replaced by router)

yamlCopierModifier
---

## πŸ“ Folder Roles & Philosophy

### `components/`
> Modular, reusable parts of the site β€” visual, semantic, and styled.

- 🟒 Public use
- πŸ’‘ Uses data from `/data/`
- βœ… Example: forms, cards, headers, swipers

---

### `tools/`
> Internal use only. Meant for data generation, testing, injection.

- πŸ”’ Not intended for public visitors
- ✍️ Admin interface for creating PHP array blocks
- βœ… Example: `form-video-meta.php` writes to `video-dump.txt`

---

### `data/`
> All final project data in PHP array format.

- πŸ“¦ Canonical source
- πŸ›‘ Never placed in `/dev/`
- πŸ” Read by both `/components/` and `/tools/`

---

### `dev/`
> Testing environment. Temporary pages, scripts, prototypes.

- πŸ§ͺ Do not deploy to production
- πŸ”„ Can be cleaned regularly
- 🧭 Use for A/B tests, debug views, etc.

---

### `public/`
> All frontend static assets.

- 🎨 CSS, JS, images
- πŸ“Œ Always referenced using `BASE_URL`

---

## βœ… Rules to Follow

1. πŸ” **NEVER place final data in `/dev/data/`** β€” always use `/data/`
2. πŸ“ **Use English file names** only β€” no accents or underscores
3. πŸ”„ **One function = one file** β€” clear component identity
4. πŸ“š **All tools must be optional** β€” core site works without them
5. 🌐 **All paths must use `config.php` constants** (`BASE_URL`, `ROOT_PATH`)
6. πŸ“˜ Document each component if it's reused

---

## πŸ“Ž Contact

Project by LI Yongxin, Founder of *Paris T’aime*
In collaboration with the 12 Alex of the AI Constellation



Last updated: 2025-05-23

πŸ“‚ Full Project Structure Map – Paris T’aime
Generated on 2025-05-23

============================================================
πŸ“ /paristaime/

β”œβ”€β”€ components/ # 🎨 Public-facing UI components (reusable)
β”‚ β”œβ”€β”€ adopt-button.php ← Button to adopt a quartier
β”‚ β”œβ”€β”€ carousel-single.php ← Carousel displaying single row of videos
β”‚ β”œβ”€β”€ contribute-button.php ← CTA button for contributing content
β”‚ β”œβ”€β”€ filter-tags.php ← UI filter for tags
β”‚ β”œβ”€β”€ footer-basic.php ← Footer displayed across all pages
β”‚ β”œβ”€β”€ form-quartier.php ← User-facing form for quartier (used in public)
β”‚ β”œβ”€β”€ form-video.php ← Public form for adding new video metadata
β”‚ β”œβ”€β”€ gallery-grid.php ← Photo gallery block
β”‚ β”œβ”€β”€ header-video.php ← Video hero banner for quartier
β”‚ β”œβ”€β”€ lang-switcher.php ← Language switcher interface
β”‚ β”œβ”€β”€ language-tags.php ← Display tags for languages
β”‚ β”œβ”€β”€ lightbox-video.php ← Lightbox video popup display
β”‚ β”œβ”€β”€ map-interactive.php ← Interactive map of Paris quartiers
β”‚ β”œβ”€β”€ progress-status.php ← Project progress visual indicator
β”‚ β”œβ”€β”€ quartier-card.php ← Card UI block for displaying quartier
β”‚ β”œβ”€β”€ quartier-page.php ← Full quartier detail page
β”‚ β”œβ”€β”€ quote-overlay.php ← Overlay quote section for testimonials
β”‚ β”œβ”€β”€ search-bar.php ← Search bar interface
β”‚ β”œβ”€β”€ seo-meta.php ← Meta info for SEO
β”‚ β”œβ”€β”€ stats-block.php ← Statistics visualization block
β”‚ β”œβ”€β”€ testimonial-block.php ← Visitor/local testimonial component
β”‚ β”œβ”€β”€ video-detail.php ← Detail view for single video
β”‚ β”œβ”€β”€ video-sticky-click.php ← Sticky video triggered on click
β”‚ └── video-sticky-scroll.php ← Sticky video triggered on scroll

β”œβ”€β”€ tools/ # πŸ› οΈ Admin tools for internal content/data creation
β”‚ β”œβ”€β”€ form-video-meta.php ← Admin-only: generates block for video-data.php
β”‚ β”œβ”€β”€ form-quartier.php ← Admin-only: generates block for quartier-video-data.php
β”‚ β”œβ”€β”€ preview-blocks.php ← Optional test for rendering PHP array blocks
β”‚ β”œβ”€β”€ test-thumbnails.php ← Tests YouTube ID and retrieves thumbnail
β”‚ └── test-header-video.php ← Standalone test for header-video layout

β”œβ”€β”€ data/ # πŸ“¦ Final structured PHP arrays (version-controlled)
β”‚ β”œβ”€β”€ video-data.php ← Final block of video entries (used on frontend)
β”‚ └── quartier-video-data.php ← Final quartier entries (used in quartier display)

β”œβ”€β”€ dev/ # πŸ§ͺ Temporary tests, staging, experiments
β”‚ β”œβ”€β”€ quartier.php ← Quartier display test using header-video
β”‚ β”œβ”€β”€ test-scroll-fullscreen.php ← Prototype sticky fullscreen video on scroll
β”‚ └── test-thumbnails.php ← Same as tools/test-thumbnails.php (temp duplicate)

β”œβ”€β”€ public/css/ # 🎨 Component-specific CSS files
β”‚ β”œβ”€β”€ adopt-button.css
β”‚ β”œβ”€β”€ carousel-single.css
β”‚ β”œβ”€β”€ contribute-button.css
β”‚ β”œβ”€β”€ filter-tags.css
β”‚ β”œβ”€β”€ footer-basic.css
β”‚ β”œβ”€β”€ form-quartier.css
β”‚ β”œβ”€β”€ form-video.css
β”‚ β”œβ”€β”€ gallery-grid.css
β”‚ β”œβ”€β”€ header-video.css
β”‚ β”œβ”€β”€ lang-switcher.css
β”‚ β”œβ”€β”€ language-tags.css
β”‚ β”œβ”€β”€ lightbox-video.css
β”‚ β”œβ”€β”€ map-interactive.css
β”‚ β”œβ”€β”€ progress-status.css
β”‚ β”œβ”€β”€ quartier-card.css
β”‚ β”œβ”€β”€ quartier-page.css
β”‚ β”œβ”€β”€ quote-overlay.css
β”‚ β”œβ”€β”€ search-bar.css
β”‚ β”œβ”€β”€ seo-meta.css
β”‚ β”œβ”€β”€ stats-block.css
β”‚ β”œβ”€β”€ testimonial-block.css
β”‚ β”œβ”€β”€ video-detail.css
β”‚ β”œβ”€β”€ video-sticky-click.css
β”‚ └── video-sticky-scroll.css

β”œβ”€β”€ public/js/ # πŸ“œ Component-specific JS files
β”‚ β”œβ”€β”€ adopt-button.js
β”‚ β”œβ”€β”€ carousel-single.js
β”‚ β”œβ”€β”€ contribute-button.js
β”‚ β”œβ”€β”€ filter-tags.js
β”‚ β”œβ”€β”€ footer-basic.js
β”‚ β”œβ”€β”€ form-quartier.js
β”‚ β”œβ”€β”€ form-video.js
β”‚ β”œβ”€β”€ gallery-grid.js
β”‚ β”œβ”€β”€ header-video.js
β”‚ β”œβ”€β”€ lang-switcher.js
β”‚ β”œβ”€β”€ language-tags.js
β”‚ β”œβ”€β”€ lightbox-video.js
β”‚ β”œβ”€β”€ map-interactive.js
β”‚ β”œβ”€β”€ progress-status.js
β”‚ β”œβ”€β”€ quartier-card.js
β”‚ β”œβ”€β”€ quartier-page.js
β”‚ β”œβ”€β”€ quote-overlay.js
β”‚ β”œβ”€β”€ search-bar.js
β”‚ β”œβ”€β”€ seo-meta.js
β”‚ β”œβ”€β”€ stats-block.js
β”‚ β”œβ”€β”€ testimonial-block.js
β”‚ β”œβ”€β”€ video-detail.js
β”‚ β”œβ”€β”€ video-sticky-click.js
β”‚ └── video-sticky-scroll.js

β”œβ”€β”€ config.php # πŸ”§ Global constants (paths, BASE_URL, etc.)
β”œβ”€β”€ index.php # 🏠 Homepage or launcher
β”œβ”€β”€ README.md # πŸ“˜ Technical readme
β”œβ”€β”€ README-PARISTAIME # ✨ Human/cinematic project manifest

============================================================
βœ… RULE: Only tools/ can modify data/ files.
βœ… RULE: Only components/ are shown to the public.
βœ… RULE: Each component can have its own CSS + JS in /public/
βœ… RULE: No duplication of components/tools by name (e.g. form-video)

🧩 Example: components/form-video.php

phpCopierModifier<?php require_once __DIR__ . '/../config.php'; ?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Add a New Video</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="<?php echo BASE_URL; ?>/public/css/tlt-custom.css">
  <link rel="stylesheet" href="<?php echo BASE_URL; ?>/public/css/form-video.css">
</head>
<body>

<?php include __DIR__ . '/form-video-html.php'; ?>

<script src="<?php echo BASE_URL; ?>/public/js/form-video.js"></script>
</body>
</html>

🧠 Global JS Example (shared)

File: /public/js/sticky-player.js

Used in:

  • video-sticky-click.php
  • video-sticky-scroll.php
htmlCopierModifier<script src="<?php echo BASE_URL; ?>/public/js/sticky-player.js"></script>

βœ… Summary Rules

File TypeFolderExample
Component HTML/components/form-video.php
Component CSS/public/css/form-video.css
Component JS/public/js/form-video.js
Shared CSS/JS/public/css/ + /js/tlt-custom.css, sticky-player.js

Let’s generate a complete starter kit for the form-video component, with:

  • βœ… PHP file (form-video.php)
  • 🎨 CSS file (form-video.css)
  • βš™οΈ JS file (form-video.js)
  • πŸ“‚ Proper folder placement according to your architecture

βœ… 1. components/form-video.php

phpCopierModifier<?php require_once __DIR__ . '/../config.php'; ?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Add a New Video</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="<?php echo BASE_URL; ?>/public/css/tlt-custom.css">
  <link rel="stylesheet" href="<?php echo BASE_URL; ?>/public/css/form-video.css">
</head>
<body>

<div class="form-video-wrapper">
  <h2>Add a New Video</h2>
  <form class="form-video" method="post" action="save-video.php">
    <label>Title<input type="text" name="title" required></label>
    <label>Slug<input type="text" name="slug"></label>
    <label>Year<input type="number" name="year" value="2025"></label>
    <label>YouTube ID<input type="text" name="video_id" required></label>
    <label>Intro<textarea name="intro"></textarea></label>
    <label>Status
      <select name="status">
        <option value="ready">Ready</option>
        <option value="draft">Draft</option>
      </select>
    </label>
    <button type="submit">Save Video</button>
  </form>
</div>

<script src="<?php echo BASE_URL; ?>/public/js/form-video.js"></script>
</body>
</html>

🎨 2. public/css/form-video.css

cssCopierModifier.form-video-wrapper {
  max-width: 700px;
  margin: 2rem auto;
  padding: 2rem;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
}

.form-video label {
  display: block;
  margin-bottom: 1rem;
  font-weight: 600;
}

.form-video input,
.form-video select,
.form-video textarea {
  width: 100%;
  padding: 0.6rem;
  margin-top: 0.3rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 1rem;
}

.form-video button {
  margin-top: 1rem;
  padding: 0.75rem 1.5rem;
  background: #001944;
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}

@media (max-width: 600px) {
  .form-video-wrapper {
    padding: 1rem;
  }
}

βš™οΈ 3. public/js/form-video.js

jsCopierModifierdocument.addEventListener('DOMContentLoaded', function () {
  console.log("βœ… form-video.js loaded");
});

πŸ“‚ Folder Placement (Recap)

cssCopierModifier/paristaime
β”œβ”€β”€ /components
β”‚   └── form-video.php
β”œβ”€β”€ /public
β”‚   β”œβ”€β”€ /css
β”‚   β”‚   └── form-video.css
β”‚   └── /js
β”‚       └── form-video.js

πŸ“ FILE: files-map-components.txt
πŸ“ LOCATION: /paristaime/docs/files-map-components.txt
πŸ“… VERSION: 2025-05-23
🧭 PURPOSE: Prevent naming conflicts, ensure consistent placement, and clarify CSS/JS associations for each PHP component.
──────────────────────────────────────────────

🎬 COMPONENT: form-video.php
πŸ“„ PATH: /paristaime/components/form-video.php
🎨 CSS: /public/css/form-video.css
βš™οΈ JS: /public/js/form-video.js

🎬 COMPONENT: form-quartier.php
πŸ“„ PATH: /paristaime/tools/form-quartier.php
🎨 CSS: /public/css/form-quartier.css
βš™οΈ JS: /public/js/form-quartier.js

🎬 COMPONENT: video-detail.php
πŸ“„ PATH: /paristaime/components/video-detail.php
🎨 CSS: /public/css/video-detail.css
βš™οΈ JS: /public/js/video-detail.js

🎬 COMPONENT: header-video.php
πŸ“„ PATH: /paristaime/components/header-video.php
🎨 CSS: /public/css/header-video.css
βš™οΈ JS: /public/js/header-video.js

🎬 COMPONENT: carousel.php
πŸ“„ PATH: /paristaime/components/carousel.php
🎨 CSS: /public/css/carousel.css
βš™οΈ JS: /public/js/carousel.js

🎬 COMPONENT: video-sticky-click.php
πŸ“„ PATH: /paristaime/components/video-sticky-click.php
🎨 CSS: /public/css/video-sticky.css
βš™οΈ JS: /public/js/sticky-player.js

🎬 COMPONENT: video-sticky-scroll.php
πŸ“„ PATH: /paristaime/components/video-sticky-scroll.php
🎨 CSS: /public/css/video-sticky.css
βš™οΈ JS: /public/js/sticky-player.js

🎬 COMPONENT: quartier.php (dynamic quartier page)
πŸ“„ PATH: /paristaime/dev/quartier.php
πŸ“„ DATA: /paristaime/dev/data/quartier-video-data.php
🎨 CSS: /public/css/quartier.css
βš™οΈ JS: /public/js/quartier.js

🎬 COMPONENT: video-form.php (DEPRECATED: replaced by form-video.php)
πŸ›‘ DO NOT USE: Was replaced due to naming conflict

──────────────────────────────────────────────

πŸ“¦ SHARED CSS FILES
βœ… /public/css/tlt-custom.css β€” global styles, fonts, colors, layout base
βœ… /public/css/tlt-grid.css β€” optional shared layout grid system
βœ… /public/css/tlt-buttons.css β€” shared UI button styles (if split later)

πŸ“¦ SHARED JS FILES
βœ… /public/js/tlt-global.js β€” global JS helpers, like scroll effects, modals
βœ… /public/js/sticky-player.js β€” sticky player used in multiple components
βœ… /public/js/swiper-init.js β€” if Swiper is used in carousels or sliders

──────────────────────────────────────────────

πŸ“ NAMING CONVENTIONS

  • PHP: form-x.php, video-x.php, header-x.php, etc.
  • CSS: form-x.css, video-x.css, …
  • JS: form-x.js, video-x.js, …
  • Shared files start with: tlt-*.css, tlt-*.js

──────────────────────────────────────────────

πŸ” FUTURE ADVICE

  1. Always check this file before naming a new component.
  2. All new PHP files should live in /components/ unless used for tools or admin.
  3. Do not mix tools/ and components/ logic.
  4. All styles should live in /public/css/, never inline or in PHP files.
  5. JS files must be in /public/js/, never embedded.

──────────────────────────────────────────────
βœ… Maintained by: Paris T’aime Development Team

You may also like

-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00