in archive/assets/de/Archive/dev/makemap.pl [578:759]
sub makesitemap {
sub writemapgroup {
my ($agroup,$level) = @_;
my $intro = "";
# soll die Gruppe ueberhaupt ausgegeben werden?
if (($agroup->{'Level'}<=$sitemaplevel)and ($agroup->{'Beschreibung'} ne $noshow)) {
for ($i=2;$i<$level;$i++) { $intro .= "\t" };
# Fuer jede Gruppe einen Link, wenn es das oberste Level ist
if ($level == 2) {
printf OUTFILE "\n$intro<a name=\"%s\"></a>\n",$agroup->{'Link'};
}
# Fuer jede Gruppe eine Ueberschrift, wenn nicht leer
if ($agroup->{'Text'} ne '') {
printf OUTFILE "\n$intro<h$level>%s ",
$agroup->{'Text'};
if ($level == 2) { printf OUTFILE "<a href='#Top'>^</a>"; }
printf OUTFILE "</h$level>\n";
}
# Fuer jede Gruppe einen Beschreibungstext
if ($agroup->{'Beschreibung'} ne '') {
printf OUTFILE "$intro%s\n", $agroup->{'Beschreibung'};
}
# und jetzt eine Liste
if ($agroup->{'Link'} ne '') {
print OUTFILE "$intro<ul>\n";
# und jetzt die Elemente der Gruppe
foreach $adata (@{$data{$agroup->{'Link'}}}){
if (($adata->{'Level'}<=$sitemaplevel)
and ($adata->{'Beschreibung'} ne $noshow)) {
# Eine Gruppe als Link -> Untergruppe
if ($adata->{'Link'} !~ /^http|\./) {
printf OUTFILE "$intro<li> ";
&writemapgroup ($adata,$level+1);
printf OUTFILE "$intro</li>\n",
}
# Keine Untergruppe
else {
# wenn kein Text definiert ist, wird Pfad+Datei verwendet
printf OUTFILE "$intro<li> <a href=\"%s\"> %s </a>\n$intro\t%s </li>\n",
$adata->{'Link'},
($adata->{'Text'} ne "")? $adata->{'Text'}:$adata->{'Link'},
($adata->{'Beschreibung'} ne "")?
$adata->{'Beschreibung'}:" ";
}
}
} # foreach adata
printf OUTFILE "$intro</ul>";
}
} # sitemaplevel
} # sub writemapgroup
print VERBOSEOUT "Die Sitemap(s) werden geschrieben: " if $verbose;
# Nun werden die Ausgabe-html Dateien geschrieben.
foreach $atype (@{$data{'perl-sitemap'}}) {
$outfile = $atype->{'Text'};
#$sitemapstil = $atype->{'Stil'};
$sitemaplevel = $atype->{'Level'};
$sitemaptitle = $atype->{'Beschreibung'};
$kato = $atype->{'Link'};
print VERBOSEOUT $outfile if $verbose;
open (OUTFILE, '>:utf8',$outfile) or die "Kann $outfile nicht oeffnen";
$Datum = strftime "%A, %d. %B %Y %H:%M:%S", localtime( time);
$sitemapkopf = <<EOT;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="de">
<head>
<title>$sitemaptitle</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="styles/de.css" media="screen" type="text/css" />
<link rel="stylesheet" href="styles/de_print.css" media="print" type="text/css" />
<link rel="stylesheet" title="mit Navbar" href="styles/de_navbar.css" media="screen" type="text/css" />
<link rel="alternate stylesheet" title="ohne Navbar" media="screen" href="styles/de_nonavbar.css" type="text/css" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="version" content="$outfile,V$Version $Datum $ENV{'USERNAME'}" />
<meta name="author" content="$ENV{'USERNAME'}" />
<style type="text/css">
/*<![CDATA[*/
<!--
\@import url("styles/inst_de.css");
-->
/*]]>*/
</style>
<link rel="stylesheet" type="text/css" href="http://www.openoffice.org/branding/css/print.css" media="print" />
<link rel="shortcut icon" href="http://www.openoffice.org/favicon.ico" />
<meta name="keywords" content="OpenOffice.org, Open Office, OpenOffice, openoffice, StarOffice, Star Office, OOo, ooo, xml, open source, developer, UNO" />
<meta name="description" content="de.OpenOffice.org: Sitemap" />
<!-- >
Kommentare zur Seite
Achtung: Diese Seite wird automatisch mit dem Skript makemap.pl erzeugt.
Sie kann zwar direkt ver�ndert und korrigiert werden, allerdings gehen
�nderungen, die nicht auch in der Flattext Datenbank site.data eingepflegt
werden, beim n�chsten �berschreiben verloren. Im Zweifelsfall bitte auf
devde um die �nderung bitten.
\$Id: makemap.pl,v 1.8 2006/08/15 06:52:27 markomlm Exp $
< -->
</head>
<body>
<a name="Top"></a>
<div id="body2">
<table id="main2" summary="body2">
<tr>
<td id="body2td">
<div id="body2col">
<div id="toptabs2">
EOT
$sitemapfuss = <<EOT2;
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
</p>
</div>
</body>
</html>
EOT2
print OUTFILE $sitemapkopf;
# ueber alle Gruppen in der Kategorie
# Eine Linkliste zu den Gruppen steht am Anfang.
print OUTFILE "\n<ul>";
foreach $agroup (@{$data{$kato}}) {
if (($agroup->{'Level'}<=$sitemaplevel)
and ($agroup->{'Beschreibung'} ne $noshow)){
printf OUTFILE "\n<li><a href=\"#%s\">%s</a></li>",
$agroup->{'Link'},
$agroup->{'Text'};
}
}
print OUTFILE "\n</ul>\n</div>\n<br /><br />";
print OUTFILE '<hr noshade="noshade" size="1" />';
print OUTFILE "\n</div>\n</td>\n</tr>\n</table>";
# Dann folgt die Seitenueberschrift
print OUTFILE "\n<h1>$sitemaptitle</h1>\n";
# Jetzt wird Gruppenweise geschrieben
# wobei jeder Gruppe von einer Zeile mit der
# Richtigen Kategorie referenziert wird
foreach $agroup (@{$data{$kato}}) {
&writemapgroup ($agroup,2);
}
print OUTFILE $sitemapfuss;
close OUTFILE;
print VERBOSEOUT ", " if $verbose;
} # foreach perl-sitemap
print VERBOSEOUT ".\n" if $verbose;
} #makesitemap