Commit Graph

5 Commits

Author SHA1 Message Date
Pontoporeia
59ae2151d0 semantic HTML: apropos.php and licence.php (TODO section V & VI)
apropos.php:
- Remove redundant <div class="apropos-left"> wrapper; prose div is now a direct
  grid child
- <div class="apropos-description apropos-page-content"> → <div class="prose">
  (single canonical class for Markdown-rendered content)
- <div class="apropos-right"> → <aside class="apropos-aside"> (supplementary info
  landmark; contacts and credits are secondary to the main description)
- Three bare <div> wrappers inside the aside → <section> (erg link, Contacts, Crédits)
- Three <div class="apropos-contact"> entries → <address> with font-style:normal
  override; <span class="apropos-contact-name"> → <strong>;
  <span class="apropos-contact-email"> → <a href="mailto:…">
  Removes classes: apropos-left, apropos-right, apropos-contact, apropos-contact-name,
  apropos-contact-role, apropos-contact-email, apropos-description, apropos-page-content

licence.php:
- <div class="apropos-description apropos-page-content apropos-single"> →
  <div class="prose apropos-single"> (consistent with apropos.php rename)

apropos.css:
- Rename .apropos-description / .apropos-page-content → .prose; merge all prose
  content rules under the single .prose selector
- Rename .apropos-right → .apropos-aside; remove .apropos-left (empty rule)
- Replace .apropos-contact, .apropos-contact-name etc. with element selectors:
  .apropos-aside address, .apropos-aside address strong,
  .apropos-aside address span, .apropos-aside address a
- Update responsive blocks to reference .prose instead of .apropos-description
2026-03-29 17:01:53 +02:00
Pontoporeia
f20aab5f66 css: deduplicate html/body reset; fix pages-edit.php invalid HTML
Move the repeated 'html, body { margin:0; padding:0; height:100% }' block from
main.css, search.css, tfe.css, and apropos.css into the single canonical location
in common.css. All four public page stylesheets already load common.css first, so
the rule applies identically — no visual change.

Fix pages-edit.php invalid HTML: the EasyMDE <link rel=stylesheet> was placed
inside <body> (after head.php was already closed), which is invalid. Add an
$extraCss hook to templates/admin/head.php so pages can inject <link> tags into
<head> via an array variable, matching the pattern already used by the public
templates/public/head.php. Also add a symmetric $extraJs hook to
templates/admin/footer.php for future use. pages-edit.php now sets
$extraCss = ['easymde.min.css'] before requiring head.php; the EasyMDE JS
<script> and its inline init remain in <body> in the correct load order.
2026-03-28 17:00:57 +01:00
Pontoporeia
764edf9121 Remove dead template/asset files; fix licence.php full-width layout
- Delete templates/header.php and templates/head.php — both were legacy
  partials from a previous design iteration (lang="en", broken nav markup)
  that were never included anywhere in the current codebase.

- Delete public/assets/icons.svg — the full TrumboWYG icon sprite (~15 KB)
  referenced nowhere; the only active WYSIWYG editor (EasyMDE in
  pages-edit.php) loads its own assets from CDN.

- Fix licence.php layout: the page was borrowing the two-column
  .apropos-layout grid but leaving the right column always empty, wasting
  ~40% of the viewport. Removed the grid wrapper and the empty .apropos-right
  div. Added .apropos-single utility class to apropos.css (max-width: 720px)
  so licence content now spans the full available width with a readable
  line length.
2026-03-28 16:42:18 +01:00
Pontoporeia
d87348c388 feat: licence page, admin pages editor, license types, gradient card placeholders, latest-year home view
- Feature 1: public /licence.php fetches 'licenses' page from DB, renders Markdown
- Feature 1: nav.php adds 'Licence' link with active state
- Feature 2: Database::getPage(), savePage(), getAllPages() methods
- Feature 2: bundled src/Parsedown.php (MIT, zero-dependency)
- Feature 2: apropos.php now renders 'about' page content from DB via Parsedown
- Feature 2: admin/pages.php (list) + admin/pages-edit.php (EasyMDE editor)
- Feature 2: admin/actions/page.php (auth+CSRF+validation+save)
- Feature 2: admin/head.php adds 'Pages statiques' nav link
- Feature 3: storage/schema.sql seeds 8 CC license types
- Feature 3: storage/migrations/003_seed_license_types.sql (applied to live DB)
- Feature 3: Database::getLicenseTypes() / getAllLicenseTypes()
- Feature 3: admin/add.php + formulaire.php: license_id field on add form
- Feature 3: admin/edit.php: license_id field on edit form with raw FK lookup
- Feature 3: tfe.php: shows 'Licence :' meta row when non-null
- Feature 6: main.css: .card__media--gradient styles
- Feature 6: index.php: deterministic HSL gradient placeholder cards
- Feature 6: Database::getLatestYearTheses() + getLatestPublishedYear()
- Feature 6: index.php default home = random latest-year theses with info label
2026-03-24 13:12:48 +01:00
Pontoporeia
2110d2b916 Redesign UI to match target design images
- Flat purple-gradient nav bar with POSTERG/RÉPERTOIRE/À PROPOS links
- Full-width search bar with icon, bottom-border only, below nav
- Home: white bg, media card grid (thumbnail + author/title label below)
- Répertoire: 4-column index (Années/Catégories/Étudiantes/Mots-clés)
- TFE: 2-column layout (large text left, media right)
- À Propos: 2-column, large monospace text, new apropos.php page
- Admin: dark theme (#1a1a1a), purple gradient nav, bottom-border inputs
- New shared partials: templates/nav.php, templates/search-bar.php
- Rewrote all CSS: common, main, search, tfe, apropos, admin
2026-02-24 23:34:17 +01:00