Страница 1 из 2

Ввод в заявку IP-адреса клиента

Добавлено: 23 май 2012, 10:07
ykolesnikov
Добрый день коллеги!
Нашел на английском форуме несколько постов на эту тему и попробовал. Вроде работает.
Если кого интересует, прошу проверить, т.к. сейчас ограничен в возможности полной проверки.
Если подтвердите работоспособность, можно будет поместить в HOWTOS.
Итак.
1. Создать динамическое поле, например - IPADDR. Из картинки должно быть всё ясно.
Подстановка IP-адреса клиента.png
Подстановка IP-адреса клиента.png (41.77 КБ) 29504 просмотра
2. Активировать отображение этого поля в Ticket::Frontend::CustomerTicketMessage###DynamicField и в Ticket::Frontend::AgentTicketZoom###DynamicField - поставить - 1.
3. Добавить в CustomerTicketMessage.dtl, там где отображаются динамические поля, кусок кода

Код: Выделить всё

<!-- dtl:block:DynamicField_IPADDR -->
                <div class="Row Row_DynamicField_$QData{"Name"}" style="DISPLAY: none">
                    $Data{"Label"}
                    <div class="Field">
                        $Data{"Field"}
                    </div>
                    <div class="Clear"></div>
                </div>
<!-- dtl:block:DynamicField_IPADDR -->
Обратите внимание, что имя поля указывается в комментарии (в первой строке, такой уж синтаксис разработчиков)
4. В оригинале, у буржуев, есть еще кусок кода, который надо вставить в конец этого модуля, но у меня работает и без него (забыл раскомментировать :lol: ). Поэтому и прошу проверить.

Код: Выделить всё

#<script type="text/javascript">
#          document.getElementById('IPADDR').style.display = 'none';
#          document.getElementById('IP address').style.display = 'none';
#          document.getElementById('IPADDR').value = "$Env{"REMOTE_ADDR"}";
#</script>
5. Создавайте заявку клиентом. Поле это отображаться в форме ввода не будет.
6. Откройте заявку агентом. В окне "Информация о заявке" - должен отображаться IP-адрес клиента.
Примерно так. :oops:
Кстати, для телефонной заявки, создаваемой агентом, я так понимаю, это бесполезно, т.к. подставится IP-адрес агента.
Ну еще проверьте, что будет, если клиент входит на OTRS через прокси-сервер.

Re: Ввод в заявку IP-адреса клиента

Добавлено: 24 май 2012, 15:28
risemann
Меня тоже интересует эта тема.
Именно таким способом динамическое поле (текст) создать мне не удалось, пришлось в Ticket -> Core::TicketDynamicFieldDefault активизировать первые два пункта и во втором прописывать своё свежесозданное поле. Тогда работает...

Меня больше интересует другое - как передать какую либо другую переменную кроме переменных окружения.
В версии 3.0 я делал freetext поле, в котором создавал динамическую ссылку. для ссылки использовал с трудом найденную переменную $LQData{"CustomerUserID"}
в версии 3.1.5 при подстановке в линк она не отображается... отобразить удалось только $Env()

Re: Ввод в заявку IP-адреса клиента

Добавлено: 29 май 2012, 20:13
a.alexey
ykolesnikov писал(а): 4. В оригинале, у буржуев, есть еще кусок кода, который надо вставить в конец этого модуля, но у меня работает и без него (забыл раскомментировать :lol: ). Поэтому и прошу проверить.

Код: Выделить всё

#<script type="text/javascript">
#          document.getElementById('IPADDR').style.display = 'none';
#          document.getElementById('IP address').style.display = 'none';
#          document.getElementById('IPADDR').value = "$Env{"REMOTE_ADDR"}";
#</script>
У меня тоже работает.

А возможно ли еще добавить имя ПК?

Re: Ввод в заявку IP-адреса клиента

Добавлено: 29 май 2012, 20:32
yuri0001
Посмотрите на этом сайте возможные переменные - http://www.cgi101.com/book/ch3/text.html
Ну и оригинал, откуда я брал этот способ - http://forums.otterhub.org/viewtopic.php?f=60&t=9023
Я сам, в этом плохо разбираюсь. Читайте, пробуйте. Получится - поделитесь. :)

Re: Ввод в заявку IP-адреса клиента

