Bonjour à tous !
En un peu moins d'une semaine, j'ai suivi le tutoriel "Développer un site dynamique de A à Z en MVC" avec attention.
Je tiens tout d'abord à remercier la personne qui a fait le tutoriel car il m'a beaucoup aider avec la POO et la structure MVC.
Au final, tout marche très bien, pas de problème ! J'ai donc voulu me modifier en fonction de mes besoins.
Voici donc mes modifications :
A lieu d'avoir des articles ( posts de type post ) appartenant à une catégorie, j'ai des articles ( cette fois ci dans une table article ) appartenant à une sous rubrique ( d'une table sousrubrique ) et ces sous-rubrique appartiennent à différentes rubriques ( de la table rubriques ).
Si vous préférez, j'ai des rubriques qui contiennent des sous rubriques qui contiennent elles même des articles. Le tout dans trois tables différentes reliés par des clés étrangères.
J'ai donc crée mes Controllers Rubriques, Articles et SousRubriques ( J'ai supprimé Post et Category ) et j'ai réussi à afficher sur mon navigateur, après avoir créé les fonctions au préalable, les sous-rubriques appartenant à telle rubrique et j'ai aussi réussi à afficher les articles appartenant à une telle sous-rubrique.
Pour arriver à cela, j'ai aussi modifier le fichier conf en ajoutant ces deux lignes :
Router::connect('sous-rubrique/:slug','articles/srubrik/slug:([a-z0-9\-]+)');
//L'url ressemble à http://127.0.0.1/Tuto/sous-rubrique/slugdemasous-rubrique et affiche tout les articles de cette sous-rubrique
Router::connect('rubrique/:slug','srubriques/rubrik/slug:([a-z0-9\-]+)');
//L'url ressemble à http://127.0.0.1/Tuto/rubrique/slugdemarubrique et affiche toutes les sous-rubriques de ma rubrique
Cependant je dois maintenant afficher les articles de tel sous-rubrique de tel rubrique avec un URL de type :
http://127.0.0.1/Tuto/rubrique/nom de ma rubrique/sous-rubrique/nom de ma sous-rubrique
Mais je ne sais pas du tout comment m'y prendre, j'ai essayé par ignorance de créer cette ligne la :
Router::connect('rubrique/:slug/sous-rubrique/:slug','srubriques/rubrik/slug:([a-z0-9\-]+)/articles/srubrik/slug:([a-z0-9\-]+)');
mais j'ai l'erreur :
Warning: preg_match() [function.preg-match]: Compilation failed: two named subpatterns have the same name at offset 59
pointant la ligne :
if(!$match && preg_match($v'redirreg'],$url,$match)){
Peut-être dois-je recréer une fonction ? Modifier le Router ? ( code où j'ai quasiment rien compris pendant le tuto ^^ ).
Merci d'avance.
Ok, c'est bien ce que je me disais.
Sinon afin de pouvoir faire la différence entre les deux, je dois modifier la class Router ?
Si c'est cela, ça a être compliqué pour moi ^^.
Peut-être en créant une nouvelle fonction redirect prenant en compte deux arguments (:args:) ?
J'ai essayé de différencier le slug de la rubrique et celui de la sous rubrique, mais j'ai toujours la même erreur, bizarre.
J'ai trouvé une pseudo solution en fait,
Router::connect('rubrique/*/:slug','articles/srubrik/slug:([a-z0-9\-]+)');
srubrik étant une fonction renvoyant tous les articles d'une telle sous-rubrique
L'url ressemble du coup à rubrique/slugdemarubrique/slugdemasousrubrique
Par contre si je veux rubrique/slugdemarubrique/slugdemasousrubrique/slugdemonarticle ca ne marche pas...
Je ne suis pas sorti de l'auberge ^^
Peux-tu expliquer 'en gros' comment faire pour différencier les deux slugs ?
J'ai juste à modifier le fichier conf ?
Je vais regarder encore une fois le tuto a propos des Routes ce soir mais je suis pas sur de comprendre...
Merci.
PS : Désolé du double post.