Hi all,
Thanks for the responses, it’s partially working. When I use my
Email_Local.pm, the server refuses to start, yet I have no errors. Running
it through Perl’s checker reveals only:
Name “RT::Logger” used only once: possible typo at Email_Local.pm at line 31
Perl says everything else is fine. I pulled the single function I wanted to
modify out of the original Email.pm (ParseTicketId) and left it alone,
except for changing \s+ to \s* in the “if (my $@captures” line. As usual,
any errors that might be generated are going who knows where, so I’m not
sure where to start looking. As I said, Perl thinks this is fine save that
warning, but RT definitely doesn’t. Any thoughts? Here’s the file:
use strict;
use warnings;
no warnings qw(redefine);
package RT::Interface::Email;
#Takes a string and searches for [subjecttag #id]
#Returns the id if a match is found. Otherwise returns undef.
sub ParseTicketId {
my $Subject = shift;
my $rtname = RT->Config->Get('rtname');
my $test_name = RT->Config->Get('EmailSubjectTagRegex') ||
qr/\Q$rtname\E/i;
# We use @captures and pull out the last capture value to guard against
# someone using (...) instead of (?:...) in $EmailSubjectTagRegex.
my $id;
if ( my @captures = $Subject =~ /\[$test_name\s*\#(\d+)\s*\]/i ) {
$id = $captures[-1];
} else {
foreach my $tag ( RT->System->SubjectTag ) {
next unless my @captures = $Subject =~
/[\Q$tag\E\s+#(\d+)\s*]/i;
$id = $captures[-1];
last;
}
}
return undef unless $id;
$RT::Logger->debug("Found a ticket ID. It's $id");
return $id;
}On Mon, Oct 31, 2016 at 12:18 PM, Nilesh me@nileshgr.com wrote:
To extend you should either add code in Email_Local.pm or
Email_Overlay.pm. If you name it as Email.pm then you have to copy all code
from existing module and modify it.
I’m not sure about differences between Overlay and Local but I think that
difference is for OO vs adding some functionality.
–
Nilesh
On 31-Oct-2016 9:45 PM, “Matt Zagrabelny” mzagrabe@d.umn.edu wrote:
Hi Alex,
On Mon, Oct 31, 2016 at 11:09 AM, Alex Hall ahall@autodist.com wrote:
Hey list,
How would I override /opt/rt4/lib/RT/Interface/Email.pm?
Overlays.
RT::StyleGuide - RT 4.4.1 Documentation - Best Practical
EXTENDING-RT-CLASSES
It looks like there is also an outdated wiki article:
ObjectModel - Request Tracker Wiki
-m
RT 4.4 and RTIR training sessions, and a new workshop day!
https://bestpractical.com/training
RT 4.4 and RTIR training sessions, and a new workshop day!
https://bestpractical.com/training
Alex Hall
Automatic Distributors, IT department
ahall@autodist.com