EOF ######## Officecode.txt ######## $CMS_URL=(split("baseportal.pl",$_HTTP_REFERER))[0]; $CMS_HTX="$CMS_URL"."baseportal.pl?"."htx=$htx"; $datum=datum("jetzt","Wochentag, Tag.Monat.Jahr");# $bei123_right=" ®"; $pic_bp_ico="\"\""; $pic_tobp="Link nach baseportal"; $pic_gotop="\"nach"; $pic_date="\"Datum|Kalendar\""; $baseportal="$pic_tobp baseportal"; $pic_godown="\"nach"; $pic_on_work=""; $pic_help2="Hilfe"; $pic_calendar="Kalendar"; $pic_pdf="\"pdf-File\""; $pic_pdf30="\"pdf-File\""; $pic_home="\"Home\""; $pic_sitemap="\"Sitemap\""; $pic_impressum="\"Impressum\""; $pic_office="\"Office"; $pic_layout="\"Layout\""; $pic_user_login="\"Login\""; $pic_login="\"Login\""; $pic_usergroup2="\"UserGroup\""; $pic_user_logout="\"Logout|User\""; $pic_logout="\"Logout|User\""; $pic_tasten="\"\""; $bei123_folderoff="»"; $bei123_folderon ="«";#∇ $bei123_folderno ="∠"; $bei123_param="";# Parameter übergeben über Variable $bp_run=eval runtime; $bp_vers=$_version; my $systemtext="Systeninformation baseportal-Anwendung".'\n'."$L".'\n'."bp-office wurde von bei123.de © 2008 entwickelt".'\n\n'."Es läuft aktuell die baseportal Version: $bp_vers".'\n'."Die Ausführungszeit beträgt momentan: $bp_run Sekunden".'\n\n'."Die Nutzung des bp-Office erfolgt durch den registrierten bp-Account $htx_uid ".'\n'."".'\n'."M.f.G.".'\n\n'."H A R A L D F E H D E".'\n'."Webmaster\@bei123.de".'\n'."Dipl.-Ing.Agr.(UNI)".'\n'."$L".'\n'."$datum"; #############################------------------------------------------------------ $CMS_DATA einlesen ##### %bei123_DATA=map{"[".${$data{Data_type}}[$_]."]".${$data{Data_name}}[$_] => {Id => ${$data{Id}}[$_], Data_no => ${$data{Data_no}}[$_],Data_out => ${$data{Data_out}}[$_],Data_subdef => ${$data{Data_subdef}}[$_],Data_content => "${$data{Data_content}}[$_]" ,Data_date => ${$data{Data_date}}[$_],Data_name => ${$data{Data_name}}[$_],Data_hidden => ${$data{Data_hidden}}[$_],Data_type => ${$data{Data_type}}[$_], Subdir => (${$data{Data_type}}[$_] eq "Page" ? [(split "\n","${$data{Data_subdef}}[$_]")] : ""),Container => (${$data{Data_type}}[$_] eq "Page" ? [(split "","${$data{Data_content}}[$_]")] : "") }}(0..$data{_amount}); delete $bei123_DATA{"[]"}; #------------------------------------------------------------------------------------------- Referenz-Hash # @data_type{@{$data{Id}}}=@{$data{Data_type}}; %bei123_cms = (Id =>\%{$data{_fnr}},type =>\%{$data{type}}); $bei123_for=\%bei123_cms; # Module namentlich feststellen %bei123_MODUL=map{($data_type{$_} eq "Modul" ? ${$data{Data_name}}[$bei123_for->{Id}{$_}] : "") => $_}keys(%data_type); delete $bei123_MODUL{''}; %bei123_USERRIGHT=map{$_ => $_ } (split "\n",$bei123_USER{User_right}); #-------------------------------------------------------------------------------- %bei123_main_page=map{($bei123_DATA{$_}{Data_type} eq "Page" and $bei123_DATA{$_}{Data_no}>0 ? $bei123_DATA{$_}{Data_no} : "" ) => "$bei123_DATA{$_}{Id}" } keys(%bei123_DATA); delete $bei123_main_page{''}; #----------------------------------------------------------------------------------------------------------- $bei123=$_get{bei123}||$bei123_main_page{1}; $bei123=$_get{bei123}||$bei123_DATA{"[Page]UserRechte"}{Id} if($sid and $bei123_USER{Id} eq ""); ###################################### @bei123_MAINDIR=map{${$data{Data_name}}[$bei123_for->{Id}{$bei123_main_page{$_}}]} keys(%bei123_main_page); $bei123pdf=$bei123; @bei123_LISTDIR=""; # Seitenname in der Reihenfolge der Unterverzeichnisse $bei123_SITEMAP="Übersicht
"; # Sitemap generieren $bei123_PAGEMAP=""; # $bei123_FOLDER=""; # Foldertree generieren #-------------------------------------------------------------------------------------- PAGE_no auswerten ## ######### _type extrahieren, um Data_no unterschiedlich je nach _type auszuwählen @bei123_page_ =(grep{$bei123_DATA{$_}{Data_type} eq "Page" and $bei123_DATA{$_}{Data_no} eq ''}keys(%bei123_DATA)); @bei123_loginpage=(grep{$bei123_DATA{$_}{Data_type} eq "Page" and $bei123_DATA{$_}{Data_no} eq "-1"}keys(%bei123_DATA)); @bei123_rightpage=(grep{$bei123_DATA{$_}{Data_type} eq "Page" and $bei123_DATA{$_}{Data_no} eq "-2"}keys(%bei123_DATA)); @bei123_systempage =(grep{$bei123_DATA{$_}{Data_type} eq "Page" and $bei123_DATA{$_}{Data_no} eq "0"}keys(%bei123_DATA)); #----------------------------------------------------------------------------------------- Spezial-Seiten ## %bei123_LOGINPAGE=map{$bei123_DATA{$_}{Data_name} => $bei123_DATA{$_}{Id}}@bei123_loginpage; %bei123_RIGHTPAGE=map{$bei123_DATA{$_}{Data_name} => $bei123_DATA{$_}{Id}}@bei123_rightpage; %bei123_SYSTEMPAGE=map{$bei123_DATA{$_}{Data_name} => $bei123_DATA{$_}{Id}}@bei123_systempage; #----------------------------------------------------------------------------------------------- Sitemap ### $bei123_SITEMAP.="
    "; foreach $pagename(@bei123_MAINDIR) {#---------------------------------- $ok=""; my $r=""; if($bei123_RIGHTPAGE{$pagename} eq "") { $ok="ja"; } else { if($bei123_RIGHTPAGE{$pagename} eq $pagename and $bei123_USERRIGHT{$pagename} ne "") {$r=$bei123_right; $ok ="ja"; } } if($ok) { push(@bei123_LISTDIR,$pagename); # Listing und Reihenfolge merken #------------------------------------------------------------------ Id-Ketten my $pageid = $bei123_DATA{"[Page]$pagename"}{Id}; my @pagesubdir= @{$bei123_DATA{"[Page]$pagename"}{Subdir}}; #------------------------------------------------------------------ $bei123_name_show{$pagename}=$pageid; $bei123_Id_show{$pageid}=$pageid; $bei123_show_Id{$pageid}=$pageid; $bei123_show_name{$pageid}=$pagename; #------------------------------------------------------------------------------ $bei123_SITEMAP.="
  1. $pagename $r"; if(@pagesubdir > 0) {#----------------- $mID=$pageid; $bei123_SITEMAP.="".&bei123_mapping(@pagesubdir).""; }#---------------- $bei123_SITEMAP.="
  2. "; }#------------------------ } $bei123_SITEMAP.="
