Bonjour à tous,

Ma question du jour est : Comment peut-on générer un sitemap automatiquement avec Cakephp (pour le blog du tuto par exemple)? Et si on ne peux pas, comment peut-on faire pour intégrer un sitemap fait de façon statique (ou doit-on mettre le fichier sitemap.xml, etc)?

Merci d'avance pour votre aide.

7 réponses


Je suis désoler... mais je dirais que c'est presque scandaleux...

1 recherche: "sitemap cakephp" dans google et j'ai trouver 2 articles (mais bien plus encore) sur le site officiel :

http://bakery.cakephp.org/articles/view/sitemap-deluxe
http://bakery.cakephp.org/articles/view/automatically-generate-dynamic-sitemaps

Maintenant si tu rencontres des soucis lors d'une manipulation ou si la solution ne colle pas a tes attendes, je serai, pour ma part, ravi d'essayer de trouver une solution avec toi

dvalin
Auteur

Ne t'inquiète pas, je ne suis pas un fénéant à ce point là :)
J'ai déjà recherché sur Google, essayé une demi douzaine de solutions qui était proposé par ces sites, mais soit ça ne marche carrément pas, soit ça me génère des url qui n'existent pas, soit ça me génère juste l'url d'accueil, etc.
J'ai beau essayé de comprendre le code, l'adapter, ça ne donne jamais le résultat escompté.

Oh, donc désolé pour la première ligne.

J'ai un script qui permet de retrouver tout les controllers (et moyen d'etendre sur les actions) de la tu stoque ça dans un tableaux et crée ton xml mais le probleme c'est que ça prendra pas en compte tes routes, et affichera tout tout (c'est a dire, même les controllers/actions que tu n'aimerais pas trop affiché)

--- EDIT ----
Et puis même elle est a chier ma solution, faut aussi penser aux pages et ça ne résoud pas entierement le problem d'inter relation

dvalin
Auteur

Pas de problème, c'est vrai que les personnes qui ne cherchent pas avant de poster sont légions sur le net.

Le problème avec ta solution, c'est que les actions pour la partie admin vont être visible aussi, c'est ça? Côté sécurité, c'est pas top quand même.

Sinon, il faudrait un script qui récupère dans la BD le nombre de catégories, le nombre d'article et leur nom. Ca je sais faire, mais pas avec un framwork (envie de suicide qui arrive, :) ).

Pour ça justement cakePHP est super bien conçu!
Pas besoin de penser au jointure et tt le bordel,
Tu faut un find avec une récursive de 1-2-3-... pour avoir toutes tes infos (mais je te conseil quand même d'ajouter l'option field pour pas que la requete soit trop lourde et te sors une chillé d'infos

donc:

    1. Vérifies que t'a bien crée ton modèle avec les relations belongsTo hasMany pour avoir la récursivité qui fonctione
    1. crées ta requête find avec récursivité et debug jusqu'à avoir le infos minimum nécessaires
    1. ajoutes l'option field pour n'avoir que les "fields" nécessaires
    1. Tes traitements (count, print, ...)

Sympa ma list...

dvalin
Auteur

Ah, j'ai été trop long pour rédiger ma réponse du coup ça a été posté sous utilisateur fantome. :D

Ah ben parfait,
Merci pour la solution (j'ai découvers la fonctionalité slug qui je pense va m'être bien util!)