#!/usr/bin/perl $version{'shalm'} = '1.00'; require "shalm.lib"; require $main::cfg{'path_lib'}.'/ycgi.pl'; $|=1; $debug = 0; &cfg(\%main::cfg, 'shalm.cfg'); ¶meter; $main::input{'tid'} = &datum(4); $main::input{'sys_script'} = $main::cfg{'script'}; unless ( $main::input{'link'} ) { $main::input{'link'} = $main::cfg{'file_index'}; } if ( $main::input{'target'} eq '_parent' ) { &level_down; } if ( $main::input{'target'} eq '_top' ) { $main::input{'level'} = 0; } $target = '_self'; $c_max_fontsize_p = 22; $c_max_fontsize_h1 = 28; $c_max_fontsize_h2 = 24; $c_max_fontsize_h3 = 22; $c_max_fontsize_small = 18; $c_step_fontsize = 3; if ( $main::input{'action'} eq 'frame' ) { &frame; } else { &neue_seite; } exit; sub menu { $dateiname = $main::cfg{'path_base'}; opendir ( DIR, $dateiname ) ; @dir = readdir(DIR); closedir(DIR); foreach ( sort @dir ) { s/^(.)/uc($1)/segi; s/(dummy\.htm|hs\~.*|frameh\.htm|framev\.htm)//sgi; unless ( /^(.*)\.htm$/si ) { next; } push ( @files, { 'link' => $_, 'name' => $1 } ); } return [ @files ]; } sub frame { $template = $main::cfg{'path_base'}.'/'.$main::input{'link'}; &css; $main::input{'files'} = &menu; $schachtelhalm = &html_template($template, \%main::input ); print &redirect_href($schachtelhalm); if ( &debug ) { print "\n"; } } sub neue_seite { if ( &debug ) { print "\n
SUB neue_seite(@_)";} $dateiname = $main::cfg{'path_base'}; opendir ( DIR, $dateiname ) ; @dir = readdir(DIR); closedir(DIR); my $timeout = 100; do { if ( $timeout <= 0 ) { last; } else { $timeout--; } $zufallszahl = &zufallszahl($#dir); $zufallslink = $dir[$zufallszahl]; } while ( ( $zufallslink !~ /\.htm.{0,1}$/si ) || ( $zufallslink eq $main::input{'link'} ) || ( $zufallslink eq '.' ) || ( $zufallslink eq '..' ) || ( $zufallslink eq $main::cfg{'file_frame_h'} ) || ( $zufallslink eq $main::cfg{'file_frame_v'} ) ); $frame = &zufallszahl(6); if ( &modulo($main::input{'level'}, 2) ) { $template = $main::cfg{'path_base'}.'/'.$main::cfg{'file_frame_h'}; } else { $template = $main::cfg{'path_base'}.'/'.$main::cfg{'file_frame_v'}; } if ( $frame < 2 ) { &level_up; $main::input{'link1'} = $zufallslink; $main::input{'link2'} = $main::input{'link'}; } elsif ( $frame < 4 ) { &level_up; $main::input{'link2'} = $zufallslink; $main::input{'link1'} = $main::input{'link'}; } elsif ( $frame < 6 ) { $target = '_parent'; $template = $main::cfg{'path_base'}.'/'.$main::input{'link'}; } else { $template = $main::cfg{'path_base'}.'/'.$main::input{'link'}; } &css; $main::input{'files'} = &menu; $schachtelhalm = &html_template($template, \%main::input ); print &redirect_href($schachtelhalm); if ( &debug ) { print "\n
"; } } sub css { my ( $css, @cssdir, @css ); if ( opendir ( CSS, $main::cfg{'path_css'} ) ) { @cssdir = readdir ( CSS ); closedir ( CSS ); } my $timeout = 100; foreach ( @cssdir ) { if ( $timeout <= 0 ) { last; } else { $timeout--; } unless ( /\.css$/si ) { next; } push ( @css, $_ ); } $css = &zufallszahl( $#css ); $main::input{'shalm_css'} = &file( $main::cfg{'path_css'}.'/'.$css[$css] ); $main::input{'size-p'} = $c_max_fontsize_p - ( $main::input{'level'} * $c_step_fontsize ) . 'px' ; if ( $input{'size-p'} <= 0 ) { $input{'size-p'} = 1; } $main::input{'size-h1'} = $c_max_fontsize_h1 - ( $main::input{'level'} * $c_step_fontsize ) . 'px' ; if ( $input{'size-h1'} <= 0 ) { $input{'size-p'} = 1; } $main::input{'size-h2'} = $c_max_fontsize_h2 - ( $main::input{'level'} * $c_step_fontsize ) . 'px' ; if ( $input{'size-h2'} <= 0 ) { $input{'size-p'} = 1; } $main::input{'size-h3'} = $c_max_fontsize_h3 - ( $main::input{'level'} * $c_step_fontsize ) . 'px' ; if ( $input{'size-h3'} <= 0 ) { $input{'size-p'} = 1; } $main::input{'size-small'} = $c_max_fontsize_small - ( $main::input{'level'} * $c_step_fontsize ) . 'px' ; if ( $input{'size-small'} <= 0 ) { $input{'size-p'} = 1; } $main::input{'shalm_css'} =~ s/<%font-size%>/$main::input{'font-size'}/segi; } sub redirect_href { my ( $schachtelhalm, $css ); $schachtelhalm = shift; $schachtelhalm =~ s/href="http:\/\//___href___/sgi; $schachtelhalm =~ s/src="http:\/\//___src___/sgi; $schachtelhalm =~ s/frame\s+src="/___src_frame__/sgi; $schachtelhalm =~ s/href="javascript/___href_js___/sgi; $schachtelhalm =~ s/src="javascript/___src_js___/sgi; $schachtelhalm =~ s/href="/'target="'.$target.'" href="'.$main::cfg{'script'}.'?target='.$target.'|tid='.$main::input{'tid'}.'|level='.$main::input{'level'}.'|link='/segi; $schachtelhalm =~ s/src="/'src="'.$main::cfg{'domain'}.'\/'.$main::cfg{'dir_img'}.'\/'/segi; $schachtelhalm =~ s/___href___/'target="_top" href="http:\/\/'/segi; $schachtelhalm =~ s/___src___/'src="http:\/\/'/segi; $schachtelhalm =~ s/___src_frame__/'frame src="'/segi; $schachtelhalm =~ s/___href_js___/'href="javascript'/segi; $schachtelhalm =~ s/___src_js___/'src="javascript'/segi; return $schachtelhalm; } sub level_up { $main::input{'level'}++; } sub level_down { if ( $main::input{'level'} > 0 ) { $main::input{'level'}--; } }