Добавлено: 06 фев 2013, 13:13
a.alexey
Я поступил немного не так, создаем динамические поля IP-address и HOSTNAME, в значение по умолчанию подставляем эти значения $Env{"REMOTE_ADDR"} и $Env{"REMOTE_HOST"}
Активировать отображение этого поля в Ticket::Frontend::CustomerTicketMessage###DynamicField и в Ticket::Frontend::AgentTicketZoom###DynamicField - поставить - 1. Активировать это поле в Ticket::Frontend::CustomerTicketMessage###DynamicField поставить - 2
Добавить в CustomerTicketMessage.dtl, там где отображаются динамические поля, кусок кода
<script type="text/javascript">
document.getElementById('IPADDR').style.display = 'none';
document.getElementById('IP address').style.display = 'none';
document.getElementById('IPADDR').value = "$Env{"REMOTE_ADDR"}";
document.getElementById('HOSTNAME').style.display = 'none';
document.getElementById('Name PC').style.display = 'none';
document.getElementById('HOSTNAME').value = "$Env{"REMOTE_HOST"}";
</script>
Что бы отображалось имя ПК в конфигах apache "hostnameLookups off" меняем на "hostnameLookups on"

Re: Ввод в заявку IP-адреса клиента

Добавлено: 06 фев 2013, 16:54
yuri0001
О.К., но, как я понимаю, если клиенты подключены через прокси, то будет показывать IP - прокси-сервера?

Re: Ввод в заявку IP-адреса клиента

Добавлено: 07 фев 2013, 02:17
alexus
Что браузер отдаст, то и получится.

Re: Ввод в заявку IP-адреса клиента

Добавлено: 07 фев 2013, 09:23
merkushov
Немного не так.
То как воспримет подключение web-сервер, на котором установлен OTRS то и пойдёт в поле формы и соответственно с этим значением будет сохранено Клиентом при создании заявки. Так что IP прокси сервера там более чем вероятно.

Re: Ввод в заявку IP-адреса клиента

Добавлено: 28 фев 2013, 09:49
Romano
У меня заработало без п.4
Есть смысл перенести в howto :)

Re: Ввод в заявку IP-адреса клиента

Добавлено: 28 фев 2013, 16:10
ykolesnikov
У меня тоже без него все работает, но, поскольку ПК подключены через прокси, а в этом случае отображается его IP, затея потеряла смысл. Если переносить в HOWTOS, то укажите на эту особенность, даже в начале, а то народ часто кидается делать не дочитав до конца, жалко их время. :D

Re: Ввод в заявку IP-адреса клиента

Добавлено: 01 мар 2013, 14:42
tester
Выполнил все рекомендации, ip кажет, но вот 5 пункт не отрабатывает: 5. Создавайте заявку клиентом. Поле это отображаться в форме ввода не будет.
У клиента всё равно видно поле ip и он может его изменить. В чём может быть проблем?

Re: Ввод в заявку IP-адреса клиента

Добавлено: 01 мар 2013, 17:09
Romano
tester писал(а):Выполнил все рекомендации, ip кажет, но вот 5 пункт не отрабатывает: 5. Создавайте заявку клиентом. Поле это отображаться в форме ввода не будет.
У клиента всё равно видно поле ip и он может его изменить. В чём может быть проблем?
Надо деактивировать его отображение в юзерском интерфейсе.
Ticket::Frontend::CustomerTicketMessage###DynamicField - галочку убрать.

Re: Ввод в заявку IP-адреса клиента

Добавлено: 01 мар 2013, 17:24
Romano
У меня, кстати, что то перестало работать отображение айпишника. Перепроверял все настройки - всё правильно.
Пробовал 4й пункт выполнить и дописать этот код - не помогло.
У меня тут вопрос сразу нарисовался - а куда вообще система записывает это значение? Разве не надо создать в базе SQL какой нить доп. столбец в одной из таблиц?

Re: Ввод в заявку IP-адреса клиента

Добавлено: 03 мар 2013, 12:21
Romano
Я, кажется, врубился... IP не будет отображаться в агентском интерфейсе, пока не активировать это поле в юзерском. Т.е. при создании заявки у юзера обязательно должно быть вписано какое то значение в поле айпишника.

Re: Ввод в заявку IP-адреса клиента

Добавлено: 19 мар 2013, 09:27
seregansk
Добрый день, подскажите а как можно скрыть или запретить редактировать поле со значением IP адреса ?

Re: Ввод в заявку IP-адреса клиента

Добавлено: 08 апр 2013, 10:26
seregansk
Как можно скрыть это поле от пользователей ? Или хотя бы запретить редактирование ?

