countMessages => $thread_view -> getAttribute ('countMessages'),
sortThreads => $thread_view -> getAttribute ('sortThreads'),
sortMessages => $thread_view -> getAttribute ('sortMessages'),
- showThread => (($how_name eq 'showAll')?undef:
- (($how_name eq 'showNone')?1:
+ showThread => (($how_name eq 'ShowAll')?undef:
+ (($how_name eq 'ShowNone')?1:
($show_how -> getFirstChild -> getData))),
showPreview => $message_view -> getAttribute ('previewON'),
showNA => $flags -> getAttribute ('showNA'),
voting => $messaging -> getAttribute ('callAdminVoting'),
archiving => $messaging -> getAttribute ('callAdminArchiving'),
byUser => $messaging -> getAttribute ('callUserAnswer'),
- callByName => [map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('Name', 0)],
- callByMail => [map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('Email', 0)],
- callByIP => [map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('IpAddress', 0)]};
+ callByName => [$call_by_user?map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('Name', 0):()],
+ callByMail => [$call_by_user?map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('Email', 0):()],
+ callByIP => [$call_by_user?map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('IpAddress', 0):()]};
# Instant
my $instant = $forum -> getElementsByTagName ('InstantJob', 0) -> item (0);
# normaler Link
$posting =~ s{\[link:\s*
- ((?:ftp:// # hier beginnt $1
+ ((?:ftp:// # hier beginnt $1
| https?://
| about:
| view-source:
| telnet://
| wais://
| prospero://
- | \.\.?/ # relativ auf dem server
- | / # absolut auf dem server
- | (?:[a-zA-Z.\d]+)?\?? # im forum
- ) [^\s<'()\[\]]+ # auf jeden Fall kein \s und kein ] etc.
- ) # hier ist $1 zuende
- \s*(?:\]|(\s|\(|\)|<br>)) # der Begrenzer (\s, ] oder Zeilenende)
+ | \.\.?/ # relativ auf dem server
+ | / # absolut auf dem server
+ | (?:[a-zA-Z.\d]+)?\?? # im forum
+ ) [^\s<'()\[\]]+ # auf jeden Fall kein \s und kein ] etc.
+ ) # hier ist $1 zuende
+ \s*(?:\]|(\s|&(?!amp;)|\(|\)|<br>)) # der Begrenzer (\s, ] oder Zeilenende)
}
- {<a href="$1">$1</a>$2}gix; # und der Link
+ {<a href="$1">$1</a>$2}gix; # und der Link
# javascript-links extra
my $klammer1='\((?:[^)])*\)';
my $klammer4="\\((?:$klammer3|(?:[^)])*)\\)";
$posting =~ s{\[link:\s*
- (javascript: # hier beginnt $1
+ (javascript: # hier beginnt $1
(?:
- $klammer4 # Klammern bis Verschachtelungstiefe 4 (sollte reichen?)
- | '[^\'\\]*(?:\\.[^\'\\]*)*' # mit ' quotierter String, J.F. sei gedankt
- # im String sind Escapes zugelassen (also auch \')
- # damit werden (korrekt gesetzte) Javascript-Links moeglich
- | [^\s<()'\]]+)+ # auf jeden Fall kein \s und kein ] (ausser im String)
- ) # hier ist $1 zuende
- \s*(?:\s|\]|(\(|\)|<br>)) # der Begrenzer (\s, ] oder Zeilenende)
+ $klammer4 # Klammern bis Verschachtelungstiefe 4 (sollte reichen?)
+ | '[^\'\\]*(?:\\.[^\'\\]*)*' # mit ' quotierter String, J.F. sei gedankt
+ # im String sind Escapes zugelassen (also auch \')
+ # damit werden (korrekt gesetzte) Javascript-Links moeglich
+ | [^\s<()'\]]+)+ # auf jeden Fall kein \s und kein ] (ausser im String)
+ ) # hier ist $1 zuende
+ \s*(?:\s|\]|(\(|\)|&(?!amp;)|<br>)) # der Begrenzer (\s, ] oder Zeilenende)
}
- {<a href="$1">$1</a>$2}gix; # und der Link
+ {<a href="$1">$1</a>$2}gix; # und der Link
# images
$posting =~ s{\[image:\s*
((?:https?://
- | \.\.?/ # relativ auf dem server
- | / # absolut auf dem server
- | (?:[a-zA-Z.\d]+)?\?? # im forum
- ) [^\s<'()\[\]]+ # auf jeden Fall kein \s und kein ] etc.
- ) # hier ist $1 zuende
- \s*(?:\]|(\s|\(|\)|<br>)) # der Begrenzer (\s, ] oder Zeilenende)
+ | \.\.?/ # relativ auf dem server
+ | / # absolut auf dem server
+ | (?:[a-zA-Z.\d]+)?\?? # im forum
+ ) [^\s<'()\[\]]+ # auf jeden Fall kein \s und kein ] etc.
+ ) # hier ist $1 zuende
+ \s*(?:\]|(\s|\(|\)|&(?!amp;)|<br>)) # der Begrenzer (\s, ] oder Zeilenende)
}
{<img src="$1" border=0 alt="">$2}gix; # und das Bild
| telnet://
| wais://
| prospero://
- | \.\.?/ # relativ auf dem server
- | / # absolut auf dem server
- | [a-zA-Z\d]+(?:\.html?|/) # im forum (koennen eh nur threads oder verweise
- # auf tiefere verzeichnisse sein)
- )[^\s<'()\]]+ # auf jeden Fall kein \s und kein ] etc. (s.o.)
- ) # hier ist $1 zuende
- \s*(?:\]|(\s|\(|\)|<br>)) # der Begrenzer (\s, ] oder Zeilenende)
+ | \.\.?/ # relativ auf dem server
+ | / # absolut auf dem server
+ | [a-zA-Z\d]+(?:\.html?|/) # im forum (koennen eh nur threads oder verweise
+ # auf tiefere verzeichnisse sein)
+ )[^\s<'()\]]+ # auf jeden Fall kein \s und kein ] etc. (s.o.)
+ ) # hier ist $1 zuende
+ \s*(?:\]|(\s|\(|\)|&(?!amp;)|<br>)) # der Begrenzer (\s, ] oder Zeilenende)
}
{<iframe src="$1" width="90%" height="90%"><a href="$1">$1</a></iframe>$2}gix;
################################
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};
+ }
+ }
}
################################