=cut
-__PACKAGE__->mk_classdata($_) for qw( config init_done view_object );
+__PACKAGE__->mk_classdata($_) for qw( config init_done view_object model_classes_loaded);
__PACKAGE__->mk_accessors(
qw( params query objects model_class template_args output path
__PACKAGE__->init_done(0);
+__PACKAGE__->model_classes_loaded(0);
+
=head1 HOOKABLE METHODS
As a framework, Maypole provides a number of B<hooks> - methods that are
# Load custom model code, if it exists - nb this must happen after the
# unshift, to allow code attributes to work, but before adopt(),
# in case adopt() calls overridden methods on $subclass
- $class->load_model_subclass($subclass);
+ $class->load_model_subclass($subclass) unless ($class->model_classes_loaded());
$config->model->adopt($subclass) if $config->model->can("adopt");
}