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/