Тут описано как добавить имя компании в таблицу списка клиентов и в поиск.
1. $Data{UserCompanyName} = $Row[17]; 17 - это номер столбца в запросе, считаем с нуля. Почему акцентирую внимание, он(номер) сдвинется если будем добавлять в МАР масив новые поля.
2. Касается поиска. Автор строк оставил формат "по-умолчанию" результат поиска в заявке(всплывающее окно):
Немножко раскрутил это дело, так как для меня актуально.Остался один минус - при автопоиске выдаются результаты в виде:
"Иван Иванов 00000001" <email@email.com> (ivan.ivanov)
Т.е. название компании не отображается. Не могу расковырять где форматируется результат запроса (я подозреваю что это делается уже яваскриптами и AJAX-ом...). Запрос используется тот же самый, из Kernel/System/CustomerUser/DB.pm подпрограмма CustomerSearch, можно в запросе в SELECT добавить название компании и подставить в результат автопоиска...
Парсер строки частично(а может и весь) находится в файле "Core.Agent.CustomerSearch.js", по крайней мере строка
Код: Выделить всё
label: this.CustomerValue [b]+ " (" + this.CustomerKey + ")"[/b],
Хотя для меня логин в результатах и не нужен, но этот файл трогать не стал(особо не мешает).
Далее разбираем первую часть "Иван Иванов 00000001" <email@email.com>.
Разделим строку еще на две части "Иван Иванов 00000001" и <email@email.com>.
Смотрим строку CustomerUserListFields => ['login', 'first_name', 'last_name', 'customer_id', 'email'], в Defaults.pm(правим тут или в Config.pm, кто как читает документацию ). Изменяя названия полей изменяем отображение результата.
"email" есть разделителем на две части.
Рассмотрим два варианта размещения айдишки(customer_id):
CustomerUserListFields => ['login', 'first_name', 'last_name', 'customer_id', 'email' ] - "Иван Иванов 00000001" <email@email.com> (login)
CustomerUserListFields => ['login', 'first_name', 'last_name', 'email', 'customer_id' ] - "Иван Иванов" <email@email.com 00000001> (login)
Убираем "email" из строки:
CustomerUserListFields => ['login', 'first_name', 'last_name', 'customer_id'] - Иван Иванов 00000001 (login)
Подбираем информацию которая Вам нужна, мне актуальна строка "Имя компании - Заголовок клиента (login)". Логин, как уже говорил остался потому как не охота править ява скрипты.
Но у нас остаётся вопрос с именем компании в результате.
только заменяем на:файл Kernel/System/CustomerUser/DB.pm
подпрограмма CustomerSearch
строка
my $SQL = "SELECT $Self->{CustomerKey} ";
заменяем на
my $SQL = "SELECT $Self->{CustomerTable}.$Self->{CustomerKey} ";
Код: Выделить всё
my $SQL = "SELECT $Self->{CustomerTable}.$Self->{CustomerKey}, CONCAT('', ".$Self->{ConfigObject}->Get('CustomerCompany')->{Params}->{Table}.".name, ' - ' )";