Publikationen

use Imperia; %kategorienueberschrift = ( "Buch" => "Bücher", "Buchbeitrag" => "Buchbeiträge", "Artikel" => "Artikel in Zeitschriften", "Konferenzbandbeitrag" => "Konferenzbandbeiträge", "Anleitung" => "Anleitungen", "Herausgeberwerk" => "Herausgeberwerke", "Kollektion" => "in Kollektion", "Diplom/Studienarbeit" => "Diplom/Studienarbeiten", "Technischer Bericht" => "Technische Berichte", "Dissertation" => "Dissertationen", "Konferenzband" => "Konferenzbände", "Zeitschrift" => "Zeitschriften", "Online-Datenbank" => "Online-Datenbanken", "Sonstiges" => "Sonstiges", "Arbeitspapier" => "Arbeitspapiere", "Studienbrief" => "Studienbriefe", ); %kategorienordnung = ( # für Sortierung "Buch" => "c", "Kollektion" => "d", "Buchbeitrag" => "e", "Artikel" => "f", "Konferenzbandbeitrag" => "h", "Herausgeberwerk" => "g", "Technischer Bericht" => "g1", "Anleitung" => "k", "Konferenzband" => "k1", "Zeitschrift" => "k2", "Dissertation" => "l", "Diplom/Studienarbeit" => "l1", "Online-Datenbank" => "l3", "Sonstiges" => "x", "Studienbrief" => "m", "Arbeitspapier" => "o", ); sub vergleichen() { # Sortierung nach eingestelltem Sortierfeld, Titel my $sortierfeld = 'kategorie'; $sortierfeld = 'erscheinungsjahr' if ($sortierfeld eq ''); my $a_st = $FILE_META{$a}->{$sortierfeld}; my $b_st = $FILE_META{$b}->{$sortierfeld}; my $a_le = $FILE_META{$a}->{'lesetipp'}; my $b_le = $FILE_META{$b}->{'lesetipp'}; if ($a_le and $b_le) { return ( ($b_st cmp $a_st) || ( ($a_st eq $b_st) && (($b_le cmp $a_le) || (($b_le eq $a_le) && ($FILE_META{$a}->{titel} cmp $FILE_META{$b}->{titel}))) ) ); }else{ return ( ($b_st cmp $a_st) || (($a_st eq $b_st) && ($FILE_META{$a}->{titel} cmp $FILE_META{$b}->{titel}))); } } sub vergleichen_kategorie2() { # Sortierung nach Kategorie/Institutsreihe, Erscheinungsjahr, Erscheinungsvermerk my $a_k = $FILE_META{$a}->{kategorie}; my $b_k = $FILE_META{$b}->{kategorie}; my $a_kat = "".$kategorienordnung{$a_k}; my $b_kat = "".$kategorienordnung{$b_k}; $a_kat = "x" if ($a_kat eq ""); $b_kat = "x" if ($b_kat eq ""); my $a_st = $FILE_META{$a}->{'erscheinungsjahr'}; my $b_st = $FILE_META{$b}->{'erscheinungsjahr'}; return (($a_kat cmp $b_kat) || ($a_kat eq $b_kat) && ( ($b_st cmp $a_st) || (($a_st eq $b_st) && ($FILE_META{$a}->{erscheinungsvermerk} cmp $FILE_META{$b}->{erscheinungsvermerk})))); } sub vergleichen_kategorie() { # Sortierung nach Kategorie, Erscheinungsjahr, Titel my $a_kat = "".$kategorienordnung{$FILE_META{$a}->{kategorie}}; my $b_kat = "".$kategorienordnung{$FILE_META{$b}->{kategorie}}; $a_kat = "x" if ($a_kat eq ""); $b_kat = "x" if ($b_kat eq ""); my $a_st = $FILE_META{$a}->{'erscheinungsjahr'}; my $b_st = $FILE_META{$b}->{'erscheinungsjahr'}; return (($a_kat cmp $b_kat) || ($a_kat eq $b_kat) && ( ($b_st cmp $a_st) || (($a_st eq $b_st) && ($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 $mitarbeiterverzeichnis = $metainfo->getValues("mitarbeiterverzeichnis"); my $ssidir = $metainfo->getValues("ssiverzeichnis"); my $ueClass = $metainfo->getValues("ueClass"); my $listentyp = $metainfo->getValues("listentyp"); my $kein_titel_ssi = $metainfo->getValues("kein_titel_ssi"); my $htdocsroot = $imperia->common->{system_conf}->{'SITE-DIR'}; $htdocsroot =~ s/\/site$/\/htdocs/gi; 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 = ""; $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_kategorie @FILELIST); foreach my $file (@FILELIST) { my $autoren = ""; my $okay = 0; for (my $i=0; $i<$FILE_META{$file}->{"imperiablock_count_3"}; $i++) { $autorurl_lng1 = $FILE_META{$file}->{"autorurl_3_$i"}; $autorurl_lng2 = $autorurl_lng1; $autorurl = $autorurl_lng1; if (not($autorurl =~ /^(.+)(_[a-z]{2})(\.s?html?)$/)) { if ($autorurl =~ /^(.+)(\.s?html?)$/) { $autorurl = $autorurl_lng2; } } $okay = 1 if ( ($autorurl_lng1 eq $mitarbeiterurl) or ($autorurl_lng2 eq $mitarbeiterurl) ); my $neuerautor = ($autorurl_lng1) ? ''.$FILE_META{$file}->{"autor_3_$i"}.'' : $FILE_META{$file}->{"autor_3_$i"}; $autoren .= (($autoren) ? "; " : "" ) . $neuerautor; } # for i if ($okay) { $okay = ($FILE_META{$file}->{'publikationsort-mitarbeiter'} eq 'mitarbeiter'); } if ($okay) { my $kategorie_neu = "".$kategorienueberschrift{$FILE_META{$file}->{kategorie}}; $kategorie_neu = $kategorienueberschrift{"Sonstiges"} if ($kategorie_neu eq ""); my $buchKategorie = $FILE_META{$file}->{kategorie}; $keinBuch = not(($buchKategorie eq "Herausgeberwerk") or ($buchKategorie eq "Buch") or ($buchKategorie eq "Technischer Bericht") or ($buchKategorie eq "Dissertation") or ($buchKategorie eq "Diplom/Studienarbeit")); if ($kategorie_neu ne $kategorie) { $li .= '' if ($kategorie); $kategorie = $kategorie_neu; $li .= '

'.$kategorie.'

<'.$listentyp.' class="publikationenliste">'; } # if kategorie_neu ... $li .= '
  • '.$autoren.': '.$FILE_META{$file}->{titel}.', '; $li .= "in " if ($keinBuch); $li .= "lectured at " if ($FILE_META{$file}->{rubriken_name } eq "Presentations"); $li .= $FILE_META{$file}->{erscheinungsvermerk}.'
  • '."\n"; } # if okay } # foreach file if ($FILE_META{$mitarbeiterfile}->{filename} ne "") { $li .= ''."\n" if ($kategorie); if ($li ne ""){ if ($kein_titel_ssi){ $ssihtml = $li; }else{ $ssihtml = '".$ssihtml." " ); print DATEI $ssihtml; close(DATEI); } # if ssi-code zu schreiben } # if template ist richtig } # foreach mitarbeiterfile } # if mitarbeiterverzeichnis and ssidir gesetzt clearlist(); my $filemaske = $metainfo->getValues("filemaske"); $filemaske = "\.s?html" if (!$filemaske); filemask($filemaske); ireaddir($metainfo->getValues("directory")); my $sprungmarken = $metainfo->getValues("sprungmarken"); @FILELIST = sort(vergleichen_kategorie2 @FILELIST); my $listenTag = 'ul'; $listenTag = 'ol' if ($listenTag eq ''); my $sortierfeldname = 'kategorie'; $sortierfeldname = 'erscheinungsjahr' if ($sortierfeldname eq ''); $aSortierfeld = ''; my $c = ""; # HTML-Code fuer Ausgabe my $cSprungMenu = ''; my $listenNr = 0; my $zupublizieren = ""; foreach my $file (@FILELIST) { my $titel = $FILE_META{$file}->{titel}; my $aSortierfeld_neu = $FILE_META{$file}->{$sortierfeldname}; $aSortierfeld_neu = $kategorienueberschrift{$aSortierfeld_neu} if ($sortierfeldname eq 'kategorie'); $aSortierfeld_neu = '' if ( ($sortierfeldname eq 'autor_3_0') or ($sortierfeldname eq 'titel') ); $zupublizieren = $FILE_META{$file}->{"publikationsort-lehrgebiet"}; if (($aSortierfeld_neu) and ($titel) and ($zupublizieren)) { if ($aSortierfeld_neu ne $aSortierfeld) { $c .= '
    '."\n" if ($aSortierfeld ne ''); $cSprungMenu .= '
  • '.$aSortierfeld_neu.'
  • '; $c .= '
    '; if ($ueClass){ $c .= '

    '; }else{ $c .= '

    '; } $c .= ''.$aSortierfeld_neu.'

    <'.$listenTag.'>'."\n"; $aSortierfeld = $aSortierfeld_neu; $listenNr++; } # if my $buchKategorie = $FILE_META{$file}->{kategorie}; $keinBuch = not(($buchKategorie eq "Herausgeberwerk") or ($buchKategorie eq "Buch") or ($buchKategorie eq "Dissertation") or ($buchKategorie eq "Dissertation") or ($buchKategorie eq "Diplom/Studienarbeit")); my $lesetipp = $FILE_META{$file}->{lesetipp}; my $autoren = ''; for (my $i=0; $i<$FILE_META{$file}->{'imperiablock_count_3'}; $i++) { my $autorurl = $FILE_META{$file}->{"autorurl_3_$i"}; my $neuerautor = ($autorurl) ? ''.$FILE_META{$file}->{"autor_3_$i"}.'' : $FILE_META{$file}->{"autor_3_$i"}; $autoren .= (($autoren) ? "; " : "" ).$neuerautor; } # for #$autoren .= ': ' if ($autoren); if (not($FILE_META{$file}->{erscheinungsvermerk})) { $c .= '
  • '; $c .= 'Lesetipp '.$lesetipp.': ' if $lesetipp; $c .= $autoren.' '.$titel.'
  • '."\n"; } else { $c .= '
  • '; $c .= 'Lesetipp '.$lesetipp.': ' if $lesetipp; $c .= $autoren.': '.$titel.', '; $c .= "in " if ($keinBuch); $c .= $FILE_META{$file}->{erscheinungsvermerk}.'
  • '."\n"; } } #if } # foreach $c .= '
    '."\n" if ($aSortierfeld and ($aSortierfeld ne '')); print '' if ($sprungmarken eq "mit"); print $c;
    30.10.2014