Create a getSkin() method to share skin rules in all portal pages (#605)

This commit is contained in:
Clément Oudot 2013-08-20 13:36:06 +00:00
parent ec35b64736
commit e33ee53afc
3 changed files with 29 additions and 17 deletions

View File

@ -7,7 +7,6 @@ use strict;
# Load portal module
my $portal = Lemonldap::NG::Portal::MailReset->new();
my $skin = $portal->{portalSkin};
my $skin_dir = $portal->getApacheHtdocsPath() . "/skins";
my $portal_url = $portal->{portal};
my $portalPath = $portal->{portal};
@ -17,6 +16,8 @@ $portalPath =~ s#[^/]+\.pl$##;
# Process
$portal->process();
my $skin = $portal->getSkin();
# Template creation
my $template = HTML::Template->new(
filename => "$skin_dir/$skin/mail.tpl",

View File

@ -17,7 +17,6 @@ our $VERSION = '1.3.0';
sub display {
my $self = shift;
my $skin = $self->{portalSkin};
my $skin_dir = $self->getApacheHtdocsPath() . "/skins";
my ( $skinfile, %templateParams );
my $http_error = $self->param('lmError');
@ -308,21 +307,8 @@ sub display {
}
# Fill sessionInfo to eval rule if empty (unauthenticated user)
$self->{sessionInfo}->{_url} ||= $self->{urldc};
$self->{sessionInfo}->{ipAddr} ||= $self->ipAddr;
# Load specific skin from skinRules
if ( $self->{portalSkinRules} ) {
foreach my $skinRule ( sort keys %{ $self->{portalSkinRules} } ) {
if ( $self->safe->reval($skinRule) ) {
$skin = $self->{portalSkinRules}->{$skinRule};
$self->lmLog( "Skin $skin selected from skin rule", 'debug' );
}
}
}
## Common template params
my $skin = $self->getSkin();
my $portalPath = $self->{portal};
$portalPath =~ s#^https?://[^/]+/?#/#;
$portalPath =~ s#[^/]+\.pl$##;

View File

@ -1472,7 +1472,7 @@ sub stamp {
## @method string convertSec(int sec)
# Convert seconds to hours, minutes, seconds
# @param $sec number of seconds
# @param $sec number of seconds
# @return a formated time
sub convertSec {
my ( $self, $sec ) = splice @_;
@ -1500,6 +1500,31 @@ sub convertSec {
return ( $day, $hrs, $min, $sec );
}
## @method string getSkin()
# Return skin name
# @return skin name
sub getSkin {
my ($self) = splice @_;
my $skin = $self->{portalSkin};
# Fill sessionInfo to eval rule if empty (unauthenticated user)
$self->{sessionInfo}->{_url} ||= $self->{urldc};
$self->{sessionInfo}->{ipAddr} ||= $self->ipAddr;
# Load specific skin from skinRules
if ( $self->{portalSkinRules} ) {
foreach my $skinRule ( sort keys %{ $self->{portalSkinRules} } ) {
if ( $self->safe->reval($skinRule) ) {
$skin = $self->{portalSkinRules}->{$skinRule};
$self->lmLog( "Skin $skin selected from skin rule", 'debug' );
}
}
}
return $skin;
}
###############################################################
# MAIN subroutine: call all steps until one returns something #
# different than PE_OK #