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 <m...@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" <mzagr...@d.umn.edu> wrote: > >> Hi Alex, >> >> On Mon, Oct 31, 2016 at 11:09 AM, Alex Hall <ah...@autodist.com> wrote: >> > Hey list, >> > How would I override /opt/rt4/lib/RT/Interface/Email.pm? >> >> Overlays. >> >> https://docs.bestpractical.com/rt/4.4.1/RT/StyleGuide.html# >> EXTENDING-RT-CLASSES >> >> It looks like there is also an outdated wiki article: >> >> https://rt-wiki.bestpractical.com/wiki/ObjectModel >> >> -m >> --------- >> RT 4.4 and RTIR training sessions, and a new workshop day! >> https://bestpractical.com/training >> * Los Angeles - Q1 2017 >> > > --------- > RT 4.4 and RTIR training sessions, and a new workshop day! > https://bestpractical.com/training > * Los Angeles - Q1 2017 > -- Alex Hall Automatic Distributors, IT department ah...@autodist.com
--------- RT 4.4 and RTIR training sessions, and a new workshop day! https://bestpractical.com/training * Los Angeles - Q1 2017