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); }
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']; }
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>"; } }
function action_step3save() { require_once 'modules/AddonBoilerplate/includes/classes/AddonBoilerplate/Setting.php'; AddonBoilerplate_Setting::set('my_config', $_REQUEST['my_config']); $this->action_step4(); }