Re: Ввод в заявку IP-адреса клиента

Добавлено: 08 апр 2013, 11:06
ykolesnikov
Из Вашего скриншота не видно в каком интерфейсе Вы его отображаете.
Управляется отображение динамических полей в АдминКонфиге в настройках соответствующих экранов. Этот параметр обычно в конце. Там его можно сделать неотображаемым.

Re: Ввод в заявку IP-адреса клиента

Добавлено: 08 апр 2013, 12:41
seregansk
ykolesnikov писал(а):Из Вашего скриншота не видно в каком интерфейсе Вы его отображаете.
Управляется отображение динамических полей в АдминКонфиге в настройках соответствующих экранов. Этот параметр обычно в конце. Там его можно сделать неотображаемым.
Данное поле отображается в Интерфейсе пользователя (Customer) при создании новой заявки.
Добавил его в интерфейс в Edit Config Settings in Ticket -> Frontend::Customer::Ticket::ViewNew

Re: Ввод в заявку IP-адреса клиента

Добавлено: 08 апр 2013, 12:55
ykolesnikov
Ну так поставьте ему 0, оно и не будет отображаться

Re: Ввод в заявку IP-адреса клиента

Добавлено: 08 апр 2013, 14:01
seregansk
ykolesnikov писал(а):Ну так поставьте ему 0, оно и не будет отображаться
Если я ставлю значение 0 то в интерфейсе Агента значение IP адреса тоже не отображается

Re: Ввод в заявку IP-адреса клиента

Добавлено: 08 апр 2013, 14:29
ykolesnikov
Для каэдого экрана этот параметр устанавливается отдельно, т.е. вы можете скрыть его на одном экране и отображать на другом. Если значение поля пустое, то оно не отображается вовсе, независимо, установлено ли значение в 1
Кроме того, а AgentTicketZoom.dtl есть закоментированная секция управляющая выводом динамический полей по-отдельности, не единым блоком

Re: Ввод в заявку IP-адреса клиента

Добавлено: 09 апр 2013, 16:45
Kom
Доброго дня, я новичок в OTRS системе.

Помогите разобраться, как выполнить первый пункт, как и где создаеться динамическое поле.
Пробовал разобраться сам, но не понимаю, а на рабочей системе не хочеться экспериментировать.

Зарание благодарен за помощь

Re: Ввод в заявку IP-адреса клиента

Добавлено: 09 апр 2013, 16:58
yuri0001
Коллега, а стоит ли с этого начинать знакомство с OTRS, даже не оглядевшись в системе. ;)
Но, если невтерпеж - Интерфейс агента с правами админа. Пункт Администрирование -->Секция Настройки заявок-->Динамические поля
А там свои тараканы. Читайте документацию.
Кстати, если Вы внимательно читали эту тему, если Ваши компы ходят через Прокси, то на выходе вы у всех клиентов получите его IP. :roll:

Re: Ввод в заявку IP-адреса клиента

Добавлено: 09 апр 2013, 18:14
Kom
yuri0001 писал(а):Коллега, а стоит ли с этого начинать знакомство с OTRS, даже не оглядевшись в системе. ;)
Но, если невтерпеж - Интерфейс агента с правами админа. Пункт Администрирование -->Секция Настройки заявок-->Динамические поля
А там свои тараканы. Читайте документацию.
Кстати, если Вы внимательно читали эту тему, если Ваши компы ходят через Прокси, то на выходе вы у всех клиентов получите его IP. :roll:
Большое спасибо за подсказку.
все получилось.

Документацию грызу, но её много, а система нужна уже, поэтому поставили в работу и добавляем/меняем в процессе.

Re: Ввод в заявку IP-адреса клиента

Добавлено: 18 июл 2014, 11:25
belko
АХТУУУНГ!! для отрс 3.3 немного подругому, поменялись поля.

Рабочий подпиленный вариант:

Код: Выделить всё

<script type="text/javascript">
document.getElementById('LabelDynamicField_IPADDR').style.display = 'none';
document.getElementById('DynamicField_IPADDR').style.display = 'none';
document.getElementById('DynamicField_IPADDR').value = "$Env{"REMOTE_ADDR"}";
document.getElementById('LabelDynamicField_HOSTNAME').style.display = 'none';
document.getElementById('DynamicField_HOSTNAME').style.display = 'none';
document.getElementById('DynamicField_HOSTNAME').value = "$Env{"REMOTE_HOST"}";
</script>