On Jul 25, 2007, at 3:23 PM, Oleg Pronin wrote:

I need to plug in application B in A, so it could extend A's actions under some namespace.

I understand this is not so simple, but i have no other way.
I write a dynamic admin interface (Uniadm) that will be plugged in to various projects.
It will extend functionallity of a project it was plugged in to.
Admin interface will be available under www.myappA_site/uniadm/.
Both Uniadm and MyApp are catalyst projects itselves.

Is there a better (easier) way to solve my problem?

Not making the uniadm it's own project would make it much easier, instead just make it a controller base class you can inherit in each application that needs it.

I have a similar "universal admin" controller that is built this way...

package Admin::Base;
use strict;
use warnings;
use base qw( Catalyst::Controller );

sub main : Chained( 'base' ) PathPart('') Args(0) {
        my ( $self, $c ) = @_;
        $c->stash->{ 'template' } = 'admin/index.tt2';
}

sub list_objects : Chained('base') PathPart('list') Args(0) { ... }
# more admin functions follow, all using chained dispatch methods...
1;


Then in the project that needs an admin interface...

package MyApp::Controller::Admin;
use strict;
use warnings;
use base qw( Admin::Base );

sub base : Chained('/') PathPart('admin') Args(0) {}

1;

--
Jason Kohles
[EMAIL PROTECTED]
http://www.jasonkohles.com/
"A witty saying proves nothing."  -- Voltaire



_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to