FW: [rt-users] choosing template on the fly
Dimitry Faynerman
dimitry.faynerman at hypermediasystems.com
Tue May 11 12:34:24 EDT 2004
Sorry I couldn't really understand how these local things work.
So, if I'm correct, I need to put SendEmail_Local.pm somewhere (local/lib -
???? directory) so that the parts of the code inside SendEmail_Local.pm
overrides corresponding code from the "original" lib directory.
But what about the name of the subroutine TemplateObj??? How does this work?
Does RT try to override subroutine with the same name??
Thanks,
Dimitry
-----Original Message-----
From: Ruslan U. Zakirov [mailto:cubic at acronis.ru]
Sent: Tuesday, May 11, 2004 8:14 AM
To: Dimitry Faynerman
Cc: rt-users at lists.fsck.com
Subject: Re: FW: [rt-users] choosing template on the fly
I like your idea and solution, but I refactored it a little into _Local
overlay file which doesn't touch Prepare sub. It use TemplateObj sub
cause it simple and right places to do such override.
I've done only use_ok test. Could you test it? Then I or you can fill it
in wiki page.
Comment about strange code below.
Best regards. Ruslan.
Dimitry Faynerman wrote:
[snip]
>
> Here's the code:
>
> sub Prepare {
> my $self = shift;
>
> # This actually populates the MIME::Entity fields in the Template
Object
>
> unless ( $self->TemplateObj ) {
> $RT::Logger->warning("No template object handed to $self\n");
> }
>
> # my changes start here
===============================================
> # Use japanese template (if exists) if user's language is japanese
>
> my $UserObj = RT::User->new( $RT::SystemUser );
>
$UserObj->Load($self->TicketObj->Requestors->UserMembersObj->First->Id);
>
> if (($self->TemplateObj) &&
> ((!$UserObj->Lang) || ($UserObj->Lang ne 'en'))) {
This 'if condition' will be true if $UserObj->Lang is not defined or
empty string. Refactored code has slightly different condtion.
> my $rememberEnglishId = $self->TemplateObj->Id;
> $self->TemplateObj->Load(
> $self->TemplateObj->Name . " (" . $UserObj->Lang . ")");
> if (! $self->TemplateObj->Id) {
> $self->TemplateObj->Load($rememberEnglishId);
> }
> }
> # my changes end here ===============================================
>
>
[snip]
> -Dimitry
More information about the rt-users
mailing list