在OTRS(版本3.1,3.2或3.3)中是否可以在客户概览(CustomerTicketOverview.dtl)或详细信息(CustomerTicketZoom.dtl)页面中显示故障单的初始创建者?例如,如果我创建一个故障单作为代理,我想显示代理名称,否则如果客户创建了该故障单,那么我想显示客户名称。
我试过了:
$Text{"$QData{"FromRealname","60"}"}
似乎总是打印最后一位受访者的姓名。如果票证是新的,则它包含客户的名称(如果客户创建它或者是电话票证),否则如果是电子票证,则它似乎包含分配给队列的电子邮件地址的名称。 / p>
$Text{"$Data{"CreatedBy"}"}
似乎包含创建故障单的人员的ID。有什么办法可以做我想要的吗?
答案 0 :(得分:1)
首先,将Kernel / Modules / CustomerTicketZoom.pm复制到Custom / Kernel / Modules / CustomerTicketZoom.pm 然后像这样修改_mask方法(L#:1000左右):
# ticket owner
if ( $Self->{Config}->{AttributesView}->{Owner} ) {
my $OwnerName = $Self->{AgentUserObject}->UserName(
UserID => $Param{OwnerID},
);
$Self->{LayoutObject}->Block(
Name => 'Owner',
Data => { OwnerName => $OwnerName },
);
}
####### this is the new part #######
# ticket creator
if ( $Param{CreateBy} != 1 ) {
#1 is the default account if a ticket is created by a customer
my $CreatorName = $Self->{AgentUserObject}->UserName(
UserID => $Param{CreateBy},
);
$Self->{LayoutObject}->Block(
Name => 'Creator',
Data => { CreatorName => $CreatorName },
);
}
####### this is the end of the new part #######
# ticket responsible
if (
$Self->{ConfigObject}->Get('Ticket::Responsible')
&&
$Self->{Config}->{AttributesView}->{Responsible}
)
{
my $ResponsibleName = $Self->{AgentUserObject}->UserName(
UserID => $Param{ResponsibleID},
);
$Self->{LayoutObject}->Block(
Name => 'Responsible',
Data => { ResponsibleName => $ResponsibleName },
);
}
# check if ticket is normal or process ticket
我使用了OTRS 3.3.8 + ITSM,因此您的行号可能会有所不同。 ne inserted Block检查创建者是否是!= UserID 1,如果创建者不是代理,则是OTRS用于创建票证的本地管理员帐户。如果其!= 1 OTRS执行查找,则在var中保存实名。在此之后,创建者dtl:block被渲染。
第二部分: 修改模板文件: 将原始文件从Kernel / Output / HTML / Standard / CustomerTicketZoom.dtl复制到: 定制/核心/ OUTPUT / HTML /标准/ CustomerTicketZoom.dtl
并插入一个新块(在L#:190左右 - 在所有者块之后):
<!-- dtl:block:Creator -->
<li><span class="Key">$Text{"Creator"}:</span> $QData{"CreatorName"}</li>
<!-- dtl:block:Creator -->
应用更改后,应正确显示创建者。