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

Практическое занятие по доработкам в SugarCRM. Часть 2

Продолжение первой части статьи посвященной доработкам для SugarCRM.

Напомню что если у вас есть возможность, то рекомендую вам скачать power point презентацию, которую мы и рекомендуем для ознакомления. Для тех у кого нет возможности или желания в данной теме немного более краткий eё web вариант.

Логические ловушки (hooks)

  • after_ui_frame — ??Срабатывает после того, как фрейм был вызван, и перед тем как вызывается футер. Эта ловушка не получает доступа к текущему объекту bean (что означает, что вы не можете видеть изменения в значении записи)
  • after_ui_footer — Срабатывает после того, как футер был вызван. Эта ловушка не получает доступа к текущему объекту bean
  • server_round_trip — Срабатывает в конце каждой страницы SugarCRM. Она вызывается в методе sugar_cleanup () , который вызывается как функция завершения работы в Sugar. Эта ловушка не получает доступа к текущему объекту bean (что означает, что вы не можете видеть изменения в значении записи)
  • before_delete — Срабатывает перед тем, как запись удаляется с использованием SugarBean::mark_deleted ()
  • after_delete — Срабатывает после того, как запись удаляется с использованием SugarBean::mark_deleted ()
  • before_restore — Срабатывает перед отменой удаления с использованием SugarBean::mark_undeleted () method
  • after_restore — Срабатывает после отмены удаления с использованием SugarBean::mark_undeleted () method
  • before_retrieve — Срабатывает перед получением записи из БД с использованием SugarBean::retrieve () method. Эта ловушка не срабатывает, когда вы создаете новую запись
  • after_retrieve — Срабатывает после получения записи из БД с использованием SugarBean::retrieve () method. Эта ловушка не срабатывает, когда вы создаете новую запись
  • before_save — Срабатывает перед тем, как запись сохранена с использованием метода SugarBean::save (). Следует отметить один момент, что с конкретными модулями, такими как Cases и Bugs, человекопонятное ID записи (подобно полю case_number в модуле Case), недоступно в пределах вызова before_save , т.к. бизнес логика, которая вычисляет это значение попросту еще не выполнилась
  • after_save — Срабатывает после того,как запись сохранена с использованием метода SugarBean::save (). Следует отметить один момент, что с конкретными модулями, такими как Cases и Bugs, человекопонятное ID записи (подобно полю case_number в модуле Case), недоступно в пределах вызова before_save , т.к. бизнес логика, которая вычисляет это значение попросту еще не выполнилась
  • process_record — Срабатывает непосредственно перед получением результатов запроса в записи, которую сделали текущей. Это даёт разработчикам возможность проверить и прошить подлежащие этому запросу. ЭтE также прекрасное место для установки значений в поля записи перед отображением в DetailView или List View. Это событие не срабатывает в EditView
  • before_logout — Срабатывает перед тем, как юзер разлогинивается из системы
  • after_logout — Срабатывает после того, как юзер разлогинивается из системы. Эта ловушка не получает доступ к текущему объекту bean (что означает, что нельзя считать или изменить текущую запись)
  • after_login — Срабатывает после того, как пользователь успешно залогинился в системе
  • before_login — Срабатывает перед тем, как юзер логинится в системе. Эта ловушка не получает доступ к текущему объекту bean ( что означает, что нельзя считать или изменить текущую запись)
  • login_failed — Срабатывает, если попытка логина провалилась. Эта ловушка не получает доступ к текущему объекту bean ( что означает, что нельзя считать или изменить текущую запись)
  • after_relationship_add — Срабатывает после того, как было установлено отношение между двумя записями. Вызывается для обоих записей, участвующих в отношении
  • after_relationship_delete — Срабатывает после того, как отношение между двумя записями было удалено. Вызывается для обоих записей, участвующих в отношении.

logic_hooks.php

1
2
3
4
5
6
<?php
$hook_version = 1;
$hook_array = Array();
$hook_array['before_save'] = Array();
$hook_array['before_save'][] = Array(1, 'AccountHooks',
'custom/Accounts/AccountHooks.php','AccountHooks', 'getParentAccountIndustry');

Параметры для определения логической ловушки.

Параметр 1 – индекс для сортировки, использующийся для сортировки массивов определений логических ловушек, перед тем как их обрабатывают.
Параметр 2 — Строковое имя для идентификации ловушки
Параметр 3 – Путь к PHP файлу для включения, который содержит код логической ловушки.
Параметр 4 – Имя PHP класса, методом которого является ловушка.
Параметр 5 – Имя PHP метода ловушки.

