Show word.html syntax highlighted
% # vim: set syntax=mason:
<%args>
$file
$format => 'text'
</%args>
<%init>
my $user = Apache::SiteControl->getCurrentUser($r);
my $folder = $user->getAttribute('reading_folder');
my $uid = $user->getAttribute('reading_uid');
my $uidv = $user->getAttribute('reading_uidv');
my $sorted_offset = $user->getAttribute('reading_offset');
my $sortby = $user->getAttribute('reading_sortby');
my $logger = Log::Log4perl->get_logger('alphamail');
my $prefix = $config->get("message_tmpdir") . "/" .
$user->getAttribute('imap') . "_" . $user->getUsername();
my $username = $user->getUsername();
my $antiword = $config->get('antiword');
if($file !~ m/^\Q$prefix\E\/msg[-\d]*\/[^\/]*$/i || $file =~ m!/\.\./!) {
$logger->logcroak("Security Violation! $username attempted to view $file. Prefix was $prefix");
}
if($format eq 'pdf') {
my $sf = $file;
$sf =~ s!^.*/!!g;
$r->content_type('application/pdf');
my @lines = qx($antiword -a letter '$file' 2>&1);
$m->print(@lines);
}
</%init>
% if($format eq 'text') {
<& /mail/header.mhtml, title => "Word Document Viewer", folder => $folder &>
<a href="/mail/read.html?sorted_offset=<% $sorted_offset %>&folder=<% $folder |u %>&uidv=<% $uidv %>&uid=<% $uid %>&sortby=<% $sortby |h %>">Back to message</a>
% my @lines = qx($antiword -f '$file' 2>&1);
<pre>
% for my $l (@lines) {
% chomp $l;
<% $l |h %>
% }
</pre>
<& /mail/footer.mhtml &>
% }
<%once>
$config = new AlphaMail::Config($r->dir_config('AlphamailParameters'));
</%once>
See more files for this project here