Sugarcrm, написание пользовательского кода при сохранении записи

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

У меня вопрос, где писать этот код.


person AjayR    schedule 02.11.2011    source источник


Ответы (2)


Используйте логические перехватчики (например, after_save или before_save) в действии сохранения модуля.

  • Создайте файл logic_hooks.php в custom / modules / myModule /

    <?
    $hook_array = Array(); 
    $hook_array['after_save'] = Array(); 
    $hook_array['after_save'][] = Array(
        0,
        'myName',
        'custom/modules/myModule/logic_hooks/file.php',
        'myClass',
        'myMethod'
    );
    ?>
    
  • Создайте file.php в / custom / modules / myModule / logic_hooks /

    <?php
    class myClass{
        function myMethod(&$bean, $event, $arguments){
            // Do something with $bean (e.g. store the custom DB value)
        }
    }
    ?>
    

Для получения дополнительной информации см .: rel> эту ссылку.

person Kåre Werner Storgaard    schedule 02.11.2011
comment
Я пробовал вот так, он автоматически загружает logic_hooks.php при сохранении, но не вызывает функцию myMethod. Я указал правильный путь, но хранится в папке / custom / modules / CV_Customer_Visits. - person AjayR; 02.11.2011
comment
Я думаю, это должен быть относительный путь, поэтому /custom/modules/CV_Customer_Visits/your_php_file.php должен правильно custom/modules/CV_Customer_Visits/your_php_file.php - person Kåre Werner Storgaard; 02.11.2011
comment
Интересно, есть некоторый код для кормов, определенных в сахаре, который используется в этих методах перехвата. Когда я пишу свой код в этом файле с новой функцией, он выполняется правильно. Однако, когда я меняю местоположение того же файла, он не работает (я также изменил соответствующий путь при вызове ловушки) - person AjayR; 04.11.2011
comment
Не могли бы вы опубликовать содержимое ваших файлов и их имена. - person Kåre Werner Storgaard; 04.11.2011

Убедитесь, что ваш_php_file.php исполняется apache. Это могло быть так или возможно неправильное написание? Посмотрите, есть ли что-нибудь в ваших файлах журнала apache.

person asutrane    schedule 19.11.2011