CGI-WebToolkit

 view release on metacpan or  search on metacpan

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

				#AutoCommit => 1,
				#PrintWarn  => 1,
			})
	    or __die("Could not connect to database");
    
    return 1;
}

sub __disconnect_from_db
{
	my ($self) = @_;
	
	return $self->{'dbh'}->disconnect();
}

sub __init
{
	my ($self, %options) = @_;
	
	my $optdefaults =
		{
			# path parameters
			publicpath => '',
			publicurl => '',
			privatepath => '',
			cgipath => '',
			cgiurl => '',

			# configuration parameters
			config => "",
		
			# database parameters
			engine => "mysql",
			user => "guest",
			name => "",
			password => "",
			host => "localhost",
			port => "",
		
			# template parameters
			templatefallbacks => ['core'],
			allowmacros => 1,
			
			# form creation parameters
			# ...
		
			# session parameters
			idparam => 'sid',
			sessiontable => '',
			sessiontimeout => 1800,
			
			# user/rights management
			usertable => '',
			checkrights => 0,
			
			# caching
			cachetable => '',
			allowclearcache => 1,
			clearcacheparam => 'clearcache',
			
			# locale
			phrasetable =>'',
			defaultlanguage => 'en_GB',
			
			# workflow parameters
			workflowparam => 'to',
			entryaction => 'core.default',
			modules => [],
			
			# combinable files
			cssfiles => [],
			jsfiles => [],
			
			# triggers
			onsessionstart => '',
			onsessionoutofdate => '',
			
			# uploads
			uploadmaxsize => (1024 * 1024 * 6), # 6MB
		};

	# check if config filename is given -> if so, load it first
	# (so that it can be overwritten by settings from %options later!)
	my $cfgopts = $optdefaults;
	foreach my $key (keys %options) {
		my $name = lc $key;
		   $name =~ s/^\-*//;
		if ($name eq 'config') {
			$cfgopts = __load_config_file( $options{$key}, $optdefaults );
		}
	}
	
	my $opts = __parse_params( \%options, $cfgopts );
	map { $self->{$_} = $opts->{$_} } keys %{$opts};
	
	# add 'default' theme as last fallback if not already added
	push @{$self->{'templatefallbacks'}}, 'core'
		if !scalar @{$self->{'templatefallbacks'}}
			|| $self->{'templatefallbacks'}->[-1] ne 'core';
	
	$self->{'dbh'} = undef;
	$self->{'session'} = undef;
	$self->{'session_id'} = undef;
	
	# caches for function refs.
	$self->{'workflow_function_cache'} = {};
	$self->{"template_function_cache"} = {};
	$self->{"access_function_cache"}   = {};
	
	$self->__load_session();
	
	# common placeholders
	$self->{'common_placeholders'} = {
		'script_url' 	 => (exists $ENV{'SCRIPT_NAME'} ? $ENV{'SCRIPT_NAME'} : '?'),
		'public_url' 	 => $self->{'publicurl'},
		'clear'			 => '<div class="clear"></div>',
		'session_id'	 => $self->{'session_id'},
		'do_nothing_url' => 'javascript:void(1);',
		'javascript_url' => (exists $ENV{'SCRIPT_NAME'} ? $ENV{'SCRIPT_NAME'} : '').'?to=core.combine.javascript',
		'css_url' 		 => (exists $ENV{'SCRIPT_NAME'} ? $ENV{'SCRIPT_NAME'} : '').'?to=core.combine.css',
	};



( run in 1.535 second using v1.01-cache-2.11-cpan-ceb78f64989 )