summaryrefslogtreecommitdiff
path: root/fml/lib/FML/Process/Distribute.pm
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-01-24 06:35:46 +0000
committerfukachan <fukachan>2001-01-24 06:35:46 +0000
commite00836b542f2df20d8fa34669d9edd79333fa298 (patch)
tree9951c13c3b658ad19292def4a05079b3f9488d27 /fml/lib/FML/Process/Distribute.pm
parente6a9111ca4122b24ebbc7d33bc2fcf607155a9db (diff)
downloadfml8-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.pm39
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