#!/usr/bin/perl # # Treeview-Script by F.Luettgens ### use strict; use CGI; use HTML::Template; my $nodefile = 'nodes.js';   ; # Use absolute Path! my $goto = $ENV{PATH_INFO}; my $cgi = "/cgi-bin/tree.cgi"; my $confquery = CGI->new; my @configs = $confquery->param; my %params = $confquery->Vars; $goto =~ s!^/!!; print $confquery->header; my %map = ( show => \&showconfig, newlink => \&newlink, config => \&config, saveconfig => \&saveconfig, safelink => \&safelink, new => \&new, ); if( exists $map{$goto} ){ $map{$goto}->(); } else{ my $tmpl = HTML::Template->new( filename => 'default.tmpl' ); $tmpl->param( SCRIPT => $cgi ); print $tmpl->output; } sub showconfig { open(NODES,$nodefile); my @scriptfile = ; close(NODES); my $tmpl = HTML::Template->new( filename => 'showconfig.tmpl' ); $tmpl->param( PRE => join(" ",@scriptfile) ); print $tmpl->output; } sub new { my $tmpl = HTML::Template->new( filename => 'new.tmpl' ); $tmpl->param( SCRIPT => $cgi ); print $tmpl->output; } sub newlink { my $tmpl = HTML::Template->new( filename => 'newlink.tmpl' ); $tmpl->param( SCRIPT => $cgi ); print $tmpl->output; } sub savelink { my $newlink_name = $params{'newlink_name'}; my $newlink_link = $params{'newlink_link'}; my $newlink_posi = $params{'newlink_posi'}; my ($kategorie, $sub_kategorie) = split(/\,/, $newlink_posi); my $newlink_frame = $params{'newlink_frame'}; open(NEWNODE,">>.nodes.dat") or die $!; print NEWNODE qq~aux$kategorie = gLnk("Rh", "$newlink_frame", "$newlink_link"))~; close (NEWNODE); rebuild(); } sub config { my $tmpl = HTML::Template->new( filename => 'config.tmpl' ); $tmpl->param( SCRIPT => $cgi ); print $tmpl->output; } sub saveconfig { my $use_buildall = $confquery->param('buildall'); my $use_highlight = $confquery->param('highlight'); my $highlightcolor = $confquery->param('highlight_color'); my $highlight_bg = $confquery->param('highlight_bg'); my $iconpath = $confquery->param('iconpath'); my $use_preserved = $confquery->param('preservedstate'); my $use_startallopen = $confquery->param('startallopen'); my $use_frames = $confquery->param('useframes'); my $use_icons = $confquery->param('useicons'); my $use_textlinks = $confquery->param('usetextlinks'); my $use_wraptext = $confquery->param('wraptext'); my $comment = $confquery->param('comment'); open(CONFIG_HEAD,">.config.dat"); if ($use_buildall eq '0') { print CONFIG_HEAD ("BUILDALL = 0\n") } elsif ($use_buildall eq '1') { print CONFIG_HEAD ("BUILDALL = 1\n") } if ($use_highlight eq '0') { print CONFIG_HEAD ("HIGHLIGHT = 0\n") } elsif ($use_highlight eq '1') { print CONFIG_HEAD ("HIGHLIGHT = 1\n") } if ($use_preserved eq '0') { print CONFIG_HEAD ("PRESERVESTATE = 0\n") } elsif ($use_preserved eq '1') { print CONFIG_HEAD ("PRESERVESTATE = 1\n") } if ($use_startallopen eq '0') { print CONFIG_HEAD ("STARTALLOPEN = 0\n") } elsif ($use_startallopen eq '1') { print CONFIG_HEAD ("STARTALLOPEN = 1\n") } if ($use_frames eq '0') { print CONFIG_HEAD ("USEFRAMES = 0\n") } elsif ($use_frames eq '1') { print CONFIG_HEAD ("USEFRAMES = 1\n") } if ($use_icons eq '0') { print CONFIG_HEAD ("USEICONS = 0\n") } elsif ($use_icons eq '1') { print CONFIG_HEAD ("USEICONS = 1\n") } if ($use_textlinks eq '0') { print CONFIG_HEAD ("USETEXTLINKS = 0\n") } elsif ($use_textlinks eq '1') { print CONFIG_HEAD ("USETEXTLINKS = 1\n") } if ($use_wraptext eq '0') { print CONFIG_HEAD ("WRAPTEXT = 0\n") } elsif ($use_wraptext eq '1') { print CONFIG_HEAD ("WRAPTEXT = 1\n") } print CONFIG_HEAD ("HIGHLIGHT_COLOR = $highlightcolor\n"); print CONFIG_HEAD ("HIGHLIGHT_BG = $highlight_bg\n"); print CONFIG_HEAD ("ICONPATH = $iconpath\n"); print CONFIG_HEAD ("\# $comment\n"); close(CONFIG_HEAD); rebuild(); } sub rebuild { open(CONFIG_HEAD,".config.dat"); my @header = ; close(CONFIG_HEAD); open(NEWNODES,".nodes.dat"); my @entries = ; close(NEWNODES); open(FINAL_CONFIG,">$nodefile"); print FINAL_CONFIG @header; print FINAL_CONFIG @entries; close (FINAL_CONFIG); }