CGI-Lazy

 view release on metacpan or  search on metacpan

lib/CGI/Lazy.pm  view on Meta::CPAN

sub image {
	my $self = shift;

	return CGI::Lazy::Image->new($self);
}

#------------------------------------------------------------
sub javascript {
	my $self = shift;

	return CGI::Lazy::Javascript->new($self);
}

#------------------------------------------------------------
sub config {
	my $self = shift;

	return $self->{_config};
}

#------------------------------------------------------------
sub db {
	my $self = shift;

	return $self->{_db};
}

#------------------------------------------------------------
sub dbh {
	my $self = shift;

	return $self->db->dbh;
}

#------------------------------------------------------------
sub errorHandler {
	my $self = shift;

	return $self->{_errorHandler};
}

#------------------------------------------------------------
sub header {
	my $self = shift;

	my %args;

	if (scalar @_ % 2 == 0) {
		%args = @_;
	} else {
		my $ref = shift;
		%args = %$ref;
	}

	my $explicitcookies = $args{-cookie} || []; #cookies set explictly in the instance
	my $lazycookie;

	if ($self->plugin) { #it's possible that this object hasn't been built- if the config object doesn't create for instance.
		if ($self->plugin->session && $self->session) {
			$lazycookie = $self->cookie(
						-name		=> $self->plugin->session->{sessionCookie},
						-expires	=> $self->plugin->session->{expires},
						-value 		=> $self->session->sessionID,
			);
		}
	} else { #something really bad happened.  Return a header anyway, so we can show an error message
		return $self->SUPER::header();
	}

	$args{-cookie} = [$lazycookie, @$explicitcookies];

	return $self->SUPER::header(%args);
}

#------------------------------------------------------------
sub jswrap {
	my $self = shift;
	my $js = shift;

	my $jspre = "\n<script type='text/javascript'>\n<!--\n";
	my $jspost = "\n-->\n</script>\n";
	return $jspre.$js.$jspost;
}

#------------------------------------------------------------
sub mod_perl {
	my $self = shift;

	return $self->{_mod_perl};
}

#------------------------------------------------------------
sub new {
	my $class = shift;
	my $vars = shift;

	my $sessionID;

	my $self = bless $class->SUPER::new(@_), $class;

	$self->{_vars} 		= $vars;
	$self->{_errorHandler} 	= CGI::Lazy::ErrorHandler->new($self);
	$self->{_config}	= CGI::Lazy::Config->new($self, $vars);
	$self->{_plugin}	= CGI::Lazy::Plugin->new($self);
	$self->{_db} 		= CGI::Lazy::DB->new($self);

	if ($self->plugin->session) {
		$self->{_session} = CGI::Lazy::Session->open($self, $sessionID);
	}

	if ($self->plugin->authn) {
		$self->{_authn}	= CGI::Lazy::Authn->new($self);
	}

	if ($self->plugin->authz) {
		$self->{_authz}	= CGI::Lazy::Authz->new($self);
	}

	if ($self->plugin->mod_perl) {
		require CGI::Lazy::ModPerl;
		$self->{_mod_perl} = CGI::Lazy::ModPerl->new($self);

lib/CGI/Lazy.pm  view on Meta::CPAN

	return CGI::Lazy::Widget->new($self);
}

1;

__END__

=head1 LEGAL

#===========================================================================

Copyright (C) 2007 by Nik Ogura. All rights reserved.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

Bug reports and comments to nik.ogura@gmail.com. 

#===========================================================================

=head1 NAME

CGI::Lazy

=head1 SYNOPSIS

	use CGI::Lazy;

	our $q = CGI::Lazy->new({

					tmplDir 	=> "/path/to/templates", 	#not off doc root

					jsDir		=>  "/js",			#off doc root

					plugins 	=> {

						mod_perl => {

							PerlHandler 	=> "ModPerl::Registry",

							saveOnCleanup	=> 1,

						},

						dbh 	=> {

							dbDatasource 	=> "dbi:mysql:somedatabase:localhost",
							
							dbUser 		=> "dbuser",

							dbPasswd 	=> "letmein",

							dbArgs 		=> {"RaiseError" => 1},

						},

						session	=> {

							sessionTable	=> 'SessionData',

							sessionCookie	=> 'frobnostication',

							saveOnDestroy	=> 1,

							expires		=> '+15m',

						},

					},

				});


	print $q->header,

	      $q->start_html({-style => {-src => '/css/style.css'}}),

	      $q->javascript->modules(); 



	print $q->template('topbanner2.tmpl')->process({ logo => '/images/funkyimage.png', mainTitle => 'Funktastic', secondaryTitle => $message, versionTitle => '0.0.1', messageTitle => 'w00t!', });



	print $q->template('navbar1.tmpl')->process({

						one 		=> 'link one',

						one_link	=> '/blah.html',

						two		=> 'link two',

						two_link	=> '/blah.html',

						three		=> 'link three',

						three_link	=> '/blah.html',

						four		=> 'link four',

						four_link	=> '/blah.html',

						});

	print $q->template('fileMonkeyHelp.tmpl')->process({helpMessage => 'help text here'});

	print $q->template('fileMonkeyMain.tmpl')->process({mainmessage => "session info: <br> name: ".$q->session->data->name . "<br> time: ".$q->session->data->time});

	print $q->template('footer1.tmpl')->process({version => $q->lazyversion});



=head1 DESCRIPTION

CGI::Lazy was designed to simply abstract some of the more common cgi scripting tasks because the author finally got sick of writing the same code by hand for every new site or client that comes along.  It is my attempt to extend the wonderful CGI.pm...

There are plenty of webdev frameworks out there, many are far more full- featured.  Often these solutions are so monstrous that they are overkill for small apps, or so optimized that they require full admin rights on the server they run on.  CGI::Laz...

Lazy has also been written to be useful in a mod_perl environment if that is your pleasure.  The wonders of persistence and namespaces have been (again, hopefully) all accounted for.  It should plug into your mod_perl environment with little or no fu...



( run in 1.257 second using v1.01-cache-2.11-cpan-63c85eba8c4 )