This was exactly the answer I was looking for %) Because I already
read and reread the docs so there was not much sense to point me there
again.
Maybe you should make the docs clearer..
Firstly, for me it wasn't obvious what first parameter from addRoute
it's just a name ;o) And "default" is also just a name. (I took a look
into the sources, so now I understand)
Second, it was not obvious that "default" rule is just as other rules
just with a larger match criteria..
Also I thought what there can be only one rule with "big" criteria of
matching, and it name always should be "default"..
Oh, whatever, I do understand now, so thanks a lot for listing me %)
On Fri, Feb 29, 2008 at 7:50 PM, Eric Coleman <[EMAIL PROTECTED]> wrote:
> On Feb 29, 2008, at 1:33 PM, Nicolae Namolovan wrote:
>
> > :controller/:action/:id do not support /key/value/ syntax.
> >
> > I need support for /key/value/ param, and for some controller actions
> > /JUSTONEVALUE/, with one default rewrite rule. This actually what mine
> > patch is doing.
> >
>
> yeah.... so add the above route... it should work fine.
>
> If your route doesn't match :controller/:action/:id it should
> match :controller/:action/*
>
> I don't understand what the problem here is, or why you need the patch.
>
>
>
> > On Fri, Feb 29, 2008 at 7:20 PM, Eric Coleman <[EMAIL PROTECTED]>
> > wrote:
> >> You don't even need a regex route really... You could define a
> >> route as:
> >>
> >> :controller/:action/:id
> >>
> >> and getParam('id') => 1 in your example.
> >>
> >> Regards,
> >> Eric
> >>
> >>
> >>
> >> On Feb 29, 2008, at 1:14 PM, Nicolae Namolovan wrote:
> >>
> >>> Thanks guys, but I think there is no way to change
> >>> Zend_Controller_Router_Route_Module behavior (what by default is the
> >>> default router) without patching it. What I've done, just copy/paste
> >>> it (Zend\Controller\Router\Route\Module.php) in mine library
> >>> directory, and then added after this
> >>>
> >>> " for ($i = 0; $i < $numSegs; $i = $i + 2) {
> >>> $key = urldecode($path[$i]);
> >>> $val = isset($path[$i + 1]) ? urldecode($path[$i +
> >>> 1]) : null;
> >>> $params[$key] = $val;
> >>> }
> >>> "
> >>>
> >>> This:
> >>>
> >>> " if ( ($numSegs % 2) == 1) {
> >>> $params[0] = urldecode($path[$numSegs - 1]);
> >>> }
> >>> "
> >>>
> >>> And to change the default router I did this
> >>>
> >>> $compat = new New_Route_Module(); //the new name of the
> >>> patched class
> >>> $rewriteRouter = new Zend_Controller_Router_Rewrite();
> >>> $rewriteRouter->addRoute('default', $compat);
> >>> $front->setRouter($rewriteRouter);
> >>>
> >>> Now if there's a param without key, it will be accessible from a
> >>> controller at $this->_getParam(0).. Just what I wanted.. And still
> >>> have the key->param feature.. Great.
> >>>
> >>> On Fri, Feb 29, 2008 at 4:39 PM, Vincent <[EMAIL PROTECTED]> wrote:
> >>>> You might be interested in
> >>>>
> http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.regex
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On 29/02/2008, Nicolae Namolovan <[EMAIL PROTECTED]> wrote:
> >>>>> Yes, but I want to do one rewrite route for all actions.. I mean
> >>>>> change the default router.
> >>>>> For example, very often I need just one paramater, so it doesn't
> >>>>> make
> >>>>> too much sense to pass param name too..
> >>>>> I'd like to get one_param from /controller/action/one_param..
> >>>>> Any way to do that with getParam() ? And how I must rewrite the
> >>>>> route
> >>>>> to leave the /key/value behavior and just add /value behavior..
> >>>>>
> >>>>>
> >>>>> On Wed, Feb 27, 2008 at 5:07 PM, James Dempster <[EMAIL PROTECTED]
> >>>>> >
> >>>> wrote:
> >>>>>> You might find that this is more what you are looking for?
> >>>>>>
> >>>>
> http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.basic
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Wed, Feb 27, 2008 at 12:57 PM, Nicolae Namolovan
> >>>> <[EMAIL PROTECTED]>
> >>>>>> wrote:
> >>>>>>> Is it possible to do a default router with same
> >>>>>>> characteristics as
> >>>> current
> >>>>>> one:
> >>>>>>>
> >>>>>>> Module + controller + action + params:
> >>>>>>>
> >>>>>>> But also with
> >>>>>>> Module + controller + action + 1param:
> >>>>>>> Example:
> >>>>>>> /some/list/1
> >>>>>>>
> >>>>>>> And getParam(0) should return 1.. ?
> >>>>>>>
> >>>>>>> --
> >>>>>>> Sincerely,
> >>>>>>> Nicolae Namolovan.
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> /James
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Sincerely,
> >>>>>
> >>>>> Nicolae Namolovan.
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Vincent
> >>>
> >>>
> >>>
> >>> --
> >>> Sincerely,
> >>> Nicolae Namolovan.
> >>
> >>
> >
> >
> >
> > --
> > Sincerely,
> > Nicolae Namolovan.
>
>
--
Sincerely,
Nicolae Namolovan.