echo build_csv_header($col_list, $lbl_list) . $eol; if ($multiple_queries) { $multiarr = array(); for ($i = 0; $i < $rows; $i++) { foreach ($all_results as $result) { $multiarr = array_merge($multiarr, db_fetch_array($result)); } prepare_artifact_record($ath, $fields, $atid, $multiarr, 'csv'); $curArtifact = new Artifact($ath, $multiarr['artifact_id']); if ($curArtifact->userCanView(user_getid())) { echo build_csv_record($col_list, $multiarr) . $eol; } } } else { while ($arr = db_fetch_array($result)) { prepare_artifact_record($ath, $fields, $atid, $arr, 'csv'); $curArtifact = new Artifact($ath, $arr['artifact_id']); if ($curArtifact->userCanView(user_getid())) { echo build_csv_record($col_list, $arr) . $eol; } } } } else { $params['group'] = $group_id; $params['toptab'] = 'tracker'; $params['pagename'] = 'trackers'; $params['title'] = $Language->getText('tracker_index', 'trackers_for'); $params['sectionvals'] = array($group->getPublicName()); $params['help'] = 'tracker-v3.html'; $params['pv'] = $request->exist('pv') ? $request->get('pv') : ''; site_project_header($params);
} if (count($all_results)) { $rows = db_numrows($all_results[0]); for ($i = 0; $i < $rows; ++$i) { $arr = array(); foreach ($all_results as $result) { $arr = array_merge($arr, db_fetch_array($result)); } prepare_artifact_record($at, $fields, $atid, $arr, 'database'); insert_record_in_table($dbname, $tbl_name, $col_list, $arr); } } } else { $result = db_query($sql); while ($arr = db_fetch_array($result)) { prepare_artifact_record($at, $fields, $atid, $arr, 'database'); insert_record_in_table($dbname, $tbl_name, $col_list, $arr); } } } else { $feedback .= $Language->getText('project_export_artifact_deps_export', 'create_proj_err', array($tbl_name, db_project_error())); } // MV add // Export table structure // Create table $tbl_struct_name = "artifact_struct_" . $at_arr[$j]->getItemName(); $tbl_struct_name = str_replace(' ', '_', $tbl_struct_name); $fieldsList = $art_field_fact->getAllUsedFields(); db_project_query($dbname, 'DROP TABLE IF EXISTS ' . $tbl_struct_name); $struct_table_create = 'CREATE TABLE ' . $tbl_struct_name . '(' . ' field_name VARCHAR(255), ' . ' field_label VARCHAR(255)' . ')'; db_project_query($dbname, $struct_table_create);
/** * Display screen showing the allowed input format of the CSV files * * */ function displayShowFormat() { global $Language; // project_export_utils is using $at instead of $ath $at = $this->ath; $this->ath->header(array('title' => $Language->getText('tracker_import', 'art_import') . ' ' . $this->ath->getID() . ' - ' . $this->ath->getName(), 'pagename' => 'tracker', 'atid' => $this->ath->getID(), 'sectionvals' => array($this->group->getPublicName()), 'help' => 'tracker-v3.html#tracker-artifact-import')); echo '<div id="tracker_toolbar_clear"></div>' . PHP_EOL; $sql = $this->ath->buildExportQuery($fields, $col_list, $this->lbl_list, $this->dsc_list, $select, $from, $where, $multiple_queries, $all_queries); //we need only one single record $sql .= " LIMIT 1"; //get all mandatory fields $mand_list = $this->mandatoryFields(); // Add the 2 fields that we build ourselves for user convenience // - All follow-up comments // - Dependencies $col_list[] = 'follow_ups'; $col_list[] = 'is_dependent_on'; $col_list[] = 'add_cc'; $col_list[] = 'cc_comment'; $eol = "\n"; $result = db_query($sql); $rows = db_numrows($result); echo '<h3>' . $Language->getText('tracker_import', 'format_hdr'), '</h3>'; echo '<p>' . $Language->getText('tracker_import', 'format_msg'), '<p>'; if ($rows > 0) { $record = pick_a_record_at_random($result, $rows, $col_list); } else { $record = $this->ath->buildDefaultRecord(); } prepare_artifact_record($at, $fields, $this->ath->getId(), $record, 'csv'); $hp = Codendi_HTMLPurifier::instance(); foreach ($record as $k => $v) { //We should know the type of each field because some are sanitized, others htmlspecialcharized... $record[$k] = $hp->purify($v, CODENDI_PURIFIER_CONVERT_HTML); } display_exported_fields($col_list, $this->lbl_list, $this->dsc_list, $record, $mand_list); echo '<br><br><h4>' . $Language->getText('tracker_import', 'sample_cvs_file') . '</h4>'; echo build_csv_header($col_list, $this->lbl_list); echo '<br>'; echo build_csv_record($col_list, $record); $this->ath->footer(array()); }