<perl>
###########################################################################################################
# Programm: CMS4free_BETA
# Author  : H.Fehde - webmaster bei123.de
# kostenlose Version für bp-User unter Beachtung der Nutzungsbedingungen
##############

############################# Programmdefinitionen #########################################################
if($src ne "")
{
############################################################################################################
if($bei123 eq "")    # falls noch kein Wert übergeben, dann die Id, wo Rubrik=1
{my $start="";       # und dann damit die Anzeige starten
get "Rubrik==1",$D_B;
$bei123_start=$Id;
}#--------------------------------------------------------------
$bei123             =$bei123||$bei123_start;                    # Start-Id, falls nichts gewählt
$bei123_SITEMAP     =&bei123_makedir($D_B);                     # stellt Inhaltsverzeichnis dar.
@bei123_ARRAY       =(split ",",$bei123);                       # per URL übergebenene Id-Reihung
$bei123_ID          =pop(@bei123_ARRAY);                        # Id des jeweiligen Datensatzes
$bei123_PAGE        =${$d_b{Page}}[${$d_b{_fnr}}{$bei123_ID}];# Name der Seite auslesen
$bei123_MAINDIR     =&bei123_maindir;                           # Hauptverzeichnisse 
$bei123_FROMDIR     =&bei123_fromdir;                           # Links übergeordnete Verzeichnissen
$bei123_SAMEDIR     =&bei123_samedir;                           # Verzeichnisse der gleichen Ebene 
$bei123_SUBDIR      =&bei123_subdir;                            # Links untergeordneten Verzeichnissen
$bei123_GETDIR      =\&bei123_getdir;                           # Links zu Verzeichnissen eines Verz.
$bei123_SUCHFORM    =&bei123_suchform;                          # Sucheingabe-Formular
$bei123_SUCHRESULT  =&bei123_suchresult;                        # Suchergebnisse
$bei123_TEXT        =${$d_b{Text}}[${$d_b{_fnr}}{$bei123_ID}];#------ Feld [Text] 
$bei123_CONTENT     ="out<<EOF;\n$bei123_TEXT\nEOF\n\n";        # Inhalt ausgeben
$bei123_CMD         =\&bei123_cmd;                              # Buttonfunktion mit Parametern 

##################################### Subroutinen #########################################################
###########################################################################################################


sub html2text 
{## entfernt html-tags und gibt nur Text ohne HTML zurück
my $html=$_[0];
($text = $html) =~ s/<(\/|!)?[-.a-zA-Z0-9]*.*?>//g;
return($text);
}##


sub bei123_cmd
{## generiert Button für bp-Systemaufruf auf der aktuellen Page
my $val   =$_[0]; # submit value
my $tit   =$_[1]; # submit titel 
my $bcmd  =$_[2]; # action cmd
my $click ="";
if(index($bcmd,"confirm=on") >= 0)
{$click="onclick=\"return confirm('$val : $tit')\"";
}
my $lb="<table cellpadding=0 cellspacing=0 border=0><tr>"; 
$lb.="<form action='$_link&bei123=$bei123_SHOW{$bei123_ID}&$bcmd'";
$lb.=" method='post' enctype='multipart/form-data'>";
$lb.="<input type='hidden' name='htx=' value='$htx'>";
$lb.="<td><input type='submit' value='$val' style='$button_style' title='$tit' $click>";
$lb.="</td></tr></form></table>";
return($lb);
}##

sub bei123_suchform
{##
my $sf="<table width='100' cellpadding=0 cellspacing=0><tr>";
$sf.="<form action='$_link&bei123=$bei123_SHOW{$bei123_SEARCH}'";
$sf.=" method='post' enctype='multipart/form-data'>";
$sf.="<input type='hidden' name='htx=' value='$htx'>";
$sf.="<td><input type='text' size=16 name='_fullsearch~~'"; 
$sf.=" value='$_fullsearch' style='font-size:10px'></td>";
$sf.="<td><input type='submit' value='Suche' style='$button_style'";
$sf.=" title='- Volltextsuche -'></td></tr></form></table>";
return($sf);
}##

sub bei123_suchresult 
{## generert die Ausgabe der Suchergebnisse 
my $sr="";
if($_fullsearch eq "")
{$sr="Es wurde kein Suchbegriff eingegeben";
return($sr);
} else
{
$sr.="<li type=square><b>Suchergebnisse</b> Ihrer Volltextsuche:</li>";
$sr.="<table width=100%><tr><td>";
get "fullsearch_sort=Page", "$D_B";
my $newrange="";
my $txt;
while(get_next("$D_B"))
{#---------------------------------------------------------------------------------
 $Text=~ /\$bei123_LINE/;   # Text bis zur ersten LINE ausgeben      
 $Text=$`;
 $Text  =~ s#$_fullsearch_regex#<b><font color=red>$1</font></b>#g;
 $Page  =~ s#$_fullsearch_regex#<b><font color=red>$1</font></b>#g;
 $sr.="<b><a href='$_link&bei123=$bei123_SHOW{$Id}'>$Page</a></b><br>$Text<br><br>";
}#----------------------------------------------------------------------- Ende while
$sr.="</td></tr></table>";
$newrange=$_fullsearch_range+$_fullsearch_range_length;
if($_fullsearch_match_pos<$newrange)
{$txt="Suche nach weiteren Treffern";
$newrange=$_fullsearch_match_pos; 
} else
{$txt="<b>Suche in weiteren Datensätzen</b>";
}
if($newrange < $_amount_all)
{$sr.="<font face=Arial size=2 color=red>Es wurde noch nicht in allen Datensätzen gesucht:</font> ";
$sr.="<a href=\"$_link&bei123=$bei123_ID&_fullsearch~~".convert_url($_fullsearch)."&fullsearch_range=$newrange,$_fullsearch_range_length&weiterer=weiterer\">$txt</a>";
}else
{$sr.="<b> ! Die Datenbank wurde komplett durchsucht.</b>";
$sr.="<b>Kein $weiterer Treffer.</b><p>" if $_fullsearch_amount<1;
}
return($sr);
}
}##



#--------------------------------------------------------------- weitere Verzeichnisroutonen für SITEMAP

sub bei123_fromdir
{my $fromdir="";
$fromdir.="$bei123_LINK{${$d_b{Page}}[${$d_b{_fnr}}{$_}]}&nbsp;>&nbsp;" for(@bei123_ARRAY);
return($fromdir);
}

sub bei123_getdir
{my $for=$_[0];
$for=$bei123_PAGE_ID{$for};
my $getdir="";
$getdir.="$bei123_LINK{$_}<br>" for ((split "\n","${$d_b{Subpage}}[${$d_b{_fnr}}{$for}]")); 
return($getdir);
}

sub bei123_subdir
{my $subdir="";
@_SUBDIR_="";
$subdir.="<font style='font-size:8pt'>&#149; $bei123_LINK{$_}</font><br>" for @{$bei123_MAPID{$bei123_ID}};
push(@_SUBDIR_,$bei123_LINK{$_}) for @{$bei123_MAPID{$bei123_ID}}; 
return($subdir);
}

sub bei123_samedir
{
$subs=&bei123_subdir;
my $samedir="";
if(@{$bei123_MAPID{$bei123_ARRAY[$#bei123_ARRAY]}}>0 and @bei123_ARRAY>0)
{
$samedir.=$_ ne "${$d_b{Page}}[${$d_b{_fnr}}{$bei123_ID}]" ? "$bei123_LINK{$_}<br>" : "<b>$_</b><br>$subs" for
@{$bei123_MAPID{$bei123_ARRAY[$#bei123_ARRAY]}};
}
else
{
$samedir.=$_ ne "${$d_b{Page}}[${$d_b{_fnr}}{$bei123_ID}]" ? "$bei123_LINK{$_}<br>" : "<b>$_</b><br>$subs" for ((split "\n","${$d_b{Subpage}}[${$d_b{_fnr}}{$bei123_ID}]"));
}
return($samedir);
}

sub bei123_maindir
{
my $maindir     ="";
@bei123_MAINDIR ="";
my @omain       = split(",",$_get{bei123});
#------------------------------------------
if(!$_get{bei123})
{$omain  = 0;
 }else
 {$omain  = shift(@omain) ;
}
foreach(@bei123_MAIN)
{
if($bei123_SHOW{$_} ne $omain )
 {$maindir.="$bei123_LINK{$_}&nbsp;"; 
 push(@bei123_MAINDIR,$bei123_LINK{$_}); 
 }else
 {$maindir.="<b>$_</b>&nbsp;"; 
 push(@bei123_MAINDIR,"<b>$_</b>");
 }
}
return($maindir);
}

sub bei123_makedir 
{
$D_B=$_[0];
get "Id==*","$D_B",\%d_b; #---------------- Datenbank in %d_b einlesen
my %bei123_SET;
@bei123_SET{@{$d_b{Rubrik}}}= @{$d_b{Page}} ;
@bei123_MAIN=map{$bei123_SET{$_}}(grep "$_",keys(%bei123_SET));# Hauptrubriken geord. nach RubrikNr           
@bei123_PAGE_ID{@{$d_b{Page}}} =  @{$d_b{Id}};
%bei123_SUB=map{$_=>[(split "\n","${$d_b{Subpage}}[$bei123_PAGE_ID{$_}]")]} @{$d_b{Page}} ;
%bei123_MAPID=map{$_=>[(split "\n","${$d_b{Subpage}}[${$d_b{_fnr}}{$_}]")]}@{$d_b{Id}};  
#--------------------
foreach (@bei123_MAIN)
{#--------------------
$sitemap.="<b><a href='$_link&bei123=$bei123_PAGE_ID{$_}'>$_</a></b><br>";
$mid=$bei123_PAGE_ID{$_};
$bei123_SHOW{$bei123_PAGE_ID{$_}}=$bei123_SHOW{$_}=$bei123_PAGE_ID{$_};
$bei123_LINK{$mid}=$bei123_LINK{$_}="<a href='$_link&bei123=$bei123_PAGE_ID{$_}'>$_</a>";
if(@{$bei123_MAPID{$bei123_PAGE_ID{$_}}}>0)
 { &bei123_site_map(@{$bei123_MAPID{$bei123_PAGE_ID{$_}}});
 }else
 { $sitemap.="</ul>";
 }
}
return($sitemap); 
}

sub bei123_site_map
{
my $mmid=$mid;
foreach(@_)
{
 $sitemap.="<ul><li><a href='$_link&bei123=$mmid,$bei123_PAGE_ID{$_}'>$_</a></li>";
 $bei123_SHOW{$bei123_PAGE_ID{$_}}=$bei123_SHOW{$_}="$mmid,".$bei123_PAGE_ID{$_};
 $bei123_LINK{$bei123_PAGE_ID{$_}}=$bei123_LINK{$_}="<a href='$_link&bei123=$mmid,$bei123_PAGE_ID{$_}'>$_</a>";
 
 if(@{$bei123_MAPID{$bei123_PAGE_ID{$_}}}>0)
   {$mid="$mmid,$bei123_PAGE_ID{$_}";
   &bei123_site_map(@{$bei123_MAPID{$bei123_PAGE_ID{$_}}});
   }
$sitemap.="</ul>";
}
}#### ENDE
}
else
{
out "<center><font size=1><a href='http://www.bei123.de' target=_'BLANK'>CMS4free - &copy; 2004 www.bei123.de</a><br>Content-Management-System von H.Fehde</font></center>";
}
</perl></body>