"; shift(@bei123_LISTDIR); #---------------------------------------------------------------------------------------------- Ende SITEMAP foreach(keys(%bei123_SYSTEMPAGE)) # sind "Stand-alone" {################################################################# my $pageid=$bei123_SYSTEMPAGE{$_}; $bei123_show_name{$pageid}=$_; $bei123_Id_show{$pageid}=$pageid; $bei123_name_show{$_}=$pageid ; $bei123_show_Id{$pageid}=$pageid; }################################################################## foreach(keys(%bei123_RIGHTPAGE)) # falls "Stand-alone" {################################################################# if($bei123_USERRIGHT{$_} ne "" and $bei123_name_show{$_} eq "") { my $pageid=$bei123_RIGHTPAGE{$_}; $bei123_show_name{$pageid}=$_; $bei123_Id_show{$pageid}=$pageid; $bei123_name_show{$_}=$pageid ; $bei123_show_Id{$pageid}=$pageid; } }################################################################## %bei123_SHOW=(%bei123_Id_show,%bei123_name_show);#----------------------------------- Id-Kette je Page ### $bei123_FROMDIR="@bei123_FromDir$bei123_PAGE"; %bei123_LINK=map{$_ => "$_"} keys(%bei123_name_show); $bei123_PAGE=$bei123_show_name{$bei123}; $bei123_PAGE=$bei123_PAGE||$bei123_MAINDIR[0]; ##------------------------------------------------------------------------------------ $bei123_FOLDER ### $bei123f=$_get{bei123f}||$bei123; $bei123_FOLDER="
"; $bei123_OPTIONDIR="
"; ################################ bei123_FOLDER Ende #----------------------------------------------------- Aktuelle Unterverzeichnisse als Links untereinander ## @bei123_SUBDIR=@{$bei123_DATA{"[Page]$bei123_PAGE"}{Subdir}}; my @bei123_SubDir=map{"$_"}@bei123_SUBDIR unless($bei123_UNSHOW{$_}); @bei123_SubDir=join("
",@bei123_SubDir); $bei123_SUBDIR="@bei123_SubDir"; ############################### von o.g. abgeleitete Variablen #################################### @bei123_ARRAY=(split ",",$bei123); # übergebenene Id-Reihung my @bei123_BackDir=@bei123_ARRAY; pop(@bei123_BackDir); #Id-Kette des übergeordneten verzeichnisses $bei123_BACKLINK=$bei123_BACKPAGE=$bei123_BACKSHOW=$bei123_FROMDIR=$bei123_SAMEDIR=""; ###--------------------------------------------------------------- if(@bei123_BackDir>0) {#################### ------------------------------------------ diverse Subdir-Links bei aktueller Page ### @bei123_BackShow=join(",",@bei123_BackDir); $bei123_BACKSHOW="@bei123_BackShow"; $bei123_BACKPAGE=$bei123_show_name{$bei123_BACKSHOW}; $bei123_BACKLINK="« back/zurück"; @bei123_FromDir=map{"${$data{Data_name}}[$bei123_for->{Id}{$_}] » "}@bei123_BackDir; @bei123_SAMEDIR=@{$bei123_DATA{"[Page]$bei123_BACKPAGE"}{Subdir}}; my @bei123_SameDir=map{($_ eq $bei123_PAGE ? "$_" : "$_")}@bei123_SAMEDIR; @bei123_SameDir=join("
",@bei123_SameDir); $bei123_SAMEDIR="$bei123_BACKPAGE «
@bei123_SameDir"; $bei123_FROMDIR="@bei123_FromDir $bei123_PAGE"; }######################################### $_session{page} = serial %{$bei123_DATA{"[Page]$bei123_PAGE"}}; my %PAGE = eval $_session{page}; ###---------------------------------------------------------------------------------------- Subroutinen ### sub bei123 { &bei123_CONTENT(@_); } sub bei123_BUTTON {#################### Anzeigeeines JS-ausführenden Buttons ($B_text,$B_style,$B_textstyle,$B_script)=@_; my $but_show=""; return($but_show); } sub bei123_ALERTBUTTON {##################### Anzeige eines JS-Alert ($b_text,$b_alert,$b__B,$b__H)=@_; my $w=48; my $h=48; $w=($b__B ne "" ? ($w+$b__B) : $w); $h=($b__H ne "" ? ($h+$b__H) : $h); my $w_=$w."px"; my $h_=$h."px"; $butalert=""; return($butalert); } sub bei123_DIVBUTTON {##################### Anzeige eines Div-Windows ($la_page,$la_cnt,$la_text,$b__B,$b__H)=@_; my $la_show=$bei123_DATA{"[Page]$la_page"}{Id}.".".$la_cnt; my $w=48; my $h=48; $w=($b__B ne "" ? ($w+$b__B) : $w); $h=($b__H ne "" ? ($h+$b__H) : $h); my $w_=$w."px"; my $h_=$h."px"; #$l_show=$l_no if($l_no ne ""); $div_butshow=""; return($div_butshow); } sub bei123_LAYBUTTON {##################### Anzeige eines Div-Windows ($l_no,$la_text,$l_show,$b__B,$b__H)=@_; my $w=48; my $h=48; $w=($b__B ne "" ? ($w+$b__B) : $w); $h=($b__H ne "" ? ($h+$b__H) : $h); my $w_=$w."px"; my $h_=$h."px"; $l_show=$l_no if($l_no ne ""); $butshow=""; return($butshow); } sub bei123_LAYER {###############----------------- Layer-Popup ein-/ausblenden my $wpos=($_get{bei123_contentview} eq "on" ? "position:relative;width:100%;top:0px;left:0px;":""); my $layno=$_[0]; my $layname=$_[1]; my $laypage=$_[2]; my $laycont=$_[3]; my $laypos=$_[4]; my $laytype=$_[5]; my $laybutton=$_[6]; my $__pageno=$bei123_DATA{"[Page]$laypage"}{Id}.".".$laycont; my $L="=" x 60; my $layview=($laypage ne $bei123_PAGE ? " ($bei123_PAGE)":"/$layname"); my $laytext="Systeninformation:".'\n'."$L".'\n'."Es werden Informationen des CMS-Datensatzes $laypage angezeigt. ".'\n\n'."Die Daten sind gespeichert in Container $laycont des Feldes Data_content".'\n'." ".'\n'." ".'\n\n\n\n'."Webmaster H.FEHDE"; #$_layno=$layno||$__pageno; $_layno=$__pageno; if(!$laybutton) { out "" if($layname ne ""); } #$_layno=$layno if($layno ne ""); out ""; }############### sub bei123_mapping {###################### my $map=""; my $no=$mID; foreach my $pagename(@_) {###################### my $pageid=$bei123_DATA{"[Page]$pagename"}{Id}; if($pageid ne "") {################ falls Seite im Zugriff my @pagesubdir=@{$bei123_DATA{"[Page]$pagename"}{Subdir}}; my $r=" "; my $ok=""; #---------------------------------------------------------#and $bei123_RIGHTPAGE{$pagename} eq "" if($bei123_RIGHTPAGE{$pagename} eq "") { $ok="ja"; } else { if($bei123_USERRIGHT{$pagename} eq $pagename and $bei123_USER{Id} ne "") { $r=$bei123_right; $ok="ja"; } } if($bei123_UNPAGE{$pagename} ne "") { $ok=0; } if($ok) {#----------------------------------------------------- if($pagename ne "" and $bei123_UNSHOW{$pagename} eq "") {#---------------------------------------------------- push(@bei123_LISTDIR,$pagename); $mID=$no; $bei123_name_show{$pagename}="$mID,$pageid"; $bei123_Id_show{$pageid}="$mID,$pageid"; $bei123_show_Id{"$mID,$pageid"}=$pageid; $bei123_show_name{"$mID,$pageid"}=$pagename; $map.=""; }#-------------------------------------------------- } } }########## ende foreach delete $bei123_Id_show{''}; delete $bei123_name_show{''}; return($map); }############ ENDE mapping sub no_null_begin {################ Leerzeichen am Anfang entfernen my $field=$_[0]; $field =~ s/\A\s*//; return($field); }################ sub no_null_end {############### Leerzeichen am Ende entfernen my $field=$_[0]; $field =~ s/\s*\Z//; return($field); }############### sub no_image_tags {################ evtl. Bilder ausklammern $text_tag=$_[0]; $text_tag=~s//$_[1]<\/a>/gi; $text_tag=~s//$_[1]<\/a>/gi; return $text_tag; }################ sub check_filesize {################ Dateigröße auslesen my $file=$_[0]; my $size=length($file)/1000; my $filesize=sprintf('%.3f',$size); # KB auf 3 nachkommastellen return($filesize); }################ 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 no_link_tags {################ evtl. Links einklammern my $link_tag=$_[0]; my $link_repl=($_[1] eq "" ? "(siehe Link)" : $_[1]); $link_tag=~s//$link_repl<\/a>/gi; $link_tag=~s//$link_repl<\/a>/gi; return $link_tag; }################ sub bei123_CONTENT {###################################### $x=$_[0]; # Name der Page $y=$_[1]; # Nr. des Containers $div_style=$_[2]; # Style Parameter $_session{view_content}=$_get{bei123_contentview}; ####################################### if($y>0) { $div_on="
"; $div_out="
"; $div_color =""; } if($y>0 and $_session{view_content} eq "on") {####### falls nicht [0]-Container - Anzeige für ADMIN $div_color=($bei123_PAGE eq $x ? "green":"red"); $div_on="
"; $div_out="
"; }##################################################### $xId=&bei123_check_page_name_id($x); if($xId) {#--------------------------------------- gültige Id $Out=${$bei123_DATA{"[Page]$x"}{Container}}[$y]; ##### if( index($Out,"[code]")>=0 and index($Out,"[/code]")>=0) {#--------------------------------------------- wenn [code] @TEXT=split(/\[code\]/,$Out); $OUT=$TEXT[0]; #new shift(@TEXT); foreach(@TEXT) {###### @text=split(/\[\/code\]/,$_); $OUT.="
".convert_br(convert_html($text[0]))."
"; #new $OUT.= "$text[1]"; #new }###### eval "out< CMS-Fehler melden { outl "CMS-Error: keine gültige [Page] Ihre Eingabe: \&bei123_CONTENT($_[0])"; } }################# sub bei123_check_page_name_id {############################ immer Id zurückgeben #### $bei123_PageId=""; $xId=$_[0]; $bei123_PageId=$bei123_DATA{"[Page]$xId"}{Id}; #------------------------------------------------------ if($bei123_PageId eq "") {#------- wurde eine gültige Page_Id direkt übergeben ? my $mType=${$data{Data_type}}[$bei123_for->{Id}{$xId}]; $bei123_PageId=($mType eq "Page" ? $xId : "" ); }#----------------------------------------------------- return($bei123_PageId); }####################################################### sub bei123_MODUL {##################################################### if($_[0] ne "" and $bei123_MODUL{$_[0]} ne "") {#----------- falls Modul existiert my $subdef=$bei123_DATA{"[Modul]$_[0]"}{Data_subdef}; ## da hier sowieso nur Code reinkommt, eval direkt eval $subdef; my $mtext =$bei123_DATA{"[Modul]$_[0]"}{Data_content} ; if(index($mtext,"[code]")>=0 and index($mtext,"[/code]")>=0) {#--------------------------------------------- wenn [code] @mTEXT=split(/\[code\]/,$mtext); eval $mTEXT[0]; shift(@mTEXT); foreach(@mTEXT) {##################### @mtext=split(/\[\/code\]/,$_); out "
".convert_br(convert_html($mtext[0]))."
"; eval $mtext[1]; }##################### } #---------------------------------------- wenn kein [code] else { eval $mtext; } #----------------------------------------------------- } else #----------- falls Modul existiert { outl "Modul $_[0] noch nicht definiert !"; } }##################################################### sub bei123_SITEMAP {#################### $page_name=$_[0]; # Sudir für eine bestimte Seite $mID=$bei123_DATA{"[Page]$page_name"}{Id}; $bei123_sitemap="
$page_name"; out $bei123_sitemap; }################### ######## Ende OfficeCode.txt ###### out<