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

Улучшаем напоминания. Изменяем варианты даты начала и времени напоминания

Добрый день всем читателям. Сегодня мы затронем вопрос напоминаний в SugarCRM о звонке/встрече/задаче (в дальнейшем я буду называть это мероприятием), а конкретно займемся изменением значений минут даты начала (по умолчанию возможны только варианты 0, 15, 30, 45), а это для некоторых довольно неудобно и хотелось бы увеличить количество вариантов начала мероприятия. Точно так же вопрос обстоит с напоминанием. По умолчанию можно поставить напоминание только за 1, 5, 10, 15, 30, 60 минут.

Напоминания в SugarCRM

Предлагаю сделать все с промежутками в 5 минут. Если вы захотите сделать другие промежутки времени, то вы без труда измените код, который я вам предлагаю.
Начнем сперва с более простой задачи в плане реализации. Изменим варианты времени напоминания мероприятия. Здесь все сделано грамотно, и разработчики дают четкие инструкции, как изменять варианты select значения в SugarCRM. Все значения select хранятся в $app_list_strings. Нам нужно изменить опцию reminder_time_options. Для любого редактирования опций необходимо добавить файл по пути custom/Extension/application/Ext/Language/language.Имя_файла.php . Где для русского языка language имеет значение ru_ru, для английского en_us. Имя файла — любое. Обычно если это значения для одного модуля, то принято давать и название из имени модуля.

Итак, создаем файл custom/Extension/application/Ext/Language/ru_ru.Meetings.php, где перечисляем нужные варианты (ключ массива — это значение в секундах, а значения элементов массивов — это строковая интерпретация количества времени, которая будет показана пользователю):

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<?php
$app_list_strings['reminder_time_options'] =
  array(
    60 => 'за 1 минуту',
    300 => 'за 5 минут',
    600 => 'за 10 минут',
    900 => 'за 15 минут',
    1200 => 'за 20 минут',
    1500 => 'за 25 минут',
    1800 => 'за 30 минут',
    2100 => 'за 35 минут',
    2400 => 'за 40 минут',
    2700 => 'за 45 минут',
    3000 => 'за 50 минут',
    3300 => 'за 55 минут',
    3600 => 'за 1 час',
  );
?>

Если необходимо, проделайте то же самое для английского языка, создав файл custom/Extension/application/Ext/Language/en_us.Meetings.php.

Теперь запускаем в администрировании быстрое восстановление и наблюдаем за результатом:

Дата напоминания в SugarCRM

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
13C/div>
16
17
18
19
20
<?php
$app_list_strings['reminder_time_options'] =
  array(
    60 => 'за 1 минуту',
    300 => 'за 5 минут',
    600 => 'за 10 минут',
    900 => 'за 15 минут',
    1200 => 'за 20 минут',
    1500 => 'за 25 минут',
    1800 => 'за 30 минут',
    2100 => 'за 35 минут',
    2400 => 'за 40 минут',
    2700 => 'за 45 минут',
    3000 => 'за 50 минут',
    3300 => 'за 55 минут',
    3600 => 'за 1 час',
    7200 => 'за 2 часа',
  );
$app_list_strings['reminder_max_time']=7200;
?>

Теперь приступим к изменению вариантов времени начала мероприятия. Так просто изменить данные варианты в CRM не получится. Дело в том, что это специальное поле SugarCRM типа Datetimecombo. И за его отображение отвечает отдельный шаблон smarty. Но изменять шаблон этого поля нам не потребуется. А достаточно будет изменить javascript файл, относящийся к полю данного типа. Отрываем файл jssource/src_files/include/SugarFields/Fields/Datetimecombo/Datetimecombo.js. Здесь будут происходить все наши изменения.
Во первых изменяем (у меня это строки 70-80):

70
71
72
73
74
75
76
77
78
79
80
//A safety scan to make sure hrs and minutes are formatted correctly
if (this.mins > 0 && this.mins < 15) {
  this.mins = 15;
} else if (this.mins > 15 && this.mins < 30) {
  this.mins = 30;
} else if (this.mins > 30 && this.mins < 45) {
  this.mins = 45;
} else if (this.mins > 45) {
  this.hrs += 1;
  this.mins = 0;
} //if-else

на

70
71
72
73
74
75
76
77
78
79
if (this.mins > 0 && this.mins < 55) {
  for (var i=0; i<=50; i=i+5){
    if (this.mins > i && this.mins < i+5 ) {
      this.mins = i + 5;
    }
  }
} else if (this.mins > 55) {
  this.hrs += 1;
  this.mins = 0;
} //if-else

И само изменение вариантов селекта date_start_minutes.
Изменим данный код

1
2
3
4
text += '\n<option value="00" ' + (this.mins == 0 ? "SELECTED" : "") + '>00</option>';
text += '\n<option value="15" ' + (this.mins == 15 ? "SELECTED" : "") + '>15</option>';
text += '\n<option value="30" ' + (this.mins == 30 ? "SELECTED" : "") + '>30</option>';
text += '\n<option value="45" ' + (this.mins == 45 ? "SELECTED" : "") + '>45</option>';

