Page publique /books — catalogue de tous les livres #99
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Il n'existe pas de page publique listant tous les books. Un book individuel est accessible via
/book/{slug}, mais aucune page d'index ne permet de les découvrir. L'admin dispose de/admin/books, mais c'est réservé aux admins.L'objectif est une page
/bookspublique, accessible sans connexion, qui liste tous les books publiés (ceux ayant au moins un article publié).Existant utile
BookManager::getAll()BookManager::findForArticle()templates/book.phptemplates/post_list.php_cardCoverStyle()etcoverGradient()— réutilisablescase 'book':→/book/{slug}(un seul book)Un book JSON dans
DATA_PATH/books/a cette structure :Route à ajouter
/books→case 'books_list':Le routing
public/index.phpgère déjà les URLs propres du type/book/{slug}via le.htaccess. La même mécanique est à appliquer pour/books→action=books_list.Template
templates/books_list.phpChaque book est affiché comme une card :
/book/{slug}Utiliser la grille CSS existante
post-gridou créerbook-gridsi les proportions diffèrent (les cards de book sont plus hautes que les cards d'article).Si aucun book n'a de pages publiées : message vide lisible ("Aucun livre disponible pour l'instant.").
URL et
.htaccessVérifier que la règle de réécriture existante couvre
/books(règle générique qui passe tout versindex.php). Si ce n'est pas le cas, ajouter :Ajouter également un lien dans la navigation (footer ou navbar) si pertinent.
SEO
<title>: « Livres — {siteTitle} »<meta name="description">: ex. « Retrouvez tous les livres et séries d'articles publiés sur {siteTitle}. »<link rel="canonical">:{APP_URL}booksmetaRobots:index, followFichiers à créer / modifier
public/index.phpcase 'books_list':+ donnéestemplates/books_list.php.htaccess(varlog/server/)/bookssi nécessaireCritères d'acceptation
/booksretourne HTTP 200 sans connexion/book/{slug}/booksaccessible depuis la navigation ou le footer