Universitätsarchiv-Logo
 

Kontakt

use Time::Local; use Time::localtime; use Imperia; use utf8; # Konstanten $filemaske = ".*\.shtml"; $root_dir = $imperia->common->{system_conf}->{'SITE-DIR'}; $root_dir =~ s/site/htdocs/; $ssi_dir = $metainfo->getValues("ssiverzeichnis"); $readdir = $metainfo->getValues("directory"); $listenformat = $metainfo->getValues("listenformat"); $ueberschrift_rechts = $metainfo->getValues("ueberschrift_rechts"); $zaehler_max = 5; $filenameprefix = 'aktuelles'; if ($ueberschrift_rechts){ $ueberschrift = $ueberschrift_rechts; }else{ $ueberschrift = 'Aktuelles'; } $rubrik = $metainfo->getValues("rubriken_descr"); $meldungen_max = $metainfo->getValues("zahl"); $home_max = $metainfo->getValues("home_max"); $rechts_max = $metainfo->getValues("rechts_max"); $rechts_datum = $metainfo->getValues("rechts_datum"); $einrichtung = $metainfo->getValues("einrichtung"); $rss = $metainfo->getValues("rss"); $rss2 = $metainfo->getValues("rss2"); $maxRSS = $metainfo->getValues("maxRSS"); # Anzahl der Nachrichten im RSS-Feed $xmlRSS = ''."\n".''."\n".''."\nAktuelles - ".konvertor($einrichtung)."\n$readdir\n\n"; $rss2_kopf = ''."\n".''."\n".''."\n\nAktuelles - ".$einrichtung."\nhttp://www.fernuni-hagen.de$readdir\nRSS 2.0 Feeds\nde\n"; $rss2_fuss = "\n"; $rss_inhalt = ''; $rss2_inhalt = ''; # 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 normdate2time { my $nDate = shift; # @_[0]; if ($nDate =~ /\s*([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}).*/) { return timelocal(0,$5,$4,$3,$2-1,$1); } return 0; } sub cmp_germandate { my $aDate = $FILE_META{$a}->{'terminvon'} . " " . $FILE_META{$a}->{'veranstaltungsbeginn'}; my $bDate = $FILE_META{$b}->{'terminvon'} . " " . $FILE_META{$b}->{'veranstaltungsbeginn'}; 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 nowNormdate { my $tm = localtime(time); my $Sekunden = $tm->sec; my $Minuten = $tm->min; my $Stunden = $tm->hour; my $Monatstag = $tm->mday; my $Monat = $tm->mon + 1; my $Jahr = $tm->year + 1900; $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat; $Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag; $Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden; $Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten; $Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden; return $Jahr.$Monat.$Monatstag . $Stunden.$Minuten; } 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 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 log(){ $s = @_[0]; $openString = (($s eq "<--->") ? ">" : ">>" ) .$root_dir.$ssi_dir."/".$filenameprefix."_log.txt"; open(DATEI, $openString) || die "Problem beim Öffnen der Log-Datei!"; print DATEI $s."\n"; close(DATEI); } sub konvertor { my $new = $_[0]; #utf8::decode($new); $new =~ s/Ä/Ae/g; $new =~ s/Ö/Oe/g; $new =~ s/Ãœ/Ue/g; $new =~ s/ä/ae/g; $new =~ s/ö/oe/g; $new =~ s/ü/ue/g; $new =~ s/ß/ss/g; # $new =~ s/„/"/g; # $new =~ s/“/"/g; $new =~ s/–/-/g; return $new; } clearlist(); filemask($filemaske); ireaddir($readdir); @FILELIST = sort(cmp_germandate @FILELIST); reverse_list(); &log("<--->"); my $laenge = @FILELIST; my $ssi_aktuelles = ''; my $ssi_home = ''; my $ssi_archiv = ''; my $ssi_box = ''; my $zaehler = 0; my $zaehler_index = 0; my $zaehler_home = 0; my $zaehler_rechts = 0; my $zaehler_rss = 0; my $zaehler_rss2 = 0; my $jetzt = nowNormdate(); my $keineIndexseite = ''; my $differenzTage = ''; my $weiteretexte = ''; my $liste = ''; my $ssi_items = ''; my $ssi_rdfSeq = ''; my $ssi_rss2 = ''; my $ssi_bes_meld =''; print '
    '; foreach my $file (@FILELIST) { my $directory = $FILE_META{$file}->{directory}; my $filename = $FILE_META{$file}->{filename}; my $schlagzeile = $FILE_META{$file}->{titel}; my $rss_schlagzeile = konvertor($schlagzeile); my $teaser = $FILE_META{$file}->{teaser}; my $direkt_verlinken = $FILE_META{$file}->{direkt_verlinken}; my $linktyp = $FILE_META{$file}->{linktyp}; my $teaserlen = length($teaser); my $terminvon = $FILE_META{$file}->{terminvon}; my $en_datum = $terminvon; $en_datum =~ s/\./\-/g; my $box = $FILE_META{$file}->{box}; my $rssUrl = 'http://www.fernuni-hagen.de'.$directory.'/'.$filename; my $rssUrl_direkt = 'http://www.fernuni-hagen.de'.$direkt_verlinken; my $terminvonNorm = german2normdate($terminvon.' 00:00'); # LG EVIS my $bes_meld_anzeigen = $FILE_META{$file}->{bes_meld_anzeigen}; my $keine_bes_meld = not($bes_meld_anzeigen) || ($bes_meld_anzeigen eq "none") || ($home_meld); my $bes_meld_bild = $FILE_META{$file}->{bes_meld_bild}; my $bes_meld_bild_url = $FILE_META{$file}->{bes_meld_bild_url}; my $bes_meld_bild_url_tl = $FILE_META{$file}->{bes_meld_bild_url_tl}; my $bes_meld_url_tl = $FILE_META{$file}->{bes_meld_url_tl}; my $bes_meld_inhalt = $FILE_META{$file}->{bes_meld_inhalt}; my $bes_meld_block_format = $FILE_META{$file}->{bes_meld_block_format}; my $ak_bild = ''; my $ak_illu = ''; $ak_bild = $FILE_META{$file}->{ak_bild}; $ak_illu = $FILE_META{$file}->{ak_illu}; $ak_illu = 'illu9' if($ak_illu eq ''); my $li = ''; my $arc = ''; my $h = ''; my $rdfSeq = ''; my $items = ''; $weiteretexte = $FILE_META{$file}->{freiertext} . $FILE_META{$file}->{freiertext2} . $FILE_META{$file}->{'FLEXHISTORY_0'}; $keineIndexseite = not( $filename =~ /^(index|sa_index|archiv)\.shtml$/ ); $differenzTage = (normdate2time($jetzt) - normdate2time($terminvonNorm)) / (24*60*60); # &log("$terminvonNorm ".$differenzTage." zukunft=$zukuenftig $filename"); # Ausgabe fuer index.shtml if ($keineIndexseite and $schlagzeile and $keine_bes_meld and ($zaehler_index<$meldungen_max)) { print "
  • "; print "

    "; if ($weiteretexte or $direkt_verlinken){ print ''; } print $schlagzeile; print "" if ($weiteretexte or $direkt_verlinken); print " ($linktyp)" if ($direkt_verlinken and $linktyp); print "

    "; print "$teaser " if ($teaser); print "[$terminvon]" if ($terminvon); print "
  • "; $zaehler_index++; } # if schlagzeile and ... # Ausgabe fuer aktuelles-ssi erzeugen $li .= "
  • "; $li .= ""; if ($weiteretexte or $direkt_verlinken or $titel_rechte_spalte_verlinken){ $li .= ''; if ($bes_meld_bild){ $bes_meld .= ''; $bes_meld .= '' if($bes_meld_bild_url); } $bes_meld .= "
    "; if ($schlagzeile){ $bes_meld .= "

    "; $bes_meld .= '' if($bes_meld_url_tl); $bes_meld .= $schlagzeile; $bes_meld .= "" if($bes_meld_url_tl); $bes_meld .= "

    "; } $bes_meld .= $bes_meld_inhalt; $bes_meld .= "
