summaryrefslogtreecommitdiff
path: root/Xerl/Page
diff options
context:
space:
mode:
Diffstat (limited to 'Xerl/Page')
-rw-r--r--Xerl/Page/Configure.pm8
-rw-r--r--Xerl/Page/Content.pm1
-rw-r--r--Xerl/Page/Menu.pm2
-rw-r--r--Xerl/Page/Request.pm4
-rw-r--r--Xerl/Page/Templates.pm32
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;