Sujet : "Routage" et règles prioritaires?

Bonsoir,

J'ai un petit problème au niveau du dispatch dans mon controller frontal!
J'ai écrits ces deux règles (entre autre):

         // toute url de la forme module/action-x.html
        'route.parameter.rules.complexp.pattern' => '/(:module)/(:action)-(:page).html',
        'route.parameter.rules.complexp.default.module' => 'index',
        'route.parameter.rules.complexp.default.action' => 'index',
        'route.parameter.rules.complexp.default.page' => 1,
        

        // toute url de la forme Medias/Videos-x-blabla.html
        'route.parameter.rules.video.pattern' => '/Medias/Videos-(:idVideo)-(:osef).html',
        'route.parameter.rules.video.default.module' => 'medias',
        'route.parameter.rules.video.default.action' => 'videos'

Seulement, la deuxième règles prend toujours le pas sur la première, même si l'url est:

/Medias/Videos-x.html

Pour contrer ça, j'ai mis une rustine que voilà:

        'route.parameter.rules.videolist.pattern' => '/Medias/Videos-(:page).html',
        'route.parameter.rules.videolist.default.module' => 'medias',
        'route.parameter.rules.videolist.default.action' => 'videos',

mais ça ne plait pas trop... hmm
Pourquoi si (:osef) n'est pas renseigné, il utilise malgré tout la règle video?
Bug? mauvaise façon d'aborder les choses?
Merci d'avance pour les réponses wink

Dernière fois dit par jojolapine (05 Feb. 2010 22:22)

2

Re : "Routage" et règles prioritaires?

Hey smile,

Je vais regarder mon heuristique, et je te redis ce qu'il en est wink. Si tu pouvais m'envoyer du code par mail, ce serait plus pratique à tester de mon côté (me refanner toute l'archi à chaque fois, c'est chiant, même avec Hoa CLI !).

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : "Routage" et règles prioritaires?

je te fait ça demain soir!

Re : "Routage" et règles prioritaires?

Yep,

Alors me revoilà!
Donc si j'ai les paramètres suivants pour mon routage:

    array(
        'controller.class' => '(:controller:ls/-//U:)Controller',
        'controller.file' => '(:controller:ls/-//U:).php',
        'controller.directory' => 'hoa://Application/Controller/',
            
        'action.class' => '(:action:ls/-//U:)Controller',
        'action.method' => '(:action:ls/-//U:)Action',
        'action.file' => '(:action:ls/-//U:).php',
        'view.action' => '(:controller:ls/-//U:)/(:action:ls/-//U:).phtml' ,
    
    
    
        
        
        'route.type' => 'Rewrite',
        'route.parameter.base' => '/Developpement/Hoa_Framework/Application/Public',
        
        'route.parameter.rules.default.pattern' => '/(:action).html',
        'route.parameter.rules.default.default.module' => 'index',
        'route.parameter.rules.default.default.action' => 'index',
        
        'route.parameter.rules.defaultpage.pattern' => '/(:action)-(:page).html',
        'route.parameter.rules.defaultpage.default.module' => 'index',
        'route.parameter.rules.defaultpage.default.action' => 'index',
        'route.parameter.rules.defaultpage.default.page' => 1,
        
        'route.parameter.rules.complex.pattern' => '/(:module)/(:action).html',
        'route.parameter.rules.complex.default.module' => 'index',
        'route.parameter.rules.complex.default.action' => 'index',
        
        'route.parameter.rules.complexpage.pattern' => '/(:module)/(:action)-(:page).html',
        'route.parameter.rules.complexpage.default.module' => 'index',
        'route.parameter.rules.complexpage.default.action' => 'index',
        'route.parameter.rules.complexpage.default.page' => 1,
        
/*
        'route.parameter.rules.videolist.pattern' => '/Medias/Videos-(:page).html',
        'route.parameter.rules.videolist.default.module' => 'medias',
        'route.parameter.rules.videolist.default.action' => 'videos',
*/
        
        'route.parameter.rules.video.pattern' => '/Medias/Videos-(:idVideo)-(:osef).html',
        'route.parameter.rules.video.default.module' => 'medias',
        'route.parameter.rules.video.default.action' => 'videos'
    )

Donc la règles "videolist" inactive, une url telle que Medias/Videos-2.html passe par la règle "video" (alors que ça ne satisfait pas le masque), et je voudrais qu'elle passe par la règle "complexpage"...

Voilà l'archive de l'application: http://mulliezj.fr/share/jojolapine.tar (/!\ ~269 Mo) (patienter un bon 1/4 d'heure depuis l'heure du post wink le temps que ça upload)

Merci d'avance!!!

EDIT: ~ 4min de temps restant :-°

Dernière fois dit par jojolapine (09 Feb. 2010 18:37)

5

Re : "Routage" et règles prioritaires?

Je teste dès que j'ai du temps, mais t'as essayé de mettre tes règles strictes avant les plus génériques ? Comprendre mettre tes dernières règles qui commencent par Video en premier dans la liste ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : "Routage" et règles prioritaires?

Oups, j'avais zappé d'enlever une série de vidéos :-° du coup ça devient vachement plus léger! (~15Mio)

7

Re : "Routage" et règles prioritaires?

Je m'y remets smile.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

8

Re : "Routage" et règles prioritaires?

Si tu déplaces ta règle complexpage à la fin de la liste, ça donne quoi ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : "Routage" et règles prioritaires?

Je laisse ça en suspend, j'ai écrit des règles spécifiques, et pour l'instant ça fonctionne!
J'ai pas le temps de refaire ça en plus propre wink

Après le rush! je reviendrais surement smile