Skip to content

Commit 7a688e9

Browse files
arnaudlevypabois
andcommitted
Description de la gestion des permalinks
Co-authored-by: Pierre-André Boissinot <pierreandre.boissinot@noesya.coop>
1 parent 1394460 commit 7a688e9

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

content/docs/admin/sites-web/permalinks.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,20 @@ Responsabilité :
7979
- calcul du permalink
8080
- fonctionnements spécifiques par type d'objet
8181

82+
## Fonctionnement
83+
84+
Chemin de création d'un permalink
85+
1. Les objets `Communication::Website::GitFile` incluent le trait `Communication::Website::GitFile::WithContent`
86+
2. Dans `WithContent`, la méthode `generate_content_safely` appelle `manage_permalink`, qui appelle `about.manage_permalink_in_website(website)`
87+
3. Dans le concern `Permalinkable`, la méthode `manage_permalink_in_website` appelle `new_permalink_in_website(website).save_if_needed`
88+
4. La méthode `new_permalink_in_website` appelle `Communication::Website::Permalink.for_objet`
89+
5. Dans le trait `Communication::Website::Permalink::WithMapping`, la méthode choisit le bon type de Permalink pour l'objet envoyé et renvoie un objet intancié mais non persisté en db
90+
6. Dans `Communication::Website::Permalink`, `save_if_needed` on cherche le permalink actuel
91+
7. On vérifie s'il faut bien l'enregistrer (objet publié, soit la première fois soit avec un changement de chemin)
92+
8. On enregistre le nouveau permalink
93+
9. On supprime les collisions avec d'anciens alias
94+
10. On bascule le précédent en alias
95+
8296
## Objets directs
8397

8498
### Page

0 commit comments

Comments
 (0)