Projekte

use Imperia; sub vergleichen() { my $a_status = ($FILE_META{$a}->{status} eq "laufend") ? 0 : (($FILE_META{$a}->{status} eq "abgeschlossen") ? 1 : 2 ); my $b_status = ($FILE_META{$b}->{status} eq "laufend") ? 0 : (($FILE_META{$b}->{status} eq "abgeschlossen") ? 1 : 2 ); return ($a_status cmp $b_status or (($b_status eq $a_status) and ($FILE_META{$a}->{titel} cmp $FILE_META{$b}->{titel}))); } 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); } my %statusEn = ( "laufend" => "in progress", "abgeschlossen" => "finished", "geplant" => "in preparation" ); $mitarbeiterverzeichnis = $metainfo->getValues("mitarbeiterverzeichnis"); $ssidir = $metainfo->getValues("ssiverzeichnis"); $ueClass = $metainfo->getValues("ueClass"); $htdocsroot = $imperia->common->{system_conf}->{'SITE-DIR'}; $htdocsroot =~ s/\/site$/\/htdocs/gi; $kein_titel_ssi = $metainfo->getValues("kein_titel_ssi"); $titel_ssi = $metainfo->getValues("titel"); if ($mitarbeiterverzeichnis and $ssidir) { clearlist(); $filemaske = $metainfo->getValues("mitarbeiterfilemaske"); $filemaske = "\.s?html?" if (!$filemaske); filemask($filemaske); ireaddir($mitarbeiterverzeichnis); my @mitarbeiterliste = @FILELIST; foreach my $mitarbeiterfile (@mitarbeiterliste) { if ($FILE_META{$mitarbeiterfile}->{"template"} =~ /lg_mitarbeiterseite/i ) { my $ssihtml = ""; my $li = ""; my $kategorie = ""; my $okay = 0; $mitarbeiterurl = $FILE_META{$mitarbeiterfile}->{directory}."/".$FILE_META{$mitarbeiterfile}->{filename}; clearlist(); my $filemaske = $metainfo->getValues("filemaske"); $filemaske = "\.s?html?" if (!$filemaske); filemask($filemaske); ireaddir($metainfo->getValues("directory")); @FILELIST = sort(vergleichen @FILELIST); foreach my $file (@FILELIST) { $okay=0; if ($FILE_META{$file}->{template} eq "lg_projekt") { for (my $i=0; $i<$FILE_META{$file}->{"imperiablock_count_3"}; $i++) { $okay = 1 if ($FILE_META{$file}->{"projektleiterurl_3_$i"} eq $mitarbeiterurl); } for (my $i=0; $i<$FILE_META{$file}->{"imperiablock_count_4"}; $i++) { $okay = 1 if ($FILE_META{$file}->{"projektmitarbeiterurl_4_$i"} eq $mitarbeiterurl); } if ($okay and $FILE_META{$file}->{'_publikationsorte'}) { $okay = ($FILE_META{$file}->{'publikationsort-mitarbeiter'} eq 'mitarbeiter'); } if ($okay) { my $status = $FILE_META{$file}->{status}; my $laufzeit = $FILE_META{$file}->{laufzeit}; my $umfang = $FILE_META{$file}->{umfang}; my $foerderer = ""; for (my $i=0; $i<$FILE_META{$file}->{"imperiablock_count_5"}; $i++) { $foerderer .= ", " if ($foerderer ne ""); $foerderer .= $FILE_META{$file}->{"foerderer_5_$i"}; } $foerderer = ", Förderer: $foerderer" if ($foerderer ne ""); $laufzeit = ", Laufzeit: $laufzeit" if ($laufzeit); $umfang = ", Umfang: $umfang" if ($umfang ne ""); $li .= "
  • {directory}/$FILE_META{$file}->{filename}\">$FILE_META{$file}->{titel}, $status $foerderer $laufzeit
  • \n"; } # if okay } # if template okay } # foreach publikationsfile if ($FILE_META{$mitarbeiterfile}->{filename} ne "") { if ($li){ if($kein_titel_ssi){ $ssihtml .= "
      $li
    "; }else{ $ssihtml .= "getValues("filename") ; #Die HTML-Kommentar-Tags sind notwendig, da im Template die SSI-Anweisung in einem zusätzlichen Kommentar eingeschlossen sind - für den Fall, daß das SSI-Codefragment nicht vorhanden ist, da sonst eine Fehlermeldung auf der Seite erscheint, die durch diese Vorkerhung nur auskommentiert im Code stehen # $filedir = $htdocsroot."/".$ssidir; # if (!chdir($filedir)) { # mkdir $filedir, 0777 or die "cannot create $filedir"; # } schreibeSSI($ssihtml, $htdocsroot.$ssidir."/projekte_".$FILE_META{$mitarbeiterfile}->{filename}) if ($ssihtml); # open(DATEI,">".$htdocsroot."/".$ssidir."/projekte_".$FILE_META{$mitarbeiterfile}->{filename}) or die( "" ); # print DATEI $ssihtml; # close(DATEI); } # if } # if template ist richtig } # foreach mitarbeiterfile } # if mitarbeiterverzeichnis and ssidir clearlist(); $filemaske = "\.s?html"; filemask($filemaske); ireaddir($metainfo->getValues("directory")); #sort_by_metafield('titel'); @FILELIST = sort(vergleichen @FILELIST); my $status = ""; my $c = ""; my $wt = ""; my $en = ""; my $i = 0; foreach my $file (@FILELIST) { my $projekttitel = $FILE_META{$file}->{titel}; $keineIndexseite = not( $filename =~ /^(index|sa_index)\.s?html?$/ ); my $zupublizieren = $FILE_META{$file}->{'publikationsort-lehrgebiet'} || $FILE_META{$file}->{'publikationsort-institut'}; if ($projekttitel and $zupublizieren and $keineIndexseite) { if ($FILE_META{$file}->{status} ne $status) { $c .= "" if ($status); $wt .= "" if ($status); $status = $FILE_META{$file}->{status}; $c .= ""; $wt .= "

    $status

    \n\n" if ($status); $en .= "\n" if ($status); print $c;
    16.08.2017