#!/usr/bin/perl
##############################################
# HE-CMS - Perl Content Management System #
# Hauptprogramm hecms.pl #
# Version 1.20 (05/2003) #
# letzte Änderung: 28.05.2003 S.Karschewski #
##############################################
# (c) 2001-2003 by Sven Karschewski #
# Hardware Express GmbH #
# Kuhnbergstr. 27 #
# 73037 Göppingen #
##############################################
###################
### Initialisierung
###################
# Config einlesen
require "./config.pl";
require "$settings/design.pl";
$lock_img=~ s/\$admimages/$admimages/g;
# Perl Module
use Time::Local ;
use CGI qw/ReadParse cookie/;
use CGI::Carp qw/fatalsToBrowser/;
# PID setzen
$pid=time;
# Module einlesen
if ($gaestebuch_mod eq 1) {require "$modules/cms_gb.pl";}
if ($newsletter_mod eq 1) {require "$modules/cms_nl.pl";}
if ($forum_mod eq 1) {require "$modules/cms_bbs.pl";}
if ($user_mod eq 1) {require "$modules/cms_usr.pl";}
# IP in Log schreiben
&IpLog;
##########################
### Einlesen der Variablen
##########################
# Formular bzw. URL Daten holen
&ReadParse;
$pos1 = $in{'pos1'};
$pos2 = $in{'pos2'};
$id = $in{'id'};
$key = $in{'key'};
$email = $in{'email1'};
$action = $in{'action'};
# Jump-ID bestimmen
if ($id) {&Menu0Laden;&Id;$pos1=$idp1;$pos2=$idp2;}
if ($action eq "logout" && $user_mod eq 1) {&usr_cookie_set;$pos1=0;$pos2=0;$cokcheck="1";}
if ($action eq "gb" && $gaestebuch_mod eq 1) {&GB_Eintrag;}
if ($action eq "nl" && $newsletter_mod eq 1) {&NL_Action;}
# Positionsvariablen prüfen
if ($pos1 eq "") {$pos1="0";}
if ($pos2 eq "") {$pos2="0";}
# Auf ungültige Pos prüfen, wenn ja umleiten auf 0/0
&Menu0Laden;
&Menu1Laden;
if ($pos1 > $m0anzahl) {$pos1="0";$pos2="0";}
if ($pos2 > $m1anzahl) {$pos1="0";$pos2="0";}
if ($pos1 < "0") {$pos1="0";$pos2="0";}
if ($pos2 < "0") {$pos1="0";$pos2="0";}
# Wenn User-Modul vorhanden, Zugriffsrechte prüfen
if ($menu0{$pos1}=~ /\n\n";
if ($key) {$TITLE="Suchergebnis";}
if ($email) {&formmail;
$CONTENT="Danke ! \n";
$nocontent=2;
if ($kapcontent =~ // && $gaestebuch_mod eq 1) {&GB_Print;$nocontent=1;}
if ($kapcontent =~ // && $newsletter_mod eq 1) {&NL_Print;$nocontent=1;}
if ($kapcontent =~ //i) {$idurl="hecms.pl?pid=$pid;pos1=$pos1;pos2=$pos2#kap$ktemp";$idp1=$pos1;$idp2=$pos2;}
$ktemp=$ktemp+1;}}
$gtemp=1;
if ($idurl eq "") {
while ($gtemp<=$m0anzahl) {
$pos1=$gtemp;
&Menu1Laden;
$pos2=0;$ktemp=1;
if ($menu0{$pos1}=~ //i) {$idurl="hecms.pl?pid=$pid;pos1=$pos1;pos2=$pos2";$idp1=$pos1;$idp2=$pos2;}
&SeiteLaden;
while ($ktemp <= $kapanzahl) {
&KapitelLaden;
if ($kapcontent=~ //i) {$idurl="hecms.pl?pid=$pid;pos1=$pos1;pos2=$pos2#kap$ktemp";$idp1=$pos1;$idp2=$pos2;}
$ktemp=$ktemp+1;}
if ($idurl eq "") {
$gtemp1=1;
while ($gtemp1<=$m1anzahl) {
$pos2=$gtemp1;$ktemp=1;
if ($menu1{$pos2}=~ //i) {$idurl="hecms.pl?pid=$pid;pos1=$pos1;pos2=$pos2";$idp1=$pos1;$idp2=$pos2;}
&SeiteLaden;
while ($ktemp <= $kapanzahl) {
&KapitelLaden;
if ($kapcontent=~ //i) {$idurl="hecms.pl?pid=$pid;pos1=$pos1;pos2=$pos2#kap$ktemp";$idp1=$pos1;$idp2=$pos2;}
$ktemp=$ktemp+1;}
$gtemp1=$gtemp1+1; }}
$gtemp=$gtemp+1;}}
# Positionsvariablen wiederherstellen
$pos1=$pos1save;
$pos2=$pos2save;
$ktemp=$ktempsave;
# Datenbank neu Laden
&Menu0Laden;
&Menu1Laden;
&SeiteLaden;
&KapitelLaden; }
##########################
### Suchformular ausgeben
##########################
sub Suchform {
$CONTENT="$CONTENT$kaptitle\n Hier können Sie die kompletten Seiteninhalte nach einem Stichwort durchsuchen. \n";
$CONTENT="$CONTENT
Ihre Daten wurden erfolgreich versendet.";$TITLE="Bestätigung";}
}
# Template bestimmen
&Menu0Laden;
&Menu1Laden;
&SeiteLaden;
if ($seitenname=~ /") {
$tmptemp=substr($seitenname,$n,1);
$tp="$tp$tmptemp";
$n++;}
$n=$n+3;}
if ($tp eq "") {$tp="$default_template";}
# Template einlesen
open (template, "<$template/$tp");
@template=;
close(template);
$template="@template";
# Seitenelemente in Template einsetzen
$template= "<\/a>\n$template";
$template=~ s/<\/head>/$META<\/head>$JAVASCRIPT/i;
$template=~ s/\$TITLE/$TITLE/g;
$template=~ s/\$HMENUTOP/$HMENUTOP/g;
$template=~ s/\$HMENUSUB/$HMENUSUB/g;
$template=~ s/\$HMENU/$HMENU/g;
$template=~ s/\$MENUTOP/$MENUTOP/g;
$template=~ s/\$MENUSUB/$MENUSUB/g;
$template=~ s/\$MENU/$MENU/g;
$template=~ s/\$DATE/$DATE/g;
$template=~ s/\$ENHDATE/$ENHDATE/g;
$template=~ s/\$TIME/$TIME/g;
$template=~ s/\$COUNT/$g_hits/g;
if ($key) {$template=~ s/\$CONTENT/$RESULT/g;} else {$template=~ s/\$CONTENT/$CONTENT/g;}
# HTML-Header ausgeben
print "Content-type: text/html\n\n";
# Template ausgeben
print $template;
# Hauptprogramm Ende
exit;
######################################################################################################
### Unterroutinen
######################################################################################################
##########################
### $MENU
##########################
sub Menue {
# Datenbank Laden
&Menu0Laden;
&Menu1Laden;
&SeiteLaden;
if ($pos1 ne 0) {$MENU="$MENU$topmenutag1 $home_name$topmenutag2
\n";} else {
$MENU="$MENU$topmenutag1 $home_name$topmenutag2
\n";}
$gtemp=1;
while ($gtemp<=$m0anzahl) {
if ($menu0{$gtemp}=~ //){print "";} else {
if ($menu0{$gtemp}=~ //){print "";} else {
if ($menu1{$gtemp1}=~ //){print "";} else {
if ($menu0{$gtemp}=~ //){print "";} else {
if ($menu1{$gtemp1}=~ //){print "";} else {
if ($menu0{$gtemp}=~ //){print "";} else {
if ($menu1{$gtemp1}=~ /") {$n++;}
$n=$n+3;
$seitenname=substr($seitenname,$n,length($seitenname));}
$TITLE="$TITLE$seitenname\n"; }
###########################
### $CONTENT
###########################
sub Content {
# Datenbank Laden
&Menu0Laden;
&Menu1Laden;
&SeiteLaden;
if ($seitenstil eq 1) {
$CONTENT="$CONTENT";
$ktemp=1;
while ($ktemp<=$kapanzahl) {
&KapitelLaden;
if ($kapanzeigen eq 2){&DatumPruefen;}
if ($kapanzeigen ne 1 && $kaptitle) {$CONTENT="$CONTENT
\n"; }
$ktemp=1;
while ($ktemp<=$kapanzahl) {
&KapitelLaden;
if ($kapcontent=~ //) {
$kapcontent=~ s/\$table_bordersize/$table_bordersize/g;
$kapcontent=~ s/\$table_bordercolor/$table_bordercolor/g;
$kapcontent=~ s/\$table_tablehead/$table_tablehead/g;
$kapcontent=~ s/\$table_tablecolor1/$table_tablecolor1/g;
$kapcontent=~ s/\$table_tablecolor2/$table_tablecolor2/g; }
if ($kapanzeigen eq 2){&DatumPruefen;}
if ($kapcontent=~ //){if ($kapanzeigen ne 1) {&Sitemap;}} else {
if ($kapcontent=~ //){if ($kapanzeigen ne 1) {&Suchform;}} else {
if ($kapanzeigen ne 1) {
# ID Verarbeitung
$count="";
$n="";
while ($kapcontent =~ /") {
$idtemp=substr($kapcontent,$n,1);
$id="$id$idtemp";
$n++;}
$kapcontenttemp=$kapcontent;
&Id;
$kapcontent=$kapcontenttemp;
$id{$n1}=$id;$idurl{$n1}=$idurl;
$n1++;}
$n1="";
while ($n1<$count) {
$kapcontent=~ s/id:$id{$n1}/$idurl{$n1}/i;
$n1++;}
$CONTENT="$CONTENT$headlinetag1$kaptitle$headlinetag2\n
\n
\n";}
else {$CONTENT="$CONTENT
\n";}
}
##########################
### Sitemap ausgeben
##########################
sub Sitemap {
# Positionsvariablen speichern
$pos1save=$pos1;
$pos2save=$pos2;
$ktempsave=$ktemp;
if ($user_mod eq 1) {&usr_cookie_read;&usr_laden;}
# Positionsvariablen neu setzen
$pos1=0;$pos2=0;$ktemp=1;
# Datenbank neu laden
&Menu1Laden;
&SeiteLaden;
# Sitemap erzeugen
$CONTENT="$CONTENT$kaptitle\n";
$CONTENT="$CONTENT
";
$gtemp=1;
while ($gtemp<=$m0anzahl) {
$pos1=$gtemp;
&Menu1Laden;
$pos2=0;$ktemp=1;
&SeiteLaden;
if ($menu0{$gtemp}=~ //) {print "";} else {
if ($menu0{$gtemp}=~ //) {print "";} else {
if ($menu1{$gtemp1}=~ // || $userok ne "1"){print "";} else {
if ($resu eq 1) {$resu2=1;}
$resu=0;
if ($menu0{$gtemp}=~ /$key/i) {$resu=1;}
if ($seitenname=~ /$key/i) {$resu=1;}
while ($ktemp <= $kapanzahl) {
&KapitelLaden;
if ($kapanzeigen eq 2){&DatumPruefen;}
if ($kapanzeigen ne 1) {
if ($kaptitle=~ /$key/i) {$resu=1;}
if ($kapcontent=~ /$key/i) {$resu=1;}}
$ktemp=$ktemp+1;}
if ($resu eq 1) {
$RESULT="$RESULT";
while ($ktemp <= $kapanzahl) {
&KapitelLaden;
if ($kaptitle ne "") {
if ($kapanzeigen eq 2){&DatumPruefen;}
if ($kapanzeigen ne 1) {$CONTENT="$CONTENT
";}
$gtemp=$gtemp+1;}
if ($resu2 ne 1) {$RESULT="$RESULT";
if ($resu eq 1) {
$ktemp=1;
while ($ktemp <= $kapanzahl) {
&KapitelLaden;
if ($resu eq 1) {$resu2=1;}
$resu=0;
if ($kaptitle=~ /$key/i) {$resu=2;}
if ($kapcontent=~ /$key/i) {$resu=2;}
if ($resu eq 2) {
if ($kaptitle ne "") {
if ($kapanzeigen eq 2){&DatumPruefen;}
if ($kapanzeigen ne 1) {$RESULT="$RESULT
";
$gtemp1=1;
while ($gtemp1<=$m1anzahl) {
$pos2=$gtemp1;$ktemp=1;
&SeiteLaden;
if ($menu1{$gtemp1}=~ // || $userok ne "1"){print "";} else {
if ($resu eq 1) {$resu2=1;}
$resu=0;
if ($seitenname=~ /$key/i) {$resu=1;}
if ($menu1{$gtemp1}=~ /$key/i) {$resu=1;}
while ($ktemp <= $kapanzahl) {
&KapitelLaden;
if ($kapanzeigen eq 2){&DatumPruefen;}
if ($kapanzeigen ne 1) {
if ($kaptitle=~ /$key/i) {$resu=1;}
if ($kapcontent=~ /$key/i) {$resu=1;}}
$ktemp=$ktemp+1;}
if ($resu eq 1) {
$RESULT="$RESULT";
if ($resu eq 1) {
while ($ktemp <= $kapanzahl) {
&KapitelLaden;
if ($resu eq 1) {$resu2=1;}
$resu=0;
if ($kaptitle=~ /$key/i) {$resu=2;}
if ($kapcontent=~ /$key/i) {$resu=2;}
if ($resu eq 2) {
if ($kaptitle ne "") {
if ($kapanzeigen eq 2){&DatumPruefen;}
if ($kapanzeigen ne 1) {$RESULT="$RESULT
";}
$gtemp1=$gtemp1+1; }
$RESULT="$RESULT
Der Suchbegriff wurde nicht gefunden !";}
if ($seitenstil eq 1)
{$RESULT="$RESULT