diff options
| author | fukachan <fukachan> | 2001-01-24 06:35:46 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-01-24 06:35:46 +0000 |
| commit | e00836b542f2df20d8fa34669d9edd79333fa298 (patch) | |
| tree | 9951c13c3b658ad19292def4a05079b3f9488d27 /fml/lib/FML/Process/Distribute.pm | |
| parent | e6a9111ca4122b24ebbc7d33bc2fcf607155a9db (diff) | |
| download | fml8-e00836b542f2df20d8fa34669d9edd79333fa298.tar.gz fml8-e00836b542f2df20d8fa34669d9edd79333fa298.tar.bz2 fml8-e00836b542f2df20d8fa34669d9edd79333fa298.zip | |
ticket system be more independent of header_rewrite, and clean up more
Diffstat (limited to 'fml/lib/FML/Process/Distribute.pm')
| -rw-r--r-- | fml/lib/FML/Process/Distribute.pm | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/fml/lib/FML/Process/Distribute.pm b/fml/lib/FML/Process/Distribute.pm index 7ec4f95e..2cf21b16 100644 --- a/fml/lib/FML/Process/Distribute.pm +++ b/fml/lib/FML/Process/Distribute.pm @@ -73,6 +73,7 @@ sub finish sub _distribute { my ($curproc, $args) = @_; + my $config = $curproc->{ config }; # XXX $ah is "article handler" object. # XXX $ah != $curproc->{ article } (which is just a key) @@ -82,6 +83,9 @@ sub _distribute # get sequence number my $id = $ah->increment_id; + # ticket system checks the message before header rewritings. + $curproc->_ticket_system_check($args) if $config->yes('use_ticket'); + # header operations # XXX we need $curproc->{ article }, which is prepared above. $curproc->_header_rewrite({ id => $id }); @@ -116,7 +120,7 @@ sub _header_rewrite my $id = $args->{ id }; for my $rule (split(/\s+/, $rules)) { - Log("_header_rewrite( $rule )"); + Log("_header_rewrite( $rule )") if $config->yes('debug'); if ($rule eq 'rewrite_subject_tag') { $header->rewrite_subject_tag($config, { id => $id } ); @@ -147,13 +151,6 @@ sub _header_rewrite mode => 'distribute', }); } - - # ticket system - if ($rule eq 'add_ticket_tag') { - $header->add_ticket_tag($config, { - mode => 'distribute', - }); - } } } @@ -192,6 +189,32 @@ sub _deliver_article } +sub _ticket_system_check +{ + my ($curproc, $args) = @_; + my $config = $curproc->{ config }; + my $header = $curproc->{ article }->{ header }; # FML::Header object + my $model = $config->{ ticket_model }; + my $pkg = "FML::Ticket::Model::"; + + if ($model eq 'toymodel') { + $pkg .= $model; + } + else { + Log("ticket: unknown model"); + return; + } + + eval qq{ require $pkg; $pkg->import();}; + unless ($@) { + my $ts = $pkg->new; + $ts->add_ticket($header, $config, $args) if $ts->can('add_ticket'); + } + else { + Log($@); + } +} + =head1 NAME |
