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]

Antwort per Email an