コード例 #1
0
 public function getSetting($api, $args)
 {
     if (empty($args['key'])) {
         AddonBoilerplate_Helper::log('error', 'AddonBoilerplateAPI->updateSetting a key is required to update the setting.');
         return array('success' => false, 'message' => 'A key is required to update a setting.');
     }
     $key = $args['key'];
     require_once 'modules/AddonBoilerplate/includes/classes/AddonBoilerplate/Setting.php';
     $result = AddonBoilerplate_Setting::retrieve($key);
     if ($result === false) {
         return array('success' => false, 'message' => 'The setting could not be retrieved.', 'value' => $result);
     }
     return array('success' => true, 'message' => 'The setting was retrieved successfully.', 'value' => $result);
 }
コード例 #2
0
 public static function get_error_email_address()
 {
     $error_email = AddonBoilerplate_Setting::retrieve('erroremail');
     if (!empty($error_email)) {
         self::log('debug', 'AddonBoilerplate_Helper::get_error_email_address found email in settings: ' . $error_email);
         return $error_email;
     }
     self::log('debug', 'AddonBoilerplate_Helper::get_error_email_address could not find email in settings, getting system user.');
     $systemUser = BeanFactory::getBean("Users");
     $systemUser->getSystemUser();
     $systemUserInfo = $systemUser->getUsersNameAndEmail();
     self::log('debug', 'AddonBoilerplate_Helper::get_error_email_address found system email: ' . $systemUserInfo['email']);
     AddonBoilerplate_Setting::set('erroremail', $systemUserInfo['email']);
     return $systemUserInfo['email'];
 }
