Aktuelle Meldungen

Hinweis: Terminänderungen der mentoriellen Betreuung werden auf der Seite der fachmentoriellen Betreuung angezeigt.

use Time::Local; use Imperia; # Konstanten $filemaske = ".*\.shtml"; $root_dir = $imperia->common->{system_conf}->{'SITE-DIR'}; $root_dir =~ s/site/htdocs/; $readdir = $metainfo->getValues("directory"); $ssi_dir = $metainfo->getValues("ssiverzeichnis"); # Funktion zum Vergleichen Daten in deutschem Format: TT.MM.YYYY HH:MM sub german2normdate { my $gDate = shift; # @_[0]; my $dateNorm = ""; if ($gDate =~ /\s*([0-9]{1,2})\s*\.\s*([0-9]{1,2})\s*\.\s*([0-9]{2,4})(.*)/) { $dateNorm = ""; $dateNorm .= "20" if (length($3)==2); $dateNorm .= $3; $dateNorm .= "0" if (length($2)<2); $dateNorm .= $2; $dateNorm .= "0" if (length($1)<2); $dateNorm .= $1; my $uhrzeit = $4; $uhrzeit .= ':00' if (not($uhrzeit =~ /\:/)); $uhrzeit =~ s/[^0-9]//g; $uhrzeit = substr($uhrzeit, 0, 4) if (length($uhrzeit)>4); $dateNorm .= sprintf("%04d", $uhrzeit); } return($dateNorm); } sub cmp_germandate { my $aDate = $FILE_META{$a}->{'terminvon'}; my $bDate = $FILE_META{$b}->{'terminvon'}; my $aDateNorm = german2normdate($aDate); my $bDateNorm = german2normdate($bDate); return ($aDateNorm cmp $bDateNorm); } sub schreibeSSI { my $inhalt = shift; my $datei_name = shift; &log("Schreibe:" . $datei_name); open(DATEI, ">$datei_name") || die "Kann nicht oeffnen: $datei_name"; print DATEI $inhalt; close(DATEI); } sub kuerzeTeaser { my $text = shift; my $len = shift; if (length($text)<=$len){ $text = " - $text"; return $text; } my $t=''; $text=~m/^(.{$len}\S*)/; $t .= " - $1 ...\n"; return $t; } sub log(){ $s = @_[0]; $openString = (($s eq "<--->") ? ">" : ">>" ) .$root_dir.$ssi_dir."/aktuelles_log.txt"; open(DATEI, $openString) || die "Problem beim Öffnen der Log-Datei!"; print DATEI $s."\n"; close(DATEI); } clearlist(); filemask($filemaske); ireaddir($readdir); @FILELIST = sort(cmp_germandate @FILELIST); reverse_list(); &log("<--->"); my $laenge = @FILELIST; my $ssi = ''; my $ssi_box = ''; my $zaehler = 0; my $zaehler_rechts = 0; my $zaehler_box = 0; foreach my $file (@FILELIST) { my $directory = $FILE_META{$file}->{directory}; my $filename = $FILE_META{$file}->{filename}; my $schlagzeile = $FILE_META{$file}->{titel}; my $teaser = $FILE_META{$file}->{teaser}; my $teaserlen = length($teaser); my $terminvon = $FILE_META{$file}->{terminvon}; my $terminvonNorm = german2normdate($terminvon); my $box = $FILE_META{$file}->{box_aktuelles}; # Zum Nachpruefen, ob die Seite verlinkt werden soll. Ist wegen der Flexmodule aber unzuverlaessig! my $texte = $FILE_META{$file}->{freiertext} . $FILE_META{$file}->{freiertext2} . $FILE_META{$file}->{'FLEXHISTORY_0'}; $keineIndexseite = not( $filename =~ /^(index)\.(shtml|php)$/ ); $keinbox = not($box eq "ja"); if ($keineIndexseite and $schlagzeile) { print '
    ' if ($zaehler==0); print "
  • "; print '' if ($texte); print $schlagzeile; print "" if ($texte); print "

    \n"; print "

    $unterzeile

    " if ($unterzeile); print "

    $teaser [$terminvon]

  • "; $zaehler++; } # Ausgabe fuer Aktuelles rechts my $li = "
  • \n"; $li .=' '.$schlagzeile."\n"; $li .=kuerzeTeaser($teaser,100) if ($teaser); $li .="
  • \n"; if ($keineIndexseite and $schlagzeile and $keinbox and $zaehler_rechts<2) { $ssi .=$li; $zaehler_rechts++; } # Ggf. Ausgabe fuer BOX-SSI (besondere Meldungen) my $li_box = "
  • \n"; $li_box .= ""; $li_box .= '' if (($texte) || ($teaserlen > 100)); $li_box .= $schlagzeile; $li_box .= '' if (($texte) || ($teaserlen > 100)); $li_box .= ''; $li_box .= kuerzeTeaser($teaser,100) if ($teaser); $li_box .= '
  • '; if ($box eq "ja") { $ssi_box .= $li_box; $zaehler_box++; } } # foreach file if ($zaehler == 0) { print ''; }else{ print "
\n"; } $ssi_box = '
Wichtige Infos
    '.$ssi_box.'
' if ($ssi_box); $ssi = '
  • Aktuelles:
      '.$ssi.'
  • ' if ($ssi); schreibeSSI($ssi, $root_dir.$ssi_dir."/aktuelles.ssi"); schreibeSSI($ssi_box, $root_dir.$ssi_dir."/infobox.ssi");