our $formmust = $show_posting -> {form} -> {must};
our $formdata = $show_posting -> {form} -> {data};
our $formact = $show_posting -> {form} -> {action};
-our $template = new Template "$Bin/".$show_posting -> {templateFile};
+our $template = new Template $show_posting -> {templateFile};
our $pars = {};
our ($failed, %dparam, $threads, $last_thread, $last_message, $ftid, $fmid, $flocked);
-sub forum_filename () {$conf -> {wwwRoot} . $conf -> {files} -> {forum};}
-sub message_path () {$conf -> {wwwRoot} . $conf -> {files} -> {messagePath};}
+sub forum_filename () {$conf -> {files} -> {forum};}
+sub message_path () {$conf -> {files} -> {messagePath};}
################################
$flocked = 1;
- ($threads, $last_thread, $last_message, my $unids) = get_all_threads (forum_filename, 1, 0);
+ ($threads, $last_thread, $last_message, undef, my $unids) = get_all_threads (forum_filename, 1, 0);
($ftid,$fmid) = split /;/,$dparam{$formdata -> {followUp} -> {name}},2;
# Thread existiert nicht
################################
sub fetch_subject () {
- unless (exists ($dparam{$formdata -> {posterCategory} -> {name}}) and
- exists ($dparam{$formdata -> {posterSubject} -> {name}})) {
+ my %must = map {$_ => 1} @{$formmust -> {exists $dparam{$formdata -> {followUp} -> {name}}?'reply':'new'}};
+
+ if ( ($must{posterCategory} and not exists ($dparam{$formdata -> {posterCategory} -> {name}})) or
+ ($must{posterSubject} and not exists ($dparam{$formdata -> {posterSubject} -> {name}})))
+ {
my $filename = message_path.'t'.$ftid.'.xml';
- if (lock_file ($filename)) {
+ if (-f $filename and lock_file ($filename))
+ {
my $xml = new XML::DOM::Parser -> parsefile ($filename);
violent_unlock_file($filename) unless unlock_file ($filename);
my $header = get_message_header ($mnode);
$dparam{$formdata -> {posterCategory} -> {name}} = $header -> {category};
- $dparam{$formdata -> {posterSubject} -> {name}} = $header -> {subject};}}
+ $dparam{$formdata -> {posterSubject} -> {name}} = $header -> {subject};
+ }
+ }
}
################################