"; $ssi_bes_meld .=$bes_meld; $zaehler++; } # Ausgabe fuer BOX-SSI erzeugen if ($box eq 'ja') { my $bx .= "
  • "; $bx .= ' '.$schlagzeile.'
    '; $bx .= kuerzeTeaser($teaser,150) if ($teaser); $bx .= "
  • "; $ssi_box .= $bx; $zaehler++; }#if ($box #Ausgabe fuer RSS $rdfSeq .= ''."\n"; $items .= ''."\n"; $items .= ''; if ($direkt_verlinken){ $items .= $rssUrl_direkt; }else{ $items .= $rssUrl; } $items .= "\n"; $items .= "<![CDATA[$rss_schlagzeile"; $items .= " ($linktyp) " if ($direkt_verlinken and $linktyp); $items .= " [$terminvon]]]>\n\n"; if ($keineIndexseite and ($zaehler_rss<$maxRSS) and not($bes_meld_anzeigen)) { $ssi_rdfSeq .= $rdfSeq; $ssi_items .= $items; $zaehler_rss++; } #Ausgabe fuer RSS 2.0 my $item = "\n$schlagzeile\n"; $item .= $rssUrl_direkt if ($direkt_verlinken ne ""); $item .= $rssUrl if ($direkt_verlinken eq ""); $item .= "\n\n\n"; if ($keineIndexseite and $zaehler<=$maxRSS and not($bes_meld_anzeigen)) { $ssi_rss2 .=$item; $zaehler_rss2++; } } # foreach file if (not ($ssi_aktuelles)) { print " "; } else { print "\n"; } if (not ($ssi_archiv)){ $ssi_archiv .=""; } if ($ssi_aktuelles) { if ($zaehler_rechts<$zaehler_index){ $ssi_aktuelles = '
  • '.$ueberschrift.':
      '.$ssi_aktuelles.'
    '; if ($rss and $maxRSS){ $ssi_aktuelles = $ssi_aktuelles.''; } $ssi_aktuelles = $ssi_aktuelles.'
  • '; }else{ $ssi_aktuelles = '
  • '.$ueberschrift.':
      '.$ssi_aktuelles.'
  • ' if ($ssi_aktuelles); } }#if ($ssi_aktuelles $ssi_box = ($ssi_box) ? '
      '.$ssi_box.'
    ' : '

    Zur Zeit keine aktuellen Termine

    '; if (($rubrik eq "Aktuelles") || ($rubrik eq "News") || ($rubrik eq "news")){ schreibeSSI($ssi_aktuelles, $root_dir.$ssi_dir."/".$filenameprefix.".ssi") ; schreibeSSI('
      '.$ssi_archiv."
    ", $root_dir.$ssi_dir."/".$filenameprefix."_archiv.ssi"); schreibeSSI('
      '.$ssi_home."
    ", $root_dir.$ssi_dir."/".$filenameprefix."_home.ssi"); } if ($rss and $maxRSS){ $ssi_rdfSeq = ''.$ssi_rdfSeq.'' if ($ssi_rdfSeq); $rss_inhalt = $xmlRSS.$ssi_rdfSeq.''."\n".$ssi_items."\n".''; schreibeSSI($rss_inhalt, $root_dir.$ssi_dir."/aktuelles.xml") if ($rss_inhalt); } if ($rss2 and $maxRSS){ $ssi_rss2 = $rss2_kopf.$ssi_rss2.$rss2_fuss if ($ssi_rss2); schreibeSSI($ssi_rss2, $root_dir.$ssi_dir."/rss2.xml") if ($ssi_rss2); } schreibeSSI($ssi_box, $root_dir.$ssi_dir."/"."box.ssi") if ($ssi_box and ($rubrik eq "Aktuelles")); schreibeSSI($ssi_bes_meld, $root_dir.$ssi_dir."/"."bes_meldungen.ssi") if ($ssi_bes_meld);
    Magazinräume des Universitätsarchivs (Erdgeschoss Frontseite)

    Besuchsadresse:

    Fernuniversität Hagen
    Universitätsstr. 21-23
    Raum 204
    58097 Hagen

    Magazin:

    FernUniversität in Hagen
    Universitätsstraße 47
    58097 Hagen

    Mitarbeiterinnen

    Illustration

    Leitung

    Renate Seiler
    Dipl. Archivarin

    Universitätsstr. 21-23
    Raum C349
    58097 Hagen

    Tel.: +49 02331 987-2860
    Email: renate.seiler@fernuni-hagen.de


    Illustration

    Celina Höffgen
    Fachangestellte für Medien- und Informationsdienste

    Universitätsstr. 21-23
    Raum C042
    58097 Hagen

    Tel.: +49 02331 987-4095
    Email: celina.hoeffgen@fernuni-hagen.de


    Illustration

    Diana Freund

    Universitätsstr. 21-23
    Raum C042
    58097 Hagen

    Tel.: +49 02331 987-2839
    Email: diana.freund@fernuni-hagen.de


    14.01.2016
    • Anfahrt:
    FernUni-Logo FernUniversität in Hagen, Universitätsarchiv, 58084 Hagen