示例#1
0
/**
 * writes an INCOMPLETE config.ini file (containing only DB access variables)
 *
 * WARN: depending on your HTTP server installation, the file may be created
 * by user 'apache', so be sure that this user has write access
 * to the CoDev install directory
 *
 * @return NULL if Success, ErrorString if Failed
 */
function createConfigFile($db_mantis_host = 'localhost', $db_mantis_user = '******', $db_mantis_pass = '', $db_mantis_database = 'bugtracker', $proxy_host = NULL, $proxy_port = NULL)
{
    Constants::$db_mantis_host = $db_mantis_host;
    Constants::$db_mantis_user = $db_mantis_user;
    Constants::$db_mantis_pass = $db_mantis_pass;
    Constants::$db_mantis_database = $db_mantis_database;
    if (!is_null($proxy_host) && !is_null($proxy_port)) {
        Constants::$proxy = $proxy_host . ':' . $proxy_port;
    }
    // this writes an INCOMPLETE config.ini file (containing only DB access variables)
    $retCode = Constants::writeConfigFile();
    if (!$retCode) {
        throw new Exception("ERROR: Could not create file " . Constants::$config_file);
    }
}
示例#2
0
 /**
  * get config from ini file
  */
 public static function parseConfigFile()
 {
     // TODO workaround
     $file = self::$config_file;
     if (!file_exists($file)) {
         if (!self::$quiet) {
             self::$logger->error("ERROR: parseConfigFile() file " . $file . " NOT found !");
             echo "ERROR: parseConfigFile() file " . $file . " NOT found !";
         }
         return FALSE;
     }
     $ini_array = parse_ini_file($file, true);
     #print_r($ini_array);
     $general = $ini_array['general'];
     self::$codevInstall_timestamp = $general['codevInstall_timestamp'];
     self::$codevtt_logfile = $general['codevtt_logfile'];
     self::$codevOutputDir = $general['codevtt_output_dir'];
     self::$homepage_title = $general['homepage_title'];
     if (array_key_exists('logo_image', $general)) {
         self::$logoImage = $general['logo_image'];
     }
     self::$codevURL = $general['codevtt_url'];
     self::$codevRootDir = $general['codevtt_dir'];
     self::$mantisPath = $general['mantis_dir'];
     self::$mantisURL = $general['mantis_url'];
     $database = $ini_array['database'];
     self::$db_mantis_host = $database['db_mantis_host'];
     self::$db_mantis_database = $database['db_mantis_database'];
     self::$db_mantis_user = $database['db_mantis_user'];
     self::$db_mantis_pass = $database['db_mantis_pass'];
     $mantis = $ini_array['mantis'];
     self::$statusNames = Tools::doubleExplode(':', ',', $mantis['status_enum_string']);
     self::$priority_names = Tools::doubleExplode(':', ',', $mantis['priority_enum_string']);
     self::$resolution_names = Tools::doubleExplode(':', ',', $mantis['resolution_enum_string']);
     self::$severity_names = Tools::doubleExplode(':', ',', $mantis['severity_enum_string']);
     self::$bug_resolved_status_threshold = $mantis['bug_resolved_status_threshold'];
     self::$status_enum_workflow = json_decode($mantis['status_enum_workflow'], true);
     // jsonStr to array
     $status = $ini_array['status'];
     self::$status_new = $status['status_new'];
     self::$status_feedback = $status['status_feedback'];
     #self::$status_acknowledged = $status['status_acknowledged'];
     self::$status_open = $status['status_open'];
     self::$status_closed = $status['status_closed'];
     $resolution = $ini_array['resolution'];
     self::$resolution_fixed = $resolution['resolution_fixed'];
     self::$resolution_reopened = $resolution['resolution_reopened'];
     $relationships = $ini_array['relationships'];
     self::$relationship_constrained_by = $relationships['relationship_constrained_by'];
     self::$relationship_constrains = $relationships['relationship_constrains'];
     define('BUG_CUSTOM_RELATIONSHIP_CONSTRAINED_BY', $relationships['relationship_constrained_by']);
     define('BUG_CUSTOM_RELATIONSHIP_CONSTRAINS', $relationships['relationship_constrains']);
     $perf = $ini_array['perf'];
     if ($perf != null && array_key_exists('max_tooltips_per_page', $perf)) {
         self::$maxTooltipsPerPage = $perf['max_tooltips_per_page'];
     }
     $doodles = $ini_array['doodles'];
     if (is_array($doodles)) {
         $today = date("md");
         self::$doodles = array();
         // remove default doodles
         foreach ($doodles as $key => $value) {
             self::$doodles[$key] = $value;
             if (substr($key, 0, 11) === 'logo_image_' && (substr($key, 11, 4) <= $today && substr($key, 16, 4) >= $today) && file_exists(self::$codevRootDir . DIRECTORY_SEPARATOR . $value)) {
                 self::$logoImage = $value;
             }
         }
     }
     $timesheets = $ini_array['timesheets'];
     if (null != $timesheets && array_key_exists('task_duration_list', $timesheets)) {
         self::$taskDurationList = Tools::doubleExplode(':', ',', $timesheets['task_duration_list']);
     }
     $internet = $ini_array['internet'];
     if (is_array($internet)) {
         if (array_key_exists('proxy', $internet)) {
             self::$proxy = $internet['proxy'];
         }
         if (array_key_exists('check_latest_version', $internet)) {
             self::$isCheckLatestVersion = $internet['check_latest_version'];
         }
     }
     $dashboards = $ini_array['dashboardDefaultPlugins'];
     if (is_array($dashboards)) {
         foreach ($dashboards as $domain => $plugins) {
             self::$dashboardDefaultPlugins[$domain] = explode(',', $plugins);
         }
     }
     $emailSettings = $ini_array['email'];
     if (is_array($emailSettings)) {
         foreach ($emailSettings as $key => $val) {
             self::$emailSettings[$key] = $val;
         }
     }
     // -----
     /* FIXME WORKAROUND: SQL procedures still use codev_config_table.bug_resolved_status_threshold ! */
     $desc = "bug resolved threshold as defined in Mantis (g_bug_resolved_status_threshold)";
     self::$logger->warn("WORKAROUND update codev_config_table.bug_resolved_status_threshold = " . self::$bug_resolved_status_threshold);
     Config::getInstance()->setValue(Config::id_bugResolvedStatusThreshold, self::$bug_resolved_status_threshold, Config::configType_int, $desc);
 }