SugarTalk - ресурс для администраторов и разработчиков системы SugarCRM.

Расширенные телефонные поля

Сегодня хочу продолжить традицию делится наработками на благо популяризации SugarCRM :)

Уже не однократно возникали задачи, когда заказчикам необходимо было реализовать телефонные поля подобные полям для хранения email, с возможностью добавления нескольких телефонных номеров и добавления им атрибутов.

Вторая сложность, возникающая с телефонами — это поиск по номерам. Каждый менеджер забивает телефон как ему удобно, один указывает код в скобках, другой через пробел и т.д. Теперь представьте себе ситуацию: вам звонит клиент, вы пытаетесь срочно найти его в базе по номеру, но у вас не получается потому что предыдущий менеджер, указал в качестве разделителей, например, тире. В результате вы не идентифицировали клиента, да еще и создали для него новую карточку, так как приняли его за нового клиента.

Так и появился модуль MultiPhoneField, который избавляет от двух описанных выше недостатков: расширяет возможности хранения телефонов(несколько телефонов и атрибуты) и осуществляет поиск по номерам телефонов без учета разделителей.

Этот модуль мы выкладываем сегодня в свободный доступ: Модуль на SugarForge.

Скриншоты модуля:

Форма редактирования

Форма редактирования

 

Форма просмотра

Форма просмотра

Редактирование возможных атрибутов телефона

Редактирование возможных атрибутов телефона

Создание поля в студии

Создание поля в студии

Подробный функционал модуля

1) Модуль Fозволяет динамически добавлять любое количество телефонных номеров к любым записям в SugarCRM,
а так же помечать их дополнительными атрибутами, такими как: основной, не звонить, личный, мобильный, рабочий, факс.

Модуль разработан полностью в upgrade safe стиле с поддержкой мультиязычности (в комплект включена русская и английская версия)

Атрибуты можно редактировать через административную часть SugarCRM : Редактор комбобоксов.

Возможные варианты храняться в комбобоксе: phone_type_dom. Редактирование комбобокса полностью в стиле SugarCRM.

В списке(listview) отображается только основной номер, если основной номер не задан, то первый.

2) Нововведения в системе поиска.

Для данного типа поля решена проблема с поиском по телефонным номерам,

т.к. телефоны могут заноситься в разных форматах разными пользователями

Например: +1 080 354-456-456, 38050-432 432 654,

то в стандартной версии поиск по телефонам усложняется.

В нашей версии пользователь теперь может свободно искать данные номера без подбора разделителей,
т.е теперь номер найдётся по запросам 354456456, 050432432654, с какими бы разделителями он не создан в оригинале,
при этом можно точно также его найти и по оригинальному варианту с разделителями 38050-432 432 654.

Необходимо помнить, что так как у нас хранится несколько номеров в одной ячейке,

а также чтобы можно было искать по номерам телефонов без кодов стран и городов,

в строке поиска необходимо использовать символ % слева и справа, для поиска по вхождению подстроки.

Например: %354456456%, %38050-432 432 654% и т.д.

Если вариант указывания % в строке не устраивает, то можно как вариант настроить поиск по вхождению подстроки по умолчанию для всех полей,

для это в файле : /include/SearchForm/SearchForm2.php,

меняем строки (таких строк 2!)

1
$where .=  $db_field . " like '".$field_value.$like_char."'";

на

1
$where .=  $db_field . " like '".$like_char.$field_value.$like_char."'";

Принцип работы модуля

Специально для программистов и администраторов опишу принцип работы модуля:
Так как модуль разрабатывался как upgrade safe решения для любого модуля,

то был выбран наиболее простой вариант реализации, хранение всех данных в одной ячейке.

Данное хранение подобно варианту хранения MultiEnum значений в ЦРМ,

где в качестве разделителя между данными тоже выступает ^,^.

При сохранении данные «сжимаются» в одно значение, при извлечении «разжимаются».

Установка

Модуль устанавливается стандартно через загрузчик модулей в административной части SugarCRM.

Полная upgrade safe совместимость с версиями SugarCRM выше 5.5.

Теоретически совместимость с любой версией начиная с 5.0. (Не тестировалась)

Использование

После установки в студии появляется новый тип поля ExtraPhone (В русской версии «расширенный телефон»).

В любой модуль можно добавить поле данного типа.

Также после этого данное поле можно добавлять в любой макет формы: Редактирование, Просмотр, Поиск, Список.

Совместимость

Совместимость с кастомными пользовательскими модулями (custom modules)
Полная совместимость с любыми кастомными модулями.

Работа через Soap и Rest

Можно работать с данным типом поля и через встроенный механизм web api (soap или rest протокол).
В этом случае «разжимание данных» программируется в модуле, который будет использовать это поле.

Реализуется с помощью explode («^,^», $array)

Известные ограничения на использование

Никаких ограничений на использование обнаружено не было.

Теперь вы все знаете и можно смело cкачать MultiPhoneField:

MultiPhoneField
Версия: 0.3, скачали: 247 раз.
Дата добавления: 05.06.2012
Тип: zip zip
Описание: Расширенные телефонные поля
скачать Pазмер: 163.44 kB

По всем вопросам работы с модулем, пожалуйста, обращайтесь на наш форум в соответствующую ветку.

Последнее изменениеПонедельник, 10 июля 2017 18:14
  • Оцените материал
    (0 голосов)
  • Опубликовано в SugarCRM
  • Прочитано 17924 раз

6880 комментарии

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Наверх

Последние новости

  • 1
  • 2
  • 3
  • 4

Популярные новости

  • 1
  • 2
  • 3
  • 4