X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FModel%2FCDBI.pm;h=50e4d30f1106f151658b13e84083708615f37bb3;hb=ce828f4b7309670fc8b0ed826fd2455c4d5412bb;hp=ce93690d065c86d99ea98214ed2ab63852b15287;hpb=93f6780e2cd84eb4f9f6cfc578f42484bb2cf34b;p=maypole.git diff --git a/lib/Maypole/Model/CDBI.pm b/lib/Maypole/Model/CDBI.pm index ce93690..50e4d30 100644 --- a/lib/Maypole/Model/CDBI.pm +++ b/lib/Maypole/Model/CDBI.pm @@ -1,5 +1,6 @@ package Maypole::Model::CDBI; use strict; +use Class::C3; use Data::Dumper; @@ -26,7 +27,6 @@ will instead use Class::DBI classes provided. =cut use base qw(Maypole::Model::Base Class::DBI); -#use Class::DBI::Plugin::Type; use Class::DBI::Loader; use Class::DBI::AbstractSearch; use Class::DBI::Plugin::RetrieveAll; @@ -35,7 +35,7 @@ use Lingua::EN::Inflect::Number qw(to_PL); use attributes (); use Maypole::Model::CDBI::AsForm; -use Maypole::Model::CDBI::FromCGI; +use Maypole::Model::CDBI::FromCGI; use CGI::Untaint::Maypole; =head2 Untainter @@ -44,13 +44,24 @@ Set the class you use to untaint and validate form data Note it must be of type CGI::Untaint::Maypole (takes $r arg) or CGI::Untaint =cut + sub Untainter { 'CGI::Untaint::Maypole' }; -# or if you like bugs +=head2 add_model_superclass + +Adds model as superclass to model classes (if necessary) + +=cut -#use Class::DBI::FromCGI; -#use CGI::Untaint; -#sub Untainter { 'CGI::Untaint' }; +sub add_model_superclass { + my ($class,$config) = @_; + foreach my $subclass ( @{ $config->classes } ) { + next if $subclass->isa("Maypole::Model::Base"); + no strict 'refs'; + push @{ $subclass . "::ISA" }, $config->model; + } + return; +} __PACKAGE__->mk_classdata($_) for (qw/COLUMN_INFO/);