示例#1
0
/**
 * Creates constants.php that contains variable
 * definitions that the codev admin may want to tune.
 *
 * 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 OK, or an error message starting with 'ERROR' .
 */
function createConstantsFile($mantisPath, $mantisURL, $codevURL)
{
    // --- general ---
    Constants::$homepage_title = 'Welcome';
    Constants::$codevURL = $codevURL;
    Constants::$mantisURL = $mantisURL;
    Constants::$mantisPath = $mantisPath;
    Constants::$codevRootDir = dirname(dirname(__FILE__));
    Constants::$codevtt_logfile = Constants::$codevRootDir . '/codevtt.log';
    // --- database ---
    // already set...
    // --- mantis ---
    // already set...
    // --- status ---
    $status_new = array_search('new', Constants::$statusNames);
    $status_feedback = array_search('feedback', Constants::$statusNames);
    #$status_acknowledged = array_search('acknowledged', Constants::$statusNames);
    $status_open = array_search('open', Constants::$statusNames);
    $status_closed = array_search('closed', Constants::$statusNames);
    Constants::$status_new = $status_new;
    Constants::$status_feedback = $status_feedback;
    Constants::$status_open = NULL != $status_open ? $status_open : 50;
    // (50 = 'assigned' in default mantis workflow)
    Constants::$status_closed = $status_closed;
    // --- resolution ---
    Constants::$resolution_fixed = array_search('fixed', Constants::$resolution_names);
    Constants::$resolution_reopened = array_search('reopened', Constants::$resolution_names);
    // --- relationships ---
    define('BUG_CUSTOM_RELATIONSHIP_CONSTRAINED_BY', 2500);
    define('BUG_CUSTOM_RELATIONSHIP_CONSTRAINS', 2501);
    Constants::$relationship_constrained_by = 2500;
    Constants::$relationship_constrains = 2501;
    $retCode = Constants::writeConfigFile();
    if (!$retCode) {
        // TODO throw exception...
        return "ERROR: Could not create file " . Constants::$config_file;
    }
    return NULL;
}
示例#2
0
     } else {
         // if none selected, create one...
         $isCreateExtIdField = TRUE;
     }
 }
 createCustomFields($isCreateExtIdField);
 echo "DEBUG 6/16 create ExternalTasks Project<br/>";
 $extproj_id = createExternalTasksProject(T_("CodevTT_ExternalTasks"), T_("CodevTT ExternalTasks Project"));
 $adminLeader = UserCache::getInstance()->getUser($adminTeamLeaderId);
 echo "DEBUG 7/16 createAdminTeam  with leader:  " . $adminLeader->getName() . "<br/>";
 createAdminTeam($adminTeamName, $adminTeamLeaderId);
 echo "DEBUG 8/16 update status list<br/>";
 Constants::$status_new = $status_new;
 Constants::$status_feedback = $status_feedback;
 Constants::$status_open = $status_open;
 Constants::$status_closed = $status_closed;
 // Set path for .CSV reports (Excel)
 echo "DEBUG 9/16 add CodevTT output directory<br/>";
 Constants::$codevOutputDir = $codevOutputDir;
 Constants::$codevtt_logfile = $codevOutputDir . '/logs/codevtt.log';
 $retCode = Constants::writeConfigFile();
 if (FALSE == $retCode) {
     echo "<span class='error_font'>ERROR: could not update config file: " . Constants::$config_file . "</span><br/>";
     $installStepFailed = TRUE;
     exit;
 }
 echo "DEBUG 10/16 create Logger configuration file<br/>";
 $errStr = createLog4phpFile();
 if (NULL != $errStr) {
     echo "<span class='error_font'>" . $errStr . "</span><br/>";
     $installStepFailed = TRUE;
示例#3
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);
 }