Christian, André, *,
> Bei Interesse kann ich das Script dahingehend abaendern, dass HTML
> entsprechend der Verzeichnisstruktur ausgegeben wird, von wo man es aufruft.
Ich habe da schonmal was vorbereitet:
==================================================
#!/usr/bin/perl
#
# ODT Meta Extractor
# Simon A. Wilper
# Feb 11 2007
#
# This Scriptlet is published under the Mdwddw-License.
use strict;
use warnings;
use IO::Dir;
use OpenOffice::OODoc;
# Gibt die Metadaten als Hafhref zurueck
sub extractDocumentMetaData {
my( $documentFilename ) = @_;
my $documentMeta = ooMeta( file => $documentFilename );
my %metaData = (
title => $documentMeta->title,
desc => $documentMeta->description,
creator => $documentMeta->creator,
date => $documentMeta->date
);
return \%metaData;
}
# Rekursiv die Verzeichnisse nach ot-Dateien durchsuchen
sub getDocuments {
my( $path, $indent ) = @_;
my $docDir = IO::Dir->new( $path );
return unless defined $docDir;
# absoluter Pfad des Dokuments oder Verzeichnisses
my $absPath;
# Hashref auf die Metadaten
my $meta_ref;
# ueber Verzeichnisinhalt iterieren
while ( $_ = $docDir->read ) {
# keine versteckten Dateien
next if ( /^\./ );
# absoluter Pfad aus uebergebenem Pfad und aktuelles Element
# ($_) zusammenstellen
$absPath = $path . '/' . $_;
# Wenn es sich dabei um ein Verzeichnis handelt,
# Selbstaufruf mit diesem Pfad und erhoehtem Indent
if ( -d $absPath ) {
print ' 'x$indent, "[DIR] $_\n";
getDocuments( $absPath, $indent+2 );
} else {
# Dateinamen ausgeben mit Indent
print ' 'x$indent, $_, "\n";
# Wenn es sich um ein ot-Dokument handelt:
if ( $absPath =~ m/\.ot.$/ ) {
# Metadatenextraktion vollziehen
$meta_ref = extractDocumentMetaData( $absPath );
# Ausgabe, wenn defined
print ' 'x$indent, " Titel: ",
$meta_ref->{'title'}, "\n"
if defined $meta_ref->{'title'};
#print ' 'x$indent, "Bemerkungen: ",
#$meta_ref->{'desc'}, "\n"
# if defined $meta_ref->{'desc'};
print ' 'x$indent, " Ersteller: ",
$meta_ref->{'creator'}, "\n"
if defined $meta_ref->{'creator'};
print ' 'x$indent, " Datum: ",
$meta_ref->{'date'}, "\n"
if defined $meta_ref->{'date'}
}
}
}
}
# Starten mit Indet=1 im aktuellen Verzeichnis
getDocuments( '.', 1 );
==================================================
Ihr koennt das jetz auf eure Beduerfnisse anpassen, also dass es am Ende
HTML ausgibt... oder mir den gewuenschten HTML-Code geben und darin
markieren, eg. durch %TITEL% markieren, was wo hin soll.
Gruss
Simon
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]