AccountHooks.php

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<?php
class AccountHooks
{
    public function getParentAccountIndustry(
        SugarBean $bean,
        $event,
        $arguments
        )
    {
        if ( empty($bean->industry)
         && !empty($bean->parent_id) ) {
            $parentAccountFocus = new Account();
            $parentAccountFocus->retrieve($bean->parent_id);
            if ( !empty($parentAccountFocus->id) )
                $bean->industry = $parentAccountFocus->industry;
        }
    }
}

Куда я должен поместить доработки?

  • Логические ловушки уровня приложения в /custom/modules/
  • Логические ловушки уровня модуля в /custom/modules/Modulename/

Темы

Дерево каталогов

  • css/ — содержит все css файлы
  • images/ — содержит все рисунки
  • js/ — содержит все файлы js
  • tpls/ — шаблоны smarty
  • themedef.php файл определения

Темы могут наследоваться от других тем

Модель наследования тем

  • Все темы могут быть модифицированы заменой файлов в custom/theme/<themename> директории
  • Изображения, HTML шаблоны могут быть перезаписаны в данной директории (Пример: изображение theme/<themename>/dog.gif изменяем, заливая новое в папку custom/theme/<themename>/dog.gif )
  • CSS и Javascript файлы объединяются в порядке наследования
  • Используйте cssmin и jsmin чтобы уменьшить их размер
  • Никакого измения кода не требуются. Изменения будут видны автоматически после запуска быстрого восстановления.

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

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

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

  • Wholesale Jerseys China

    Wholesale Jerseys China

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

    There are a range of Netherlands Cultural Events that basically feature Visual Arts, Architecture, design projects among other intrinsic genres evident in the Dutch Arts culture. Even if it just clears your space and organizes your life, there is a benefit to feng shui. This denotes that the United States is indeed a second home for Dutch art and culture. It can also be overwhelming because you are trying to balance a number of different courses and usually require a larger case load.This may be accomplished properly with the community banking institution.
    Wholesale Jerseys China http://www.wholesalesportsnfljerseys.us.com/

  • Usb Best Flash Drive

    Usb Best Flash Drive

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

    Практическое занятие по доработкам в SugarCRM. Часть 2

  • 二手机械进口报关

    二手机械进口报关

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

    1、 谈话中要求全国新闻单位和新闻记者吸取教训,花费两天对接。别多喝。你学厨师就把菜做好,餐饮服务业的油烟净化改造情况, 行业出口额突破 100亿美元大关,大力扶持国内压铸、铸造产业的发展,注释:质监叫停桶装水农夫却称“退出”问题七:此次农夫山泉公布了一份2008年的美国检测报告, "梁升表示,就见红罐加多宝大版广告。

  • Wholesale NFL Jerseys

    Wholesale NFL Jerseys

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

    com, if youd like to learn more about this particular area of interest. This means that they will only take enough customers as their equipment and servers can handle. So with all the businesses out there, how does one select which is best for them? When selecting a web hosting company, there are a few things to keep in mind. You can make the use of these tools to bring your required features in cameras. One truly needs to know that like anything else, there is a degree of service that also needs to be compared between the different businesses.
    Wholesale NFL Jerseys http://www.cheapfootballjerseysnfl.us.com/

  • Drum lifters and trolleys

    Drum lifters and trolleys

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

    Simply desire to say your article is as astonishing. The clarity in your post is simply great and i could assume you're an expert on this subject. Fine with your permission let me to grab your feed to keep up to date with forthcoming post. Thanks a million and please carry on the rewarding work.

  • Furniture Recovering by Reupholsterer.

    Furniture Recovering by Reupholsterer.

    Комментировать 02.09.2017 11:45

    Nice post. I was checking constantly this blog and I am impressed! Very useful information specially the last part :) I care for such information much. I was seeking this certain info for a long time. Thank you and best of luck.

  • About Us

    About Us

    Комментировать 02.09.2017 09:22

    You made some decent points there. I looked on the internet for the issue and found most individuals will go along with with your website.

  • replique cartier ballon bleu 36mm

    replique cartier ballon bleu 36mm

    Комментировать 02.09.2017 09:21

    I all the time emailed this weblog post page to all my friends, because if like to read it next my contacts will too.|
    replique cartier ballon bleu 36mm http://www.montrecartier.com/

  • kyire 2

    kyire 2

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

    The revelation guus hiddink said willing to coach the team's Sven-goran eriksson in May?
    kyire 2 http://www.kyire2.com

  • Piezo sirene

    Piezo sirene

    Комментировать 02.09.2017 07:17

    Практическое занятие по доработкам в SugarCRM. Часть 2

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

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

Наверх

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

  • 1
  • 2
  • 3
  • 4

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