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/ ##
## ##
################################################################