На более грамотный короткий аналог.

1
2
3
4
for (i=0; i<=55; i=i+5){
  val = i < 10 ? "0" + i : i;
  text += '\n<option value="' + val + '" ' + (this.mins == i ? "SELECTED" : "") + '>' + val + '</option>';
}

Третий параметр в цикле — это шаг в минутах. Если вам надо, допустим, сделать возможность выбора каждой минуты, просто замените 5 на 1, каждой десятой — замените 5 на 10 и т.д.

Теперь необходимо обязательно сделать замену оригинального javascript файла нашим. Для этого переходим в SugarCRM — администрирование — восстановление — минимизация файлов Javascript.
Если вдруг вы изменяли сжатые javascript файлы, то можете просто скопировать данный файл с заменой в include/SugarFields/Fields/Datetimecombo.

Проверяем наш результат.

Дата начала мероприятия

Если же вам неохота вносить изменения и разбираться, что к чему, то для самых ленивых по данной ссылке вы можете скачать измененную версию данного файла (для SugarCRM 6), которую достаточно скопировать в include/SugarFields/Fields/Datetimecombo/ Datetimecombo.js.

До новых встреч и удачи в освоении CRM

Высказать своё мнение о статье Вы можете в комментариях, если Вас интересуют какие либо вопросы или дополнения, то обсуждение по данной теме доступно на нашем форуме.

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

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

  • 脰zel Metal plakas谋

    脰zel Metal plakas谋

    Комментировать 02.09.2017 15:52

    Улучшаем напоминания. Изменяем варианты даты начала и времени напоминания

  • 深圳进口报关代理公司

    深圳进口报关代理公司

    Комментировать 02.09.2017 15:50

    2、 显示管极易破裂,工信部电信研究院院长曹淑敏认为,这为中国南车走出去、中国高铁走出去、中国高端装备制造走出去提供了一个很好的平台和窗口。糟糕的是" 卡特彼勒,客人们很理解。今年前三季度。5月17日,富阳控制阀协会召开此次会议应时而需,到最新一集的提琴女孩身世作假。

  • copy cartier necklace for men

    copy cartier necklace for men

    Комментировать 02.09.2017 15:49

    Ridiculous quest there. What happened after? Thanks!
    copy cartier necklace for men

  • PiE

    PiE

    Комментировать 02.09.2017 15:48

    Very nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed surfing around your blog posts. After all I¡®ll be subscribing to your feed and I hope you write again very soon!

  • 东莞木材包税进口

    东莞木材包税进口

    Комментировать 02.09.2017 14:51

    1、 他预测茅台及其他白酒股的产品零售价格、销售量及股价都将“雪崩”。白酒消费习惯在全社会范围内的改变才是贯穿始终的利空因素。沈丹阳还回应了中央巡视组提出商务部部分会展过于奢华等热点问题。公司正在考虑进入肉菜市场,恒?提升我国海上风电的建设、运营水平。厂北路不足100米的路段,下一步国家质检总局将继续坚持政府推动、企业为主、市场引导、社会参与的原则,木材进口商的队伍规模不断扩大,不断上水平。

  • Fiber Optic Lighting

    Fiber Optic Lighting

    Комментировать 02.09.2017 14:37

    Улучшаем напоминания. Изменяем варианты даты начала и времени напоминания

  • alhambra braccialetto cuore replica

    alhambra braccialetto cuore replica

    Комментировать 02.09.2017 14:34

    Valuable information. Fortunate me I found your website accidentally, and I’m surprised why this accident did not took place in advance! I bookmarked it.|
    alhambra braccialetto cuore replica

  • cartier imitation love bracelets

    cartier imitation love bracelets

    Комментировать 02.09.2017 14:31

    First off I would like to say terrific blog! I had a quick question in which I’d like to ask if you do not mind. I was interested to find out how you center yourself and clear your mind before writing. I have had a hard time clearing my mind in getting my thoughts out. I do enjoy writing however it just seems like the first 10 to 15 minutes are generally lost simply just trying to figure out how to begin. Any suggestions or tips? Kudos!|
    cartier imitation love bracelets

  • imitazione cartier anelli oro rosso

    imitazione cartier anelli oro rosso

    Комментировать 02.09.2017 14:30

    Most reliable human being messages, nicely toasts. are already provided gradually during the entire wedding celebration and therefore are anticipated to be extremely laid back, humorous and as properly as new all at once. finest man speech
    imitazione cartier anelli oro rosso

  • collier réplique van cleef prix

    collier réplique van cleef prix

    Комментировать 02.09.2017 13:24

    Hiya, I am really glad I’ve found this information. Today bloggers publish only about gossips and net and this is actually frustrating. A good blog with interesting content, this is what I need. Thanks for keeping this web site, I will be visiting it. Do you do newsletters? Can not find it.
    collier réplique van cleef prix

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

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

Наверх

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

  • 1
  • 2
  • 3
  • 4

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

  • 1
  • 2
  • 3
  • 4