Clayton Scott wrote:
On Wed, Dec 3, 2008 at 6:03 AM, Richard Jones <[EMAIL PROTECTED]>wrote:

As in Catalyst action. Currently doing this:

my $action = (split '/', $ENV{PATH_INFO})[1];

So in a request http://localhost/myapp/admin/list_users, the action would
be 'admin', so I can highlight the appropriate navigation link.

But I'd assume there's a better way, something build-in to CGI::App?



The simplest idea is to just do this:

my $action = (split '/', $self->query->path_info)[1];

Yes, thanks, that gave me the idea to use c.query.path_info in the template (using CAP::TT) to achieve the desired result. Like this:

[% IF c.query.path_info.match('^/foo') %]id="selected"[% END %]

If you are doing path based dispatching have you looked at the Routes Plugin
( http://search.cpan.org/dist/CGI-Application-Plugin-Routes/ )
or the path_info option to mode_param (
http://search.cpan.org/dist/CGI-Application/lib/CGI/Application.pm#mode_param())?

Not using Routes, but am using CA::Dispatch. I don't think mode_param is going to help as it seems to be a 'setter' rather than being able to tell me the class that Dispatch loaded.

These options can make your life easier by setting the runmode (action) from
the information in the path_info and then you
can get the name of the current action via $self->current_run_mode.

I think it's $self->get_current_runmode, but it's not actually runmode I need, but the part of the url before it eg /myapp/foo/do_stuff translates to runmode/method do_stuff() in app Foo.pm, and it's 'foo' I'm after here.
--
Richard Jones

#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to