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

Необязательное обязательное...

Добавлено: 20 июн 2013, 16:28
mukexa
Приветствую!
Опять таки, вдохновившись одним из постов взялся решать свои задачи.
1 Убрать "обязательность" с поля Email клиентов. У наших клиентов порой интернета нету, потому об адресе электронной почты даже говорить не стоит.
2 В компаниях наоборот, нужно добавить.
Итак с задачами разобрались. Приступим к реализации...
1. Убираем email required field клиентов
- правим MAP-массив.
Было:

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

[ 'UserEmail',      'Email',      'email',      1, 1, 'var', '', 0 ],
Стало:

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

[ 'UserEmail',      'Email',      'email',      1, 0, 'var', '', 0 ],
- правим AdminCustomerUser.pm
Было:

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

        # show required flag
        if ( $Entry->[4] ) {
           $Param{RequiredClass}          = 'Validate_Required';
          $Param{RequiredLabelClass}     = 'Mandatory';
            $Param{RequiredLabelCharacter} = '*';
        }
        else {
            $Param{RequiredClass}          = '';
            $Param{RequiredLabelClass}     = '';
            $Param{RequiredLabelCharacter} = '';
        }
Стало:

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

        # show required flag
        #if ( $Entry->[4] ) {
        #   $Param{RequiredClass}          = 'Validate_Required';
         # $Param{RequiredLabelClass}     = 'Mandatory';
         #   $Param{RequiredLabelCharacter} = '*';
        #}
        #else {
            $Param{RequiredClass}          = '';
            $Param{RequiredLabelClass}     = '';
            $Param{RequiredLabelCharacter} = '';
        #}
2. Добавить поле Email аналогично "номеру комнаты" из документации. Потому объяснять думаю лишнее. Напомню лишь, что не стоит забывать об "required" в МАР-массиве

Очищаем кеш, если переносились файлы в Custom, то перезагружаем службу "Apache".
Удачи!

Re: Необязательное обязательное...

Добавлено: 28 июн 2013, 20:08
alexus
А зачем так сложно?
достаточно просто в Config.pm сделать так, как вы написали.
mukexa писал(а):Было:
КОД: ВЫДЕЛИТЬ ВСЕ
[ 'UserEmail',      'Email',      'email',      1, 1, 'var', '', 0 ],

Стало:
КОД: ВЫДЕЛИТЬ ВСЕ
[ 'UserEmail',      'Email',      'email',      1, 0, 'var', '', 0 ],

Re: Необязательное обязательное...

Добавлено: 28 июн 2013, 21:09
mukexa
Шел от сложно к простому, наверное...
Пробовал этот вариант, но почему то не получалось(кеш, кривые руки). А вот сейчас именно так как Вы описали получается, а как хотелось возразить. Приношу свои извинения, кому пришлось править лишний код! Посути то что я предложил:
Стало:

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

        # show required flag
        #if ( $Entry->[4] ) {
        #   $Param{RequiredClass}          = 'Validate_Required';
         # $Param{RequiredLabelClass}     = 'Mandatory';
         #   $Param{RequiredLabelCharacter} = '*';
        #}
        #else {
            $Param{RequiredClass}          = '';
            $Param{RequiredLabelClass}     = '';
            $Param{RequiredLabelCharacter} = '';
        #}
отменяет вообще все обязательные поля.
Практика конечно круто, но стыдно что сразу разместил в "Howtos"... :oops:

З.Ы. И тут ошибся. Поле останется обязательным и после комментирования выше указанных строк. Только не будет "*" и красивого сообщения об обязательности(определяется в .dtl), а будет стандартное "Это поле обязательно". При том как уже говорил не будет на всех обязательных полях страницы.

Re: Необязательное обязательное...

Добавлено: 11 июл 2013, 14:49
Siyet
Есть один косяк, и никак не могу с ним разобраться:
В создании новой телефонной заявки агентом, если ты выбираешь клиента с отсутствующим email через автодополнение, то он хотябы отображает имя, фамилию. Если же для поиска клиента использовать всплывающее окно управления клиентами, то происходит ошибка (если email null) или просто клиент не прикрепляеться, при этом его сведения справа отображаются.

Re: Необязательное обязательное...

Добавлено: 15 июл 2013, 10:47
Siyet
И клиента без Email всеравно не создает(((

Re: Необязательное обязательное...

Добавлено: 30 июл 2013, 21:38
mukexa
Клиента вроде как создаёт. Возможно проблемы потому что база PostgreSQL. У Вас вроде были с этим(null) проблемы(или я что-то напутал, не судите строго).
По поводу:
Если же для поиска клиента использовать всплывающее окно управления клиентами, то происходит ошибка (если email null) или просто клиент не прикрепляеться, при этом его сведения справа отображаются.
в файле AgentTicketPhone.dtl есть строка:

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

    Core.Agent.CustomerSearch.AddTicketCustomer( 'FromCustomer', "$QData{"Email"}", "$QData{"Customer"}", true );
если заменить хотя бы на:

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

    Core.Agent.CustomerSearch.AddTicketCustomer( 'FromCustomer', "$QData{"Customer"}", "$QData{"Customer"}", true );
то нормально прикрепляет. Только если добавлять через "автопоиск" то используется "Заголовок" клиента, если через окно, то "Логин".
Искал откуда оно берёт $QData{"Customer"} так и не нашел, думал заменить на что-то другое.

Можно эту тему как-то убрать из ветки "Howtos"?

Re: Необязательное обязательное...

Добавлено: 31 июл 2013, 11:24
skyf
А такой номер не проходит?
Да, надо указывать почту noemail @ noemail . noemail
alexus » 25 мар 2013, 12:24 ---> viewtopic.php?f=2&t=873#p8674

Re: Необязательное обязательное...

Добавлено: 31 июл 2013, 14:31
mukexa
А почему бы и нет. Лишь отключить проверку MX и дублей.
Если отключить дубли, то можно допилять чтобы брался е-майл компании. Тут рассматривался вариант отказаться от них вообще, но видать "шкурка вычинки не стоит".

Re: Необязательное обязательное...

Добавлено: 31 июл 2013, 16:15
Siyet
Собственно, соседняя темаviewtopic.php?f=4&t=1890t=1890