Fortbildungsveranstaltungen

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"); @readdirs = ( '/arbeiten/personalthemen/fortbildung/2017', '/arbeiten/personalthemen/fortbildung/2018', ); $ssi_dir = '/arbeiten/personalthemen/fortbildung/include'; $filenameprefix = 'fortbildung'; $ueberschrift = 'Fortbildungsveranstaltungen'; $aktuelleTagen = $metainfo->getValues("tage"); $section = $metainfo->getValues("section"); $intern_max = 4; %kategorie = ( "1a" => "Ausbildung", "2a" => "(Büro-)Organisation", "3a" => "DV-Schulungen", "4" => "Gleichstellung, Diversität und Inklusion", "5a" => "Seminare für Führungskräfte", "5b" => "Qualifizierungsreihe für Führungskräfte", "5c" => "Führung", "6" => "Familie & Gesundheit", "6b" => "Familie & Gesundheit", "6c" => "Familie & Gesundheit", "7a" => "Kommuni­kation und persön­liche Entwicklung", "8" => "Wissenschaft", "8a" => "Daten­verar­beitung und Methoden", "8b" => "Netzwerk Promoven­dinnen", "8c" => "Academic English", "8d" => "Gute Lehre", "8e" => "Karriere in Wissen­schaft und Wirtschaft", "8f" => "Kommunika­tion & Präsenta­tion", "8g" => "Promotion und Disputation", "8h" => "Medien­kompetenz", "8i" => "Gut zu wissen", "8k" => "Wissenschaft und Management", "8l" => "Führung in der Wissenschaft", "9" => "ZMI Medien­werkstatt", "10" => "Schnupper­woche – Fort­bildung", "10a" => "Schnupper­woche – Fort­bildung: Kommuni­kation", "10b" => "Schnupper­woche – Fort­bildung: Gesund­heit", "10c" => "Schnupper­woche – Fort­bildung: Büro­orga­nisation", "10d" => "Schnupper­woche – Fort­bildung: Arbeits­sicher­heit", "10e" => "Schnupper­woche – Fort­bildung: Methodische Kom­pe­ten­zen", ); # 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}; 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 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); } #-----------------Gesamtliste clearlist(); filemask($filemaske); #ireaddir($readdir); foreach my $dir (@readdirs) { ireaddir($dir); } @FILELIST = sort(cmp_germandate @FILELIST); #&log("<--->"); my $laenge = @FILELIST; my $ssi_zukunft = ''; my $zaehler = 0; my $jetzt = nowNormdate(); my $ssi_intern = ''; foreach my $file (@FILELIST) { my $directory = $FILE_META{$file}->{directory}; my $filename = $FILE_META{$file}->{filename}; my $thema = $FILE_META{$file}->{titel}; my $individuell = $FILE_META{$file}->{termin_individ}; my $terminvon = $FILE_META{$file}->{terminvon}; my $terminbis = $FILE_META{$file}->{terminbis}; my $leitung = $FILE_META{$file}->{leitung}; my $kategorie = $FILE_META{$file}->{fortbildung_kategorie}; my $kategorieNr = $FILE_META{$file}->{kategorie}; my $adobe = $FILE_META{$file}->{adobe}; my $terminvonNorm = german2normdate($terminvon); if ($individuell){$terminvonNorm = $jetzt;} my $terminbisNorm = german2normdate($terminbis); $terminbisNorm = $terminvonNorm if (not($terminbisNorm)); $keineIndexseite =(($filename ne "") and not( $filename =~ /^(index|sa_index|index_archiv|index_zukunft|archiv)\.(shtml|htms)$/ )); $zukuenftig = ($jetzt<=$terminvonNorm); $differenzTage = (normdate2time($terminvonNorm) - normdate2time($jetzt)) / (24*60*60); $aktuell = ($differenzTage<=$aktuelleTagen and $differenzTage>=0); $archiv = ($differenzTage<0); # Ausgabe fuer index.shtml if ($keineIndexseite and $zukuenftig and $aktuell) { print "\n\n\n\n\n\n\n\n" if ($zaehler==0); print "\n"; print "\n"; print "\n"; print "\n"; #print ''."\n"; print "\n"; print "\n"; #Ausgabe fuer Uni Intern Home if ($zaehler<$intern_max) { my $intern .= "
  • "; $intern .= $terminvon; $intern .= "individuell" if ($individuell); $intern .= ": $thema
  • \n"; $ssi_intern .= $intern; } #if zaehler $zaehler++; } # if index } #foreach file if ($zaehler == 0) { print "

    Zur Zeit sind keine Fortbildungsveranstaltungen geplant.

    \n"; }else{ print "
    SeminarTerminReferent/-inKategorie/ Zielgruppen
    $thema"; print "
    (\"\" via Adobe Connect möglich)" if ($adobe); print "
    "; print $terminvon; print "- $terminbis" if ($terminbis); print "individuell" if ($individuell and not($terminvon)); print "$leitung'.$kategorie{$directory}.'$kategorie{$kategorieNr}
    \n"; } #-----------------Fortlaufende Seminare clearlist(); filemask($filemaske); #ireaddir($readdir); foreach my $dir (@readdirs) { ireaddir($dir); } @FILELIST = sort(cmp_germandate @FILELIST); #&log("<--->"); my $laenge = @FILELIST; my $zaehler = 0; foreach my $file (@FILELIST) { my $directory = $FILE_META{$file}->{directory}; my $filename = $FILE_META{$file}->{filename}; my $thema = $FILE_META{$file}->{titel}; my $kein_terminvon = not($FILE_META{$file}->{terminvon}); my $leitung = $FILE_META{$file}->{leitung}; my $fortlaufend = $FILE_META{$file}->{fortlaufend}; my $wochentag = $FILE_META{$file}->{fortlaufend_wochentag}; $keineIndexseite =(($filename ne "") and not( $filename =~ /^(index|sa_index|index_archiv|index_zukunft|archiv)\.(shtml|htms)$/ )); if ($keineIndexseite and $fortlaufend and $kein_terminvon) { print "

    Fortlaufende Seminare

    \n\n\n\n\n\n\n\n" if ($zaehler==0); print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; $zaehler++; } # if } #foreach file if ($zaehler == 0) { print ""; }else{ print "
    SeminarWochentagAnsprechpartner/-in
    $thema$wochentag$leitung
    \n"; } #----------------Geplante Seminare clearlist(); filemask($filemaske); #ireaddir($readdir); foreach my $dir (@readdirs) { ireaddir($dir); } @FILELIST = sort(cmp_germandate @FILELIST); #&log("<--->"); my $laenge = @FILELIST; my $zaehler = 0; foreach my $file (@FILELIST) { my $directory = $FILE_META{$file}->{directory}; my $filename = $FILE_META{$file}->{filename}; my $thema = $FILE_META{$file}->{titel}; my $kein_terminvon = not($FILE_META{$file}->{terminvon}); my $kategorie = $FILE_META{$file}->{fortbildung_kategorie}; my $kategorieNr = $FILE_META{$file}->{kategorie}; my $adobe = $FILE_META{$file}->{adobe}; my $leitung = $FILE_META{$file}->{leitung}; my $terminunklar = $FILE_META{$file}->{terminunklar}; $keineIndexseite =(($filename ne "") and not( $filename =~ /^(index|sa_index|index_archiv|index_zukunft|archiv)\.(shtml|htms)$/ )); if ($keineIndexseite and $terminunklar and $kein_terminvon) { print "

    Geplante Seminare

    \n\n\n\n\n\n\n\n" if ($zaehler==0); print "\n"; print "\n"; print "\n"; #print ''."\n"; print "\n"; print "\n"; $zaehler++; } # if } #foreach file if ($zaehler == 0) { print ""; }else{ print "
    SeminarReferent/-inKategorie/Zielgruppen
    $thema"; print "
    (\"\" via Adobe Connect möglich)" if ($adobe); print "
    $leitung'.$kategorie{$directory}.'$kategorie{$kategorieNr}
    \n"; } #Archiv clearlist(); filemask($filemaske); #ireaddir($readdir); foreach my $dir (@readdirs) { ireaddir($dir); } @FILELIST = sort(cmp_germandate @FILELIST); reverse_list(); #&log("<--->"); my $laenge = @FILELIST; my $ssi_archiv = ''; my $ssi_archiv_ohnetermin = ''; my $zaehler = 0; my $jetzt = nowNormdate(); foreach my $file (@FILELIST) { my $directory = $FILE_META{$file}->{directory}; my $filename = $FILE_META{$file}->{filename}; my $thema = $FILE_META{$file}->{titel}; my $kategorie = $FILE_META{$file}->{fortbildung_kategorie}; my $kategorieNr = $FILE_META{$file}->{kategorie}; my $adobe = $FILE_META{$file}->{adobe}; my $terminvon = $FILE_META{$file}->{terminvon}; my $terminbis = $FILE_META{$file}->{terminbis}; my $ort = $FILE_META{$file}->{ort}; my $leitung = $FILE_META{$file}->{leitung}; my $terminvonNorm = german2normdate($terminvon); $keineIndexseite =(($filename ne "") and not( $filename =~ /^(index|sa_index|index_archiv|index_zukunft|archiv)\.(shtml|htms)$/ )); $differenzTage = (normdate2time($terminvonNorm) - normdate2time($jetzt)) / (24*60*60); $archiv = (($differenzTage<0) and $terminvon and $thema); $archiv_ohnetermin = (($differenzTage<0) and $thema and not($terminvon)); $zaehler++; my $s = "\n"; $s .= ""; $s .= $terminvon if ($terminvon); $s .= " " if not($terminvon); $s .= "- $terminbis" if ($terminbis); $s .= "\n"; $s .= "$thema"; $s .= "
    (\"\" via Adobe Connect möglich)" if ($adobe); $s .= "\n"; $s .= "$leitung\n"; #$s .= ''.$kategorie{$directory}.''."\n"; $s .= "$kategorie{$kategorieNr}"; $s .= "\n\n"; # Ausgabe fuer Archiv-SSI if ( $keineIndexseite and $archiv ) { $ssi_archiv .= $s; } if ( $keineIndexseite and $archiv_ohnetermin ) { $ssi_archiv_ohnetermin .= $s; } } #foreach file archiv #$ssi_archiv = ''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".$ssi_archiv.$ssi_archiv_ohnetermin.''."\n".'
    TerminSeminarReferent/-inKategorie/Zielgruppen
    ' if ($ssi_archiv); $ssi_archiv = "\n\n\n\n\n\n\n\n$ssi_archiv\n
    TerminSeminarReferent/-inKategorie/Zielgruppen
    " if ($ssi_archiv); schreibeSSI($ssi_archiv, $root_dir."/arbeiten/personalthemen/fortbildung/gesamtliste/include/fortbildung_archiv.ssi"); schreibeSSI($ssi_intern, $root_dir."/arbeiten/include/fortbildung_intern.ssi");
    Personalentwicklung | 09.08.2018