function export_wiki_pg_logs($project, $span, $who, $sf) { $eol = "\n"; $sql_wiki_pg = wiki_logs_extract($project, $span, $who); $col_list_wiki_pg = array('time', 'user', 'email', 'title', 'local_time'); $wiki_pg_title = array('time' => $GLOBALS['Language']->getText('project_stats_source_code_access_utils', 'wiki_access'), 'user' => '', 'email' => '', 'title' => '', 'local_time' => ''); $lbl_list_wiki_pg = array('time' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'time'), 'user' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'user'), 'email' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'email'), 'title' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'page'), 'local_time' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'local_time')); $result_wiki_pg = db_query($sql_wiki_pg); $rows_wiki_pg = db_numrows($result_wiki_pg); if (!$sf) { if ($result_wiki_pg && $rows_wiki_pg > 0) { // Build csv for wiki pages access logs echo build_csv_header($col_list_wiki_pg, $wiki_pg_title) . $eol; echo build_csv_header($col_list_wiki_pg, $lbl_list_wiki_pg) . $eol; while ($arr_wiki_pg = db_fetch_array($result_wiki_pg)) { prepare_access_logs_record($project->getGroupId(), $arr_wiki_pg); echo build_csv_record($col_list_wiki_pg, $arr_wiki_pg) . $eol; } echo build_csv_header($col_list_wiki_pg, array()) . $eol; } } else { //to be used in 'Show Format' link if ($result_wiki_pg && $rows_wiki_pg > 0) { $dsc_list = array('time' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'date_desc'), 'user' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'user_desc'), 'email' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'email_desc'), 'title' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'page_desc'), 'local_time' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'local_time_desc')); $record = pick_a_record_at_random($result_wiki_pg, $rows_wiki_pg, $col_list_wiki_pg); prepare_access_logs_record($project->getGroupId(), $record); display_exported_fields($col_list_wiki_pg, $lbl_list_wiki_pg, $dsc_list, $record); } } }
header('Content-Disposition: filename=' . $name); header('Content-Type: text/csv'); echo build_csv_header($col_list, $lbl_list) . $eol; $ugs = ugroup_db_get_existing_ugroups($group_id, array($GLOBALS['UGROUP_PROJECT_MEMBERS'], $GLOBALS['UGROUP_PROJECT_ADMIN'])); while ($ugrp = db_fetch_array($ugs)) { if ($ugrp['ugroup_id'] <= 100) { $sqlUsers = ugroup_db_get_dynamic_members($ugrp['ugroup_id'], false, $group_id); } else { $sqlUsers = ugroup_db_get_members($ugrp['ugroup_id']); } $users = db_query($sqlUsers); while ($user = db_fetch_array($users)) { $r = array('group' => util_translate_name_ugroup($ugrp['name']), 'username' => $user['user_name'], 'realname' => $um->getUserById($user['user_id'])->getRealname()); echo build_csv_record($col_list, $r) . $eol; } } break; case 'user_groups_format': echo '<h3>' . $Language->getText('project_export_user_groups', 'exp_format') . '</h3>'; echo '<p>' . $Language->getText('project_export_user_groups', 'exp_format_msg') . '</p>'; // Pick-up a random project member $sqlUsers = ugroup_db_get_dynamic_members($GLOBALS['UGROUP_PROJECT_MEMBERS'], false, $group_id); $users = db_query($sqlUsers); $uRow = db_fetch_array($users); $user = $um->getUserById($uRow['user_id']); $dsc_list = array('group' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_group_desc'), 'username' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_username_desc', array($GLOBALS['sys_name'])), 'realname' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_realname_desc')); $record = array('group' => util_translate_name_ugroup('project_members'), 'username' => $user->getName(), 'realname' => $user->getRealName()); display_exported_fields($col_list, $lbl_list, $dsc_list, $record); break; } }
/** * 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()); }