Aller au contenu

Routes et pages

phil/directory-bundle
# config/routes/phil_directory.yaml
phil_directory:
    resource: .
    type: phil_directory

Le chargeur ajoute sept routes pour chaque genre, nommées phil_directory_{genre}_{action} :

ActionCheminMéthodes
indexpodcasts, podcasts?page=2GET
newpodcasts/newGET, POST
showpodcasts/{slug}GET
editpodcasts/{id}/editGET, POST
editorspodcasts/{id}/editorsGET, POST
historypodcasts/{id}/historyGET
publishpodcasts/{id}/publishPOST

{id} est l'UUID de la fiche ; les mots viennent de words. La page des rédacteurs porte aussi qui trouve la fiche (Fiches) ; la page d'une fiche qui n'est pas listée répond avec X-Robots-Tag: noindex, noarchive. La locale est celle de la requête. Une page que personne n'a le droit de voir répond 403, une fiche inconnue 404, un formulaire refusé 422.

La liste d'un genre montre page_size fiches par page, par slug, avec des liens vers la page précédente et la suivante (rel="prev", rel="next") ; ?page= prend un nombre de 1 à 999999999, et une page au-delà de la dernière, ou toute autre valeur, répond 404.

Gabarits

Les pages produisent le rendu de @PhilDirectory/index, show, form, editors et history, qui étendent chacun @PhilDirectory/layout.html.twig, dont le bloc meta de l'en-tête porte la <meta name="robots"> d'une fiche qui n'est pas listée. Une application les remplace dans templates/bundles/PhilDirectoryBundle/.

GabaritVariables
indexgenre, listings (la page), page (son numéro), next (si une page suit)
showgenre, page, listing, data, related (une liste de RelatedListings), robots (les directives aux robots, ou null)
formgenre, form, listing, id
editorsgenre, form, listing, id
historygenre, listing, id, versions

Traductions

Les libellés utilisent le domaine phil_directory, en français et en anglais, sous translations/.

Plan du site

DirectoryUrlProvider porte l'étiquette phil_sitemap.url_provider : une section par genre, nommée par sa clé — une clé qui se termine par un trait de soulignement et des chiffres, comme season_2, prend un trait d'union à la place de ce trait de soulignement, season-2 (Sitemap::sectionNamed()) —, avec la liste du genre et chaque fiche publiée dans sitemap_locale avec un slug, sauf celles que leur référencement masque et celles que leur auteur garde hors des moteurs de recherche, lues par tranches de 500.