Thread CGI::Application::Plugin::Stream und HTML::Template::Compiled (11 answers)
Opened by MartinR at 2008-10-02 14:12

MartinR
 2008-10-15 09:04
#115533 #115533
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
... also momentan ist es wie folgt gelöst:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Seminartermin für Outlook-Kalender ausgeben
sub SendeOutlookTermin {
        my $self = shift;

        $self->{ICALENDAR_TMPL} = HTML::Template::Compiled->new (
                filename => 'htc_icalendar.ics',
                path     => '/usr/local/httpd/htdocs/cgi-bin/seminare_v2/tmpl/',
                );

        $self->ICalendar::HoleIcalTerminDaten();

        $self->{DOWNLOAD} = 'files/'.$self->session->id().'.ics';

        open (ICAL, ">$self->{DOWNLOAD}") || die 'Fehler bei open \n';
                print ICAL $self->{ICALENDAR_TMPL}->output();
        close(ICAL) || die 'Fehler bei close \n';

        $self->{DateiDownloadTyp} = 'ics';

}


# Seminartermin für Outlook-Kalender aus DB auslesen
sub HoleIcalTerminDaten {
        my $self = shift;

        $self->SqlStatements::HoleIcalTerminDatenSQL() unless defined $self->{HoleIcalTerminDatenSQL};
        $self->{HoleIcalTerminDatenSQL}->execute( $self->{TerminID} );

        my ( $seminar_nr, $seminar_titel, $start_datum, $start_uhrzeit, $ende_datum, $ende_uhrzeit, $start_datum_ical, $start_uhrzeit_ical, $ende_datum_ical, $ende_uhrzeit_ical );
        $self->{HoleIcalTerminDatenSQL}->bind_columns(undef, \( $seminar_nr, $seminar_titel, $start_datum, $start_uhrzeit, $ende_datum, $ende_uhrzeit, $start_datum_ical, $start_uhrzeit_ical, $ende_datum_ical, $ende_uhrzeit_ical ));
        $self->{HoleIcalTerminDatenSQL}->fetch();

        $self->{ICALENDAR_TMPL}->param(
                CGISESSID => $self->session->id(),
                SEMINAR_NR => "$seminar_nr",
                SEMINAR_TITEL => "$seminar_titel",
                SEMINAR_VON => "$start_datum $start_uhrzeit",
                SEMINAR_BIS => "$ende_datum $ende_uhrzeit",
                SEMINAR_VON_DATETIME => "$start_datum_ical"."T$start_uhrzeit_ical",
                SEMINAR_BIS_DATETIME => "$ende_datum_ical"."T$ende_uhrzeit_ical",
                JETZT_DATETIME => "20081006T080000",
                );
}


Und in meinem Application-File steht dann u.a. folgendes

Code (perl): (dl )
1
2
3
4
5
...
use CGI::Application::Plugin::Stream (qw/stream_file/);
...
$self->stream_file($self->{DOWNLOAD}, 2048) || die 'Fehler bei stream_file \n';
$self->header_add( -attachment => "kalender.ics" );


Wie gesagt - ich hab jetzt keinen Plan wie ich Deine Codeschnipsel einbinden könnte bzw. sollte ...

View full thread CGI::Application::Plugin::Stream und HTML::Template::Compiled