From 6aa12ae5f556ab884b7705379c41a566df86d028 Mon Sep 17 00:00:00 2001 From: "Paul Buetow (pluto.buetow.org)" Date: Sun, 15 Sep 2013 11:51:10 +0200 Subject: temp remove includedirs tag, perltidy indention set to 2, initial XML::LibXML --- Xerl/Page/Menu.pm | 136 +++++++++++++++++++++++++++--------------------------- 1 file changed, 68 insertions(+), 68 deletions(-) (limited to 'Xerl/Page/Menu.pm') diff --git a/Xerl/Page/Menu.pm b/Xerl/Page/Menu.pm index 0ba9568..3bd158b 100644 --- a/Xerl/Page/Menu.pm +++ b/Xerl/Page/Menu.pm @@ -37,95 +37,95 @@ use Xerl::Tools::FileIO; use Xerl::XML::Element; sub generate($;$) { - my Xerl::Page::Menu $self = $_[0]; - my Xerl::Page::Configure $config = $self->get_config(); + my Xerl::Page::Menu $self = $_[0]; + my Xerl::Page::Configure $config = $self->get_config(); - my @site = split /\//, $config->get_site(); - my @compare = @site; - my $site = pop @site; + my @site = split /\//, $config->get_site(); + my @compare = @site; + my $site = pop @site; - my ( $content, $siteadd ) = ( 'content/', '' ); + my ( $content, $siteadd ) = ( 'content/', '' ); - my Xerl::XML::Element $menuelem = - $self->get_menu( $content, $siteadd, shift @compare ); + my Xerl::XML::Element $menuelem = + $self->get_menu( $content, $siteadd, shift @compare ); + $self->push_array($menuelem) + if $menuelem->first_array()->array_length() > 1; + + 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; + } - 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; - } - - return undef; + return undef; } 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)$/; - - my Xerl::Tools::FileIO $io = Xerl::Tools::FileIO->new( - path => $config->get_hostpath() . $content, - basename => 1, - ); - - unless ( $io->exists() ) { - Xerl::Main::Global::REDIRECT( $config->get_404() ); - $config->set_finish_request(1); + 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)$/; + + my Xerl::Tools::FileIO $io = Xerl::Tools::FileIO->new( + path => $config->get_hostpath() . $content, + basename => 1, + ); + + unless ( $io->exists() ) { + Xerl::Main::Global::REDIRECT( $config->get_404() ); + $config->set_finish_request(1); + } + + $io->dslurp(); + my $dir = $io->get_array(); + + my ( @prec, @dir ); + map { + if (/^\d+\..+\./) { push @prec, $_ } + else { push @dir, $_ } } + grep { + $_ !~ /^home\.xml$/i + && $_ !~ /\.feed\.xml$/i + && $_ !~ /\.hide\.xml$/i + } @$dir; - $io->dslurp(); - my $dir = $io->get_array(); + my Xerl::XML::Element $root = Xerl::XML::Element->new(); + my Xerl::XML::Element $menu = Xerl::XML::Element->new(); - my ( @prec, @dir ); - map { - if (/^\d+\..+\./) { push @prec, $_ } - else { push @dir, $_ } - } - grep { - $_ !~ /^home\.xml$/i - && $_ !~ /\.feed\.xml$/i - && $_ !~ /\.hide\.xml$/i - } @$dir; + $menu->set_name('menu'); - my Xerl::XML::Element $root = Xerl::XML::Element->new(); - my Xerl::XML::Element $menu = Xerl::XML::Element->new(); + for ( $issubsection ? ( @dir, @prec ) : ( 'home.xml', @dir, @prec ) ) { + my ($site) = /(.*)$pattern/o; - $menu->set_name('menu'); + $site =~ s#\.$#/home#o; + $site =~ s/^\d+\.//; - for ( $issubsection ? ( @dir, @prec ) : ( 'home.xml', @dir, @prec ) ) { - my ($site) = /(.*)$pattern/o; + my $linkname = $site; + $linkname =~ s/(?:\d+\.)?(.)/\U$1/o; + $compare .= '/' if $linkname =~ s#(.*/)[^/]+$#$1#; - $site =~ s#\.$#/home#o; - $site =~ s/^\d+\.//; - - my $linkname = $site; - $linkname =~ s/(?:\d+\.)?(.)/\U$1/o; - $compare .= '/' if $linkname =~ s#(.*/)[^/]+$#$1#; - - my Xerl::XML::Element $item = Xerl::XML::Element->new( - params => { link => "?site=$siteadd$site" }, - text => $linkname - ); + my Xerl::XML::Element $item = Xerl::XML::Element->new( + params => { link => "?site=$siteadd$site" }, + text => $linkname + ); - $compare =~ s/^(\d+\.)//; - $item->set_name( - lc $linkname eq lc $compare ? 'activemenuitem' : 'menuitem' ); + $compare =~ s/^(\d+\.)//; + $item->set_name( + lc $linkname eq lc $compare ? 'activemenuitem' : 'menuitem' ); - $item->set_prev($menu); - $menu->push_array($item); - } + $item->set_prev($menu); + $menu->push_array($item); + } - $root->push_array($menu); - $menu->set_prev($root); + $root->push_array($menu); + $menu->set_prev($root); - return $root; + return $root; } 1; -- cgit v1.2.3