コード例 #3
0
function post_install()
{
    global $sugar_version, $sugar_flavor, $db, $dictionary, $current_user;
    //install table for user management
    if (!$db->tableExists('so_users')) {
        $fieldDefs = array('id' => array('name' => 'id', 'vname' => 'LBL_ID', 'type' => 'id', 'required' => true, 'reportable' => true), 'deleted' => array('name' => 'deleted', 'vname' => 'LBL_DELETED', 'type' => 'bool', 'default' => '0', 'reportable' => false, 'comment' => 'Record deletion indicator'), 'shortname' => array('name' => 'shortname', 'vname' => 'LBL_SHORTNAME', 'type' => 'varchar', 'len' => 255), 'user_id' => array('name' => 'user_id', 'rname' => 'user_name', 'module' => 'Users', 'id_name' => 'user_id', 'vname' => 'LBL_USER_ID', 'type' => 'relate', 'isnull' => 'false', 'dbType' => 'id', 'reportable' => true, 'massupdate' => false));
        $indices = array('id' => array('name' => 'so_userspk', 'type' => 'primary', 'fields' => array(0 => 'id')), 'shortname' => array('name' => 'shortname', 'type' => 'index', 'fields' => array(0 => 'shortname')));
        $db->createTableParams('so_users', $fieldDefs, $indices);
    }
    //do any scheduler setup, repairs, and promotions here
    require_once 'include/utils.php';
    require_once 'include/utils/file_utils.php';
    require_once 'config.php';
    require_once 'include/MVC/Controller/SugarController.php';
    require_once 'modules/ModuleBuilder/controller.php';
    require_once 'modules/ModuleBuilder/parsers/ParserFactory.php';
    // install a default scheduler, default to run every 5 minutes
    $scheduler = BeanFactory::getBean('Schedulers');
    $scheduler->retrieve_by_string_fields(array('job' => 'function::AddonBoilerplate', 'deleted' => '0'));
    //create the job if it has not yet been created
    if (empty($scheduler->id)) {
        $job = BeanFactory::getBean('Schedulers');
        $job->name = 'AddonBoilerplate';
        $job->job = 'function::AddonBoilerplate';
        $job->date_time_start = '2005-01-01 00:00:00';
        $job->job_interval = '*/5::*::*::*::*';
        $job->status = 'Active';
        $job->catch_up = '1';
        $job->save();
    }
    /**
       //define fields to add to the UI
       //NOTE: define these fields in the $field_defs below...needed to repair correctly
       $new_field_list = array(
           'addonboilerplate_field_c' => array(
               'name' => 'addonboilerplate_field_c',
               'label' => 'LBL_ADDONBOILERPLATE_FIELD_C',
           ),
       );
    
       $layoutFields = array();
       foreach ($new_field_list as $key => $field) {
           $layoutFields[$key] = $field;
       }
    */
    //   if(preg_match( "/^6.*/", $sugar_version))
    /**
        {
            addField2View('Accounts', $layoutFields, 'detailview');
            addField2View('Accounts', $layoutFields, 'editview');
        }
        else
        {
            addField2View('Accounts', $layoutFields, 'recordview');
        }
    
        //add to database as we are using Vardefs Ext instead of custom_fields in manifest due to: https://community.sugarcrm.com/sugarcrm/topics/custom_utils_in_sugarcrm_7_1_5_not_loading
        $field_defs = array();
        
        
        // if you edit this definition, also change /extensions/custom/modules/Accounts/Vardefs/AddonBoilerplate.php and vice versa
    
        $field_defs['addonboilerplate_field_c'] = array(
            'name' => 'LBL_ADDONBOILERPLATE_FIELD_C',
            'type' => 'varchar',
            'len' => 255,
        );
    
        $options = $db->getOptions();
        $options['skip_index_rebuild'] = true;
        $db->setOptions($options);
        
        $db->repairTableParams('accounts', $field_defs, null, true);
    */
    //    if(preg_match( "/^6.*/", $sugar_version))
    /**
        {
            // have use manually run rebuild & repair
        }
        else
        {
            //now repair the ServiceDictionary.rest.php
            $old_user = $GLOBALS['current_user'];
            $user = new User();
            $GLOBALS['current_user'] = $user->getSystemUser();
    
            $_REQUEST['repair_silent']=1;
            $rc = new RepairAndClear();
            $actions = array(
                'clearAll',
                'rebuildExtensions',
                'clearMetadataAPICache'
            );
            $rc->repairAndClearAll($actions,array('Accounts'),true,false);
            $rc->clearAdditionalCaches();
            $GLOBALS['current_user'] = $old_user;
        }
    */
    $admin = BeanFactory::getBean('Administration');
    $admin->retrieveSettings('addonboilerplate');
    require_once 'modules/AddonBoilerplate/includes/classes/AddonBoilerplate/Setting.php';
    $default_my_config = true;
    // if not already set, default activity sync enabled to true
    if (!isset($admin->settings['addonboilerplate_my_config'])) {
        AddonBoilerplate_Setting::set('my_config', $default_my_config);
    }
    // If it's a pro+ edition, install sample report
    /**
        if ($sugar_flavor != 'CE')
        {
            $report_id = 'addonboilerplate-sample-report-id123456789';
            
            $sql = "SELECT * 
                    FROM saved_reports 
                    WHERE id='{$report_id}'";
                    
            $result = $db->query($sql);
            
            $row = $db->fetchByAssoc($result);
    
            // easiest way for cross-db support to check if report already exists, just run query on id
            if (empty($row)) 
            {
                // add the sample report
                // ADD THE INSERT STATEMENT HERE...
                $sql = "INSERT INTO saved_reports (..........";
                
                $result = $db->query($sql);
            }
        }
    */
    // add tables that are non-standard
    /**
        $table_name = 'addonboilerplate_non_bean_table_example';
        if (!$db->tableExists($table_name)) 
        {
            $fieldDefs = array(
                'id' => array(
                    'name' => 'id',
                    'vname' => 'LBL_ID',
                    'type' => 'id',
                    'required' => true,
                    'reportable' => true,
                ),
                'addonboilerplate_field_c' => array(
                    'name' => 'addonboilerplate_field_c',
                    'vname' => 'LBL_LADDONBOILERPLATE_FIELD_C',
                    'type' => 'varchar',
                    'len' => 255,
                    'required' => true,
                    'reportable' => true,
                ),
            );
    
            $indices = array(
                'id' => array(
                    'name' => $table_name.'pk',
                    'type' => 'primary',
                    'fields' => array(
                        0 => 'id',
                    ),
                ),
            );
            
            $db->createTableParams($table_name,$fieldDefs,$indices);
        }
    */
    //redirect to license page
    if (preg_match("/^6.*/", $sugar_version)) {
        echo "\n            <script>\n            document.location = 'index.php?module=AddonBoilerplate&action=license';\n            </script>";
    } else {
        echo "\n            <script>\n            var app = window.parent.SUGAR.App;\n            window.parent.SUGAR.App.sync({callback: function(){\n                app.router.navigate('#bwc/index.php?module=AddonBoilerplate&action=license', {trigger:true});\n            }});\n            </script>";
    }
}
コード例 #4
0
 function action_step3save()
 {
     require_once 'modules/AddonBoilerplate/includes/classes/AddonBoilerplate/Setting.php';
     AddonBoilerplate_Setting::set('my_config', $_REQUEST['my_config']);
     $this->action_step4();
 }