Übersicht aller Veranstaltungen RSS

RRZE FAU

Veranstaltungen in Kooperation mit dem Regionalen RechenZentrum Erlangen (RRZE)

Das RRZE ist der IT-Dienstleister für eine funktionierende IT-Infrastruktur an der Friedrich-Alexander-Universität Erlangen-Nürnberg und das Zentrum computertechnologischer Kompetenz in der Hochschullandschaft Nordbayerns.
Es unterstützt im Rahmen des Regionalkonzepts weitere Hochschulen und Universitäten in der Umgebung.

FernUni-Studierende können das Schulungsangebot (wie z.B. Literaturverwaltung mit Citavi oder Wissenschaftliche Arbeiten mit Word 2013) des RRZE zu den dort angegebenen Konditionen nutzen.
>> weitere Informationen [externer Link]

Alle Veranstaltungen im Regionalzentrum Nürnberg

Sollten Sie einen barrierefreien Zugang zu den Seminarräumen in unserem RZ benötigen, dann geben Sie das bitte bei der Anmeldung zu der jeweiligen Veranstaltung an. Unsere Mentorinnen und Mentoren sowie die Mitarbeiterinnen im Regionalzentrum sind Ihnen dann gerne behilflich.

use Time::Local; use Time::localtime; 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"); $stzname = $metainfo->getValues("stzname"); $zaehler = 0; $zaehler_max = 4; #Anzahl der Eintraege am rechten Rand $filenameprefix = 'veranstaltungen'; $ueberschrift_rechts = 'Veranstaltungen in Kürze'; $art = ''; $t = ''; $maxRSS = 5; # Anzahl der Nachrichten im RSS-Feed $xmlRSS = ''."\n".''."\n".''."\n".'Veranstaltungen im Regional-/Studienzentrum '.$stzname.''."\n".'http://www.fernuni-hagen.de'.$readdir.''."\n".''."\n"; $rdfSeq = ''; $items = ''; $rss_inhalt = ''; $protocol = 'https://www.fernuni-hagen.de'; sub german2normdate { my $gDate = shift; 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 zeit { my $gZeit = shift; $gZeit =~ s/[a-zA-Z]//g; $gZeit =~ s/[\.]/\:/g; my $zeitNorm = ""; if ($gZeit =~ /\s*([0-9]{1,2})\s*\:\s*([0-9]{1,2})(.*)/) { $zeitNorm = ""; $zeitNorm .= "0" if (length($1)<2); $zeitNorm .= $1; $zeitNorm .= ":"; $zeitNorm .= $2; }else{ $zeitNorm = "00:00"; } return($zeitNorm); } sub normdate2time { my $nDate = shift; 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 $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 schreibeSSI { my $inhalt = shift; my $datei_name = shift; open(DATEI, ">$datei_name") || die "Kann nicht oeffnen: $datei_name"; print DATEI $inhalt; close(DATEI); } sub teaser_min { 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 filtern { my $file = shift; my $kategory = $FILE_META{$file}->{art}; if (not($kategory)){ $kategory = ""; }elsif (($kategory eq "asta") or ($kategory eq "vhs") or ($kategory eq "koow")){ $kategory = "koo"; }elsif(($kategory eq "info") or ($kategory eq "start")){ $kategory = "ab"; }elsif(($kategory eq "messe") or ($kategory eq "hybrid") or ($kategory eq "cbu") or ($kategory eq "sonoe")){ $kategory = "so"; } return not($kategory cmp $art); } clearlist(); filemask($filemaske); ireaddir($readdir); @FILELIST = sort(cmp_germandate @FILELIST); ZeigeListe("pr","Präsenzveranstaltungen"); ZeigeListe("mt","Medientechnische Veranstaltungen"); ZeigeListe("so","Sonderveranstaltungen"); ZeigeListe("ab","Allgemeine Studienberatung"); ZeigeListe("sonst","Sonstige Veranstaltungen"); ZeigeListe("koo","Veranstaltungen in Kooperation"); ZeigeAlle(); VeranstaltungenInKuerze(); ZeigeListeArchiv(); sub ZeigeListe{ #Setzen Kategorie, die wir anzeigen wollen $art = shift; $ueberschrift = shift; @LIST = grep (filtern($_), @FILELIST); RendenListe(@LIST); } sub RendenListe{ my @Liste = @_; my $t = ''; my %MapTerminInVeranstaltung;#Hash-Objekt für Paaren Termin => Veranstaltung foreach my $file (@Liste) { my $filename = $FILE_META{$file}->{filename}; my $schlagzeile = $FILE_META{$file}->{titel}; my $untertitel = $FILE_META{$file}->{untertitel}; my $art = $FILE_META{$file}->{art}; my $teaser = $FILE_META{$file}->{teaser}; my $directory = $FILE_META{$file}->{directory}; my $jetzt = nowNormdate(); my $notIndex = not($filename =~ /(index|index_land|index_region|archiv|pr_veranstaltungen|mt_veranstaltungen|so_veranstaltungen|ab_veranstaltungen|koo_veranstaltungen|sonst_veranstaltungen)\.shtml$/ ); my $count = $FILE_META{$file}->{imperiablock_count_30}; my $erster_termin = $FILE_META{$file}->{terminvon_30_0}; my $erster_begin = zeit($FILE_META{$file}->{beginn_30_0}); my $block = $count-1; my $letzter_termin = ""; my $letzter_beginn = ""; my $letzter_termin_option = ""; if ($count>1){ $letzter_termin = $FILE_META{$file}->{"terminvon_30_$block"}; $letzter_beginn = zeit($FILE_META{$file}->{"beginn_30_$block"}); $letzter_termin_option = $FILE_META{$file}->{"terminoption_30_$block"}; } if ($count eq 1) { $letzter_termin = $FILE_META{$file}->{terminbis_30_0}; $letzter_termin = $erster_termin if ($letzter_termin eq ""); $letzter_beginn = zeit($FILE_META{$file}->{ende_30_0}); $letzter_beginn = "22:30" if ($letzter_beginn eq ""); $letzter_termin_option = $FILE_META{$file}->{terminoption_30_0}; } my $letzter_terminNorm = german2normdate($letzter_termin.' '.$letzter_beginn); my $erster_terminNorm = german2normdate($erster_termin.' '.$erster_beginn); my $differenz = (normdate2time($letzter_terminNorm)-normdate2time($erster_terminNorm))/(24*60*60); #$terminbis = $letzter_termin; if ($notIndex){ for(my $i=0; $i<$count; $i++){ my $nr = ($i + 1); my $terminoption = $FILE_META{$file}->{"terminoption_30_$i"}; my $terminvon = $FILE_META{$file}->{"terminvon_30_$i"}; my $beginn = zeit($FILE_META{$file}->{"beginn_30_$i"}); my $terminvonNorm = german2normdate($terminvon.' '.$beginn); if (($count>1) & ($terminoption ne "weiter")){ if ($letzter_termin_option eq "weiter"){ $terminbis = $letzter_termin; $terminbisNorm = $letzter_terminNorm; }else{ $terminbis = $FILE_META{$file}->{"terminvon_30_$i"}; $terminbisNorm = $terminvonNorm; } } if (($count eq 1) || (($count>1) & ($terminoption eq "weiter"))){ $terminbis = $letzter_termin; $terminbisNorm = $letzter_terminNorm; } my $termin_sort = $terminvonNorm.'_'.int(rand(100)); my @TerminKurzInfo = ($terminvon,$terminbis,$terminoption,$file,$schlagzeile,$teaser,$directory,$filename,$erster_termin,$nr,$count,$differenz,$letzter_termin_option,$untertitel); my $zukuenftig = (($jetzt<$terminvonNorm) || ($jetzt<$terminbisNorm)) & (not($terminoption =~ /^(weiter)$/)) ; if ($zukuenftig and $schlagzeile){ $MapTerminInVeranstaltung{$termin_sort} = [@TerminKurzInfo]; } }# for }# ($notIndex) }# foreach #Zeigen die Liste an foreach $termin (sort keys %MapTerminInVeranstaltung) { my @TerminKurzInfo = @{$MapTerminInVeranstaltung{$termin}}; my $terminvon = $TerminKurzInfo[0]; my $terminbis = $TerminKurzInfo[1]; my $terminoption = $TerminKurzInfo[2]; my $filename = $TerminKurzInfo[7]; my $schlagzeile = $TerminKurzInfo[4]; my $teaser = $TerminKurzInfo[5]; my $directory = $TerminKurzInfo[6]; my $erster_termin = $TerminKurzInfo[8]; my $nr = $TerminKurzInfo[9]; my $count = $TerminKurzInfo[10]; my $differenz = $TerminKurzInfo[11]; my $letzter_termin_option = $TerminKurzInfo[12]; my $untertitel = $TerminKurzInfo[13]; $t .= ''."\n"; $t .= ''; $t .= '' if ($terminoption =~ /^(aus|verschoben)$/); $t .= $terminvon; $t .= '' if ($terminoption =~ /^(aus|verschoben)$/); if ( ($terminbis ne $terminvon) and (($count eq 1) or (($count>1) and ($letzter_termin_option eq "weiter"))) ){ $t .= ' –
'; $t .= '' if ($terminoption =~ /^(aus|verschoben)$/); $t .= $terminbis; $t .= '' if ($terminoption =~ /^(aus|verschoben)$/); } $t .= '
(ENTFÄLLT)' if ($terminoption eq "aus"); $t .= '
(VERSCHOBEN)' if ($terminoption eq "verschoben"); $t .= ''."\n"; $t .= ''; $t .= ''; $t .= $schlagzeile.''; $t .= '
'.$untertitel.'' if ($untertitel); $t .= '
'.$teaser.'' if ($teaser ne ""); if ($count>1){ $t .= '
[Veranstaltungsreihe besteht aus '.$count.' Terminen]' if (($differenz>4) & ($letzter_termin_option eq "weiter")); } $t .= ''."\n"; $t .= ''."\n"; if ($art eq ""){ $art = "xy"; } #if } #foreach $termin $t =''."\n".$t.'
' if ($t); schreibeSSI($t, $root_dir.$ssi_dir."/".$art."_".$filenameprefix.".ssi"); } #RendenListe sub ZeigeAlle{ my %MapTerminInVeranstaltung;#Hash-Objekt für Paaren Termin => Veranstaltung foreach my $file (@FILELIST) { my $filename = $FILE_META{$file}->{filename}; my $schlagzeile = $FILE_META{$file}->{titel}; my $untertitel = $FILE_META{$file}->{untertitel}; my $art = $FILE_META{$file}->{art}; my $teaser = $FILE_META{$file}->{teaser}; my $directory = $FILE_META{$file}->{directory}; my $jetzt = nowNormdate(); my $notIndex = not($filename =~ /(index|index_land|index_region|archiv|pr_veranstaltungen|mt_veranstaltungen|so_veranstaltungen|ab_veranstaltungen|koo_veranstaltungen|sonst_veranstaltungen)\.shtml$/ ); my $count = $FILE_META{$file}->{imperiablock_count_30}; my $erster_termin = $FILE_META{$file}->{terminvon_30_0}; my $erster_begin = zeit($FILE_META{$file}->{beginn_30_0}); my $block = $count-1; my $letzter_termin_option = ""; my $letzter_termin = ""; my $letzter_beginn = ""; if ($count>1){ $letzter_termin = $FILE_META{$file}->{"terminvon_30_$block"}; $letzter_beginn = zeit($FILE_META{$file}->{"beginn_30_$block"}); $letzter_termin_option = $FILE_META{$file}->{"terminoption_30_$block"}; } if ($count eq 1) { $letzter_termin = $FILE_META{$file}->{terminbis_30_0}; $letzter_termin = $erster_termin if not($letzter_termin); $letzter_beginn = zeit($FILE_META{$file}->{ende_30_0}); $letzter_beginn = "22:30" if not($letzter_beginn); $letzter_termin_option = $FILE_META{$file}->{terminoption_30_0}; } my $letzter_terminNorm = german2normdate($letzter_termin.' '.$letzter_beginn); my $erster_terminNorm = german2normdate($erster_termin.' '.$erster_beginn); my $differenz = (normdate2time($letzter_terminNorm)-normdate2time($erster_terminNorm))/(24*60*60); #$terminbis = $letzter_termin; if ($notIndex){ for(my $i=0; $i<$count; $i++){ my $nr = ($i + 1); my $terminbis = ""; my $terminbisNorm = ""; my $terminoption = $FILE_META{$file}->{"terminoption_30_$i"}; my $terminvon = $FILE_META{$file}->{"terminvon_30_$i"}; my $beginn = zeit($FILE_META{$file}->{"beginn_30_$i"}); my $terminvonNorm = german2normdate($terminvon.' '.$beginn); if (($count>1) & ($terminoption ne "weiter")){ if ($letzter_termin_option eq "weiter"){ $terminbis = $letzter_termin; $terminbisNorm = $letzter_terminNorm; }else{ $terminbis = $FILE_META{$file}->{"terminvon_30_$i"}; $terminbisNorm = $terminvonNorm; } } if (($count eq 1) || (($count>1) & ($terminoption eq "weiter"))){ $terminbis = $letzter_termin; $terminbisNorm = $letzter_terminNorm; } my $termin_sort = $terminvonNorm.'_'.int(rand(100)); my @TerminKurzInfo = ($terminvon,$terminbis,$terminoption,$file,$schlagzeile,$teaser,$directory,$filename,$erster_termin,$nr,$count,$differenz,$letzter_termin_option,$untertitel); #my $zukuenftig = ((($jetzt<$terminvonNorm) || ($jetzt<$terminbisNorm)) & ($count eq 1)) || (($count>1) & ( (($jetzt<$terminvonNorm) || (($terminvonNorm<$jetzt) & ($jetzt<$terminbisNorm))) & not($terminoption eq "weiter") ) ); my $zukuenftig = (($jetzt<$terminvonNorm) || ($jetzt<$terminbisNorm)) & ($terminoption ne "weiter"); if ($zukuenftig and $schlagzeile){ $MapTerminInVeranstaltung{$termin_sort} = [@TerminKurzInfo]; } }# for }# ($notIndex) }# foreach #Zeigen die Liste an print ''."\n"; foreach $termin (sort keys %MapTerminInVeranstaltung) { my @TerminKurzInfo = @{$MapTerminInVeranstaltung{$termin}}; my $terminvon = $TerminKurzInfo[0]; my $terminbis = $TerminKurzInfo[1]; my $terminoption = $TerminKurzInfo[2]; my $filename = $TerminKurzInfo[7]; my $schlagzeile = $TerminKurzInfo[4]; my $teaser = $TerminKurzInfo[5]; my $directory = $TerminKurzInfo[6]; my $erster_termin = $TerminKurzInfo[8]; my $nr = $TerminKurzInfo[9]; my $count = $TerminKurzInfo[10]; my $differenz = $TerminKurzInfo[11]; my $letzter_termin_option = $TerminKurzInfo[12]; my $untertitel = $TerminKurzInfo[13]; print ''."\n"; print ''."\n"; print ''."\n"; print ''."\n"; if (not($terminoption =~ /^(aus|verschoben)$/)){ $rdfSeq .= ''."\n"; $items .= ''."\n"; $items .= ''.$rssUrl.''."\n"; $items .= '<![CDATA['.$terminvon; if ( ($terminbis ne $terminvon) and (($count eq 1) or (($count>1) and ($letzter_termin_option eq "weiter"))) ){ $items .= ' - '.$terminbis; } $items .= ': '.$schlagzeile.'. ]]>'."\n"; $items .= ''."\n"; } } #foreach $termin print '
'; print '' if ($terminoption =~ /^(aus|verschoben)$/); print $terminvon; print '' if ($terminoption =~ /^(aus|verschoben)$/); if ( ($terminbis ne $terminvon) and (($count eq 1) or (($count>1) and ($letzter_termin_option eq "weiter"))) ){ print ' –
'; print '' if ($terminoption =~ /^(aus|verschoben)$/); print $terminbis; print '' if ($terminoption =~ /^(aus|verschoben)$/); } print '
(ENTFÄLLT)' if ($terminoption eq "aus"); print '
(VERSCHOBEN)' if ($terminoption eq "verschoben"); print '
'; print ''; print $schlagzeile.''; print '
'.$untertitel.'' if($untertitel); print '
'.$teaser.'' if ($teaser ne ""); if ($count>1){ print '
[Veranstaltungsreihe besteht aus '.$count.' Terminen]' if (($differenz>4) & ($letzter_termin_option eq "weiter")); } print '
' if (@termine_sort ne ""); $rdfSeqe = ''.$rdfSeq.'' if ($rdfSeq); $rss_inhalt = $xmlRSS.$rdfSeq.'
'."\n".$items."\n".''; schreibeSSI($rss_inhalt, $root_dir.$ssi_dir."/veranstaltungen.xml") if ($rdfSeq); } #ZeigeAlle sub ZeigeListeArchiv{ my %MapTerminInVeranstaltung;#Hash-Objekt für Paaren Termin => Veranstaltung my $t = ''; foreach my $file (@FILELIST) { my $filename = $FILE_META{$file}->{filename}; my $schlagzeile = $FILE_META{$file}->{titel}; my $untertitel = $FILE_META{$file}->{untertitel}; my $art = $FILE_META{$file}->{art}; my $teaser = $FILE_META{$file}->{teaser}; my $directory = $FILE_META{$file}->{directory}; my $jetzt = nowNormdate(); my $notIndex = not($filename =~ /(index|index_land|index_region|archiv|pr_veranstaltungen|mt_veranstaltungen|so_veranstaltungen|ab_veranstaltungen|koo_veranstaltungen|sonst_veranstaltungen)\.shtml$/ ); my $count = $FILE_META{$file}->{imperiablock_count_30}; my $erster_termin = $FILE_META{$file}->{terminvon_30_0}; my $erster_begin = zeit($FILE_META{$file}->{beginn_30_0}); my $block = $count-1; my $letzter_termin = ""; my $letzter_beginn = ""; my $letzter_termin_option = ""; if ($count>1){ $letzter_termin = $FILE_META{$file}->{"terminvon_30_$block"}; $letzter_beginn = zeit($FILE_META{$file}->{"beginn_30_$block"}); $letzter_termin_option = $FILE_META{$file}->{"terminoption_30_$block"}; } if ($count eq 1) { $letzter_termin = $FILE_META{$file}->{terminbis_30_0}; $letzter_termin = $erster_termin if ($letzter_termin eq ""); $letzter_beginn = zeit($FILE_META{$file}->{ende_30_0}); $letzter_beginn = "22:30" if ($letzter_beginn eq ""); $letzter_termin_option = $FILE_META{$file}->{terminoption_30_0}; } my $letzter_terminNorm = german2normdate($letzter_termin.' '.$letzter_beginn); my $erster_terminNorm = german2normdate($erster_termin.' '.$erster_beginn); my $differenz = (normdate2time($letzter_terminNorm)-normdate2time($erster_terminNorm))/(24*60*60); if ($notIndex){ for(my $i=0; $i<$count; $i++){ my $nr = ($i + 1); my $terminoption = $FILE_META{$file}->{"terminoption_30_$i"}; my $terminvon = $FILE_META{$file}->{"terminvon_30_$i"}; my $beginn = zeit($FILE_META{$file}->{"beginn_30_$i"}); my $terminvonNorm = german2normdate($terminvon.' '.$beginn); if (($count>1) & ($terminoption ne "weiter")){ if ($letzter_termin_option eq "weiter"){ $terminbis = $letzter_termin; $terminbisNorm = $letzter_terminNorm; }else{ $terminbis = $FILE_META{$file}->{"terminvon_30_$i"}; $terminbisNorm = $terminvonNorm; } } if (($count eq 1) || (($count>1) & ($terminoption eq "weiter"))){ $terminbis = $letzter_termin; $terminbisNorm = $letzter_terminNorm; } my $termin_sort = $terminvonNorm.'_'.int(rand(100)); my @TerminKurzInfo = ($terminvon,$terminbis,$terminoption,$file,$schlagzeile,$teaser,$directory,$filename,$erster_termin,$nr,$count,$differenz,$letzter_termin_option,$untertitel); my $archiv = ($terminvonNorm<$jetzt) & ($terminoption ne "weiter"); if ($archiv and $schlagzeile){ $MapTerminInVeranstaltung{$termin_sort} = [@TerminKurzInfo]; } }# for }# ($notIndex) }# foreach #Zeigen die Liste an my @termine_sort = sort keys %MapTerminInVeranstaltung; my @termine_reverse = reverse(@termine_sort); foreach $termin (@termine_reverse) { my @TerminKurzInfo = @{$MapTerminInVeranstaltung{$termin}}; my $terminvon = $TerminKurzInfo[0]; my $terminbis = $TerminKurzInfo[1]; my $terminoption = $TerminKurzInfo[2]; my $filename = $TerminKurzInfo[7]; my $schlagzeile = $TerminKurzInfo[4]; my $teaser = $TerminKurzInfo[5]; my $directory = $TerminKurzInfo[6]; my $erster_termin = $TerminKurzInfo[8]; my $nr = $TerminKurzInfo[9]; my $count = $TerminKurzInfo[10]; my $differenz = $TerminKurzInfo[11]; my $letzter_termin_option = $TerminKurzInfo[12]; my $untertitel = $TerminKurzInfo[13]; $t .= ''."\n"; $t .= ''; $t .= '' if ($terminoption =~ /^(aus|verschoben)$/); $t .= $terminvon; $t .= '' if ($terminoption =~ /^(aus|verschoben)$/); if (($terminbis ne $terminvon) and (($count eq 1) or (($count>1) and ($letzter_termin_option eq "weiter"))) ){ $t .= ' –
'; $t .= '' if ($terminoption =~ /^(aus|verschoben)$/); $t .= $terminbis; $t .= '' if ($terminoption =~ /^(aus|verschoben)$/); } $t .= '
(ENTFÄLLT)' if ($terminoption eq "aus"); $t .= '
(VERSCHOBEN)' if ($terminoption eq "verschoben"); #$t .= '
Fortsetzung' if ($terminoption eq "weiter"); $t .= ''."\n"; $t .= ''; $t .= ''; $t .= $schlagzeile.''; $t .= '
'.$untertitel.'' if ($untertitel); $t .= '
'.$teaser.'' if ($teaser ne ""); if ($count>1){ $t .= '
[Veranstaltungsreihe besteht aus '.$count.' Terminen]' if (($differenz>4) & ($letzter_termin_option eq "weiter")); } $t .= ''."\n"; $t .= ''."\n"; } #foreach $termin $t =''."\n".$t.'
' if ($t); schreibeSSI($t, $root_dir.$ssi_dir."/archiv_".$filenameprefix.".ssi"); } #ZeigeListeArchiv #Ausgabe für veranstaltungen.ssi sub VeranstaltungenInKuerze{ #Hash-Objekt für Paaren Termin => Veranstaltung my %MapTerminInVeranstaltung; my $terminvonNorm; my $t = ''; foreach my $file (@FILELIST) { my $filename = $FILE_META{$file}->{filename}; my $schlagzeile = $FILE_META{$file}->{titel}; my $untertitel = $FILE_META{$file}->{untertitel}; my $art = $FILE_META{$file}->{art}; my $teaser = $FILE_META{$file}->{teaser}; my $directory = $FILE_META{$file}->{directory}; my $jetzt = nowNormdate(); my $notIndex = not($filename =~ /(index|index_land|index_region|archiv|pr_veranstaltungen|mt_veranstaltungen|so_veranstaltungen|ab_veranstaltungen|koo_veranstaltungen|sonst_veranstaltungen)\.shtml$/ ); my $count = $FILE_META{$file}->{imperiablock_count_30}; my $erster_termin = $FILE_META{$file}->{terminvon_30_0}; my $erster_begin = zeit($FILE_META{$file}->{beginn_30_0}); my $block = $count-1; my $letzter_termin = ""; my $letzter_beginn = ""; $letzter_termin = $FILE_META{$file}->{"terminvon_30_$block"} if ($count>1); $letzter_beginn = zeit($FILE_META{$file}->{"beginn_30_$block"}) if ($count>1); if ($count eq 1) { $letzter_termin = $FILE_META{$file}->{terminbis_30_0}; $letzter_termin = $erster_termin if ($letzter_termin eq ""); $letzter_beginn = zeit($FILE_META{$file}->{ende_30_0}); $letzter_beginn = "22:30" if ($letzter_beginn eq ""); } my $letzter_terminNorm = german2normdate($letzter_termin.' '.$letzter_beginn); my $erster_terminNorm = german2normdate($erster_termin.' '.$erster_beginn); my $differenz = (normdate2time($letzter_terminNorm)-normdate2time($erster_terminNorm))/(24*60*60); my $terminbis = $letzter_termin; if ($notIndex){ for(my $i=0; $i<$count; $i++){ my $nr = ($i + 1); my $terminoption = $FILE_META{$file}->{"terminoption_30_$i"}; my $terminvon = $FILE_META{$file}->{"terminvon_30_$i"}; my $terminvon_beginn = zeit($FILE_META{$file}->{"beginn_30_$i"}); my $terminvonNorm = german2normdate($terminvon.' '.$terminvon_beginn); my $ok = not($terminoption =~ /^(aus|verschoben)$/); my $ok_count1 = ((($differenz<5) and ($terminoption ne "weiter")) or ($differenz>4)) and ($count>1); my $ok_count0 =($count eq 1) and ($differenz<5); my $termin_sort = $terminvonNorm.'_'.int(rand(100)); my @TerminKurzInfo = ($terminvon,$terminbis,$terminoption,$file,$schlagzeile,$teaser,$directory,$filename,$erster_termin,$nr,$differenz,$count,$untertitel); $zukuenftig = ($jetzt<$terminvonNorm) or ($jetzt<$letzter_terminNorm); if ($zukuenftig and $ok and $schlagzeile and ($ok_count1 or $ok_count0)){ $MapTerminInVeranstaltung{$termin_sort} = [@TerminKurzInfo]; } }# for }# ($notIndex) }# foreach #Zeigen die Liste an foreach $termin (sort keys %MapTerminInVeranstaltung) { my @TerminKurzInfo = @{$MapTerminInVeranstaltung{$termin}}; my $terminvon = $TerminKurzInfo[0]; my $terminbis = $TerminKurzInfo[1]; my $terminoption = $TerminKurzInfo[2]; my $filename = $TerminKurzInfo[7]; my $schlagzeile = $TerminKurzInfo[4]; my $teaser = $TerminKurzInfo[5]; my $teaserlen = length($teaser); my $directory = $TerminKurzInfo[6]; my $erster_termin = $TerminKurzInfo[8]; my $nr = $TerminKurzInfo[9]; my $differenz = $TerminKurzInfo[10]; my $count = $TerminKurzInfo[11]; my $untertitel = $TerminKurzInfo[12]; if ($schlagzeile and $zaehler<$zaehler_max){ $t .= '
  • '."\n"; $t .= '['.$terminvon;#.' differenz='.$differenz.' count:'.$count.' erster:'.$erster_termin.' letzter:'.$terminbis; $t .= ' – '.$terminbis if ((not(($terminbis eq $terminvon) or ($terminbis eq ''))) and ($differenz<5)); $t .= ']
    '.$schlagzeile.''; if ($untertitel) { $t .= ' – '.teaser_min($untertitel,100); } else { $t .= ' – '.teaser_min($teaser,100) if($teaser); } $t .='
    (Veranstaltungs­reihe, '.$nr.'.Termin, Beginn: '.$erster_termin.')'."\n" if ((not($terminvon eq $erster_termin)) and ($differenz>4) and ($terminoption eq "weiter")); #$t .=' (Forsetzung, Beginn: '.$erster_termin.')'."\n" if (($terminoption eq "weiter") & ($differenz<5)); $t .='
  • '."\n"; $zaehler++; }#if zaeler } #foreach $termin if ($t) { $t = '
  • '.$ueberschrift_rechts.':'."\n".'
      '."\n".$t."\n".'
    '."\n".'
  • '."\n"; }else{ $t = ''; } schreibeSSI($t, $root_dir.$ssi_dir."/".$filenameprefix.".ssi"); } #VeranstaltungenInKuerze