diff options
| author | Paul Buetow (pluto.buetow.org) <paul@buetow.org> | 2013-09-28 22:18:24 +0200 |
|---|---|---|
| committer | Paul Buetow (pluto.buetow.org) <paul@buetow.org> | 2013-09-28 22:18:24 +0200 |
| commit | fd7590d71aeee380e7c87ed77de592df1f30f5ef (patch) | |
| tree | 16884f61fbf6b75246784f8209cfa08786157fd4 /Xerl/Page | |
| parent | 340aa6d143806c2c800d0cb44e0e3ed5dd6e3a15 (diff) | |
Some small refactoring
Diffstat (limited to 'Xerl/Page')
| -rw-r--r-- | Xerl/Page/Configure.pm | 8 | ||||
| -rw-r--r-- | Xerl/Page/Content.pm | 1 | ||||
| -rw-r--r-- | Xerl/Page/Menu.pm | 2 | ||||
| -rw-r--r-- | Xerl/Page/Request.pm | 4 | ||||
| -rw-r--r-- | Xerl/Page/Templates.pm | 32 |
5 files changed, 30 insertions, 17 deletions
diff --git a/Xerl/Page/Configure.pm b/Xerl/Page/Configure.pm index 38d94e1..e359c52 100644 --- a/Xerl/Page/Configure.pm +++ b/Xerl/Page/Configure.pm @@ -63,18 +63,23 @@ sub defaults($) { unless ( -d $self->get_hostroot() . $self->get_host() ) { my $redirect = $self->get_hostroot() . 'redirect:' . $self->get_host(); + if ( -f $redirect ) { my Xerl::Tools::FileIO $file = Xerl::Tools::FileIO->new( 'path' => $redirect ); $file->fslurp(); + my $location = $file->shift(); Xerl::Main::Global::REDIRECT($location); $self->set_finish_request(1); } + my $alias = $self->get_hostroot() . 'alias:' . $self->get_host(); + if ( -f $alias ) { my Xerl::Tools::FileIO $file = Xerl::Tools::FileIO->new( 'path' => $alias ); + $file->fslurp(); $self->set_host( $file->shift() ); } @@ -113,7 +118,7 @@ sub defaults($) { $self->set_contentpath( $self->get_hostpath() . 'content/' ); - # $self->set_ipv6( $ENV{REMOTE_ADDR} =~ /:/ ? 1 : 0 ); + $self->set_is_ipv6( $ENV{REMOTE_ADDR} =~ /:/ ? 1 : 0 ); return undef; } @@ -123,6 +128,7 @@ sub eval($$) { my $val = $_[1]; $val =~ s/^!(.+)/`$1`/eo; + return $val; } diff --git a/Xerl/Page/Content.pm b/Xerl/Page/Content.pm index 401ec5a..c56db72 100644 --- a/Xerl/Page/Content.pm +++ b/Xerl/Page/Content.pm @@ -16,6 +16,7 @@ use Xerl::Base; use Xerl::XML::Reader; use Xerl::XML::Element; + use Xerl::Page::Rules; use Xerl::Page::Configure; diff --git a/Xerl/Page/Menu.pm b/Xerl/Page/Menu.pm index 80923ce..62cb58d 100644 --- a/Xerl/Page/Menu.pm +++ b/Xerl/Page/Menu.pm @@ -35,6 +35,7 @@ sub generate($;$) { for my $s (@site) { $content .= "$s.sub/"; $siteadd .= "$s/"; + $menuelem = $self->get_menu( $content, $siteadd, shift @compare ); $self->push_array($menuelem) if $menuelem->first_array()->array_length() > 1; @@ -46,6 +47,7 @@ sub generate($;$) { sub get_menu($$$$) { my Xerl::Page::Menu $self = $_[0]; my Xerl::Page::Configure $config = $self->get_config(); + my ( $content, $siteadd, $compare ) = ( @_[ 1 ... 2 ], lc $_[3] ); my $issubsection = $content =~ m{\.sub/$}; my $pattern = qr/\.(?:xml)|(?:sub)$/; diff --git a/Xerl/Page/Request.pm b/Xerl/Page/Request.pm index cb3a876..77f893d 100644 --- a/Xerl/Page/Request.pm +++ b/Xerl/Page/Request.pm @@ -34,9 +34,9 @@ sub parse($) { return $self unless defined; my $params = ''; - for ( split /&/ ) { - # List context uses ($1,$2) as method args + # List context uses ($1,$2) as method args + for ( split /&/ ) { $self->setval(/(.+?)=(.+)/); $params .= "&$1=$2" if $1 ne 'site'; } diff --git a/Xerl/Page/Templates.pm b/Xerl/Page/Templates.pm index c327cbb..75b3807 100644 --- a/Xerl/Page/Templates.pm +++ b/Xerl/Page/Templates.pm @@ -16,9 +16,11 @@ use Time::HiRes 'tv_interval'; use Digest::MD5; use Xerl::Base; + use Xerl::Page::Configure; use Xerl::Page::Content; use Xerl::Page::Menu; + use Xerl::Tools::FileIO; use constant RECURSIVE => 1; @@ -160,20 +162,6 @@ sub parsetemplate($$;$) { return undef; } -# Static sub -sub PARSELINE($$$;$) { - my Xerl::Page::Configure $config = $_[0]; - my ( $sep, $line, $foundflag ) = @_[ 1 .. 3 ]; - - $$line =~ s/$sep(!)?(.+?)$sep/ - defined $1 ? `$2` : - (ref $config->getval($2) eq 'ARRAY') - ? join '', @{$config->getval($2)} : - $config->getval($2)/eg and $$foundflag = 1; - - return undef; -} - sub print($;$) { my Xerl::Page::Templates $self = $_[0]; my Xerl::Page::Configure $config = $self->get_config(); @@ -187,6 +175,7 @@ sub print($;$) { $line =~ s#^Content-Type.*#Content-Type: text/plain#i; $hflag = 0; } + $line =~ s/ +/ /g; redo if !$flag and $line =~ s/<perl>((?:.|\n)*?)<\/perl>/eval $1/ego; @@ -212,10 +201,25 @@ sub print($;$) { $line =~ s/!!LT!!/</g; $line =~ s/!!GT!!/>/g; $line =~ s#!!URL\((.+?)\)!!#<a href="$1">$1</a>#g; + print $line; } return undef; } +# Static sub +sub PARSELINE($$$;$) { + my Xerl::Page::Configure $config = $_[0]; + my ( $sep, $line, $foundflag ) = @_[ 1 .. 3 ]; + + $$line =~ s/$sep(!)?(.+?)$sep/ + defined $1 ? `$2` : + (ref $config->getval($2) eq 'ARRAY') + ? join '', @{$config->getval($2)} : + $config->getval($2)/eg and $$foundflag = 1; + + return undef; +} + 1; |
