/** * Export user list in csv format * * @param String $user_name_search * @param String $current_sort_header * @param String $sort_order * */ public function exportUserList($user_name_search, $current_sort_header, $sort_order, $status_values) { global $Language; header('Content-Type: text/csv'); header('Content-Disposition:attachment; filename=users_list.csv'); $eol = "\n"; $documents_title = array('user_id' => $Language->getText('admin_userlist', 'id_user'), 'login_name' => $Language->getText('include_user_home', 'login_name'), 'real_name' => $Language->getText('include_user_home', 'real_name'), 'member_of' => $Language->getText('admin_userlist', 'member_of'), 'admin_of' => $Language->getText('admin_userlist', 'admin_of'), 'status' => $Language->getText('admin_userlist', 'status')); echo build_csv_header($this->col_list, $documents_title) . $eol; $dao = new UserDao(CodendiDataAccess::instance()); $result = $dao->listAllUsers($user_name_search, 0, 0, $current_sort_header, $sort_order, $status_values); $users = $result['users']; echo $this->buildCsvBody($users); }
} $vExport = new Valid_WhiteList('export', array('user_groups', 'user_groups_format')); $vExport->required(); if ($request->valid($vExport)) { $export = $request->get('export'); $col_list = array('group', 'username', 'realname'); $lbl_list = array('group' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_group'), 'username' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_username', array($GLOBALS['sys_name'])), 'realname' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_realname')); $um = UserManager::instance(); switch ($export) { case 'user_groups': $sep = get_csv_separator(); $eol = "\n"; $name = 'export_user_groups_' . $project->getUnixName() . '.csv'; 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':
/** * @param $log Array * @param $project Project */ function export_plugin_logs($log, $project) { $eol = "\n"; $result = db_query($log['sql']); $rows = db_numrows($result); if ($result && $rows > 0) { $arr = db_fetch_array($result); if (isset($arr['type'])) { $col_list = array('time', 'type', 'user', 'email', 'title', 'local_time'); $plugin_title = array('time' => $log['title'], 'type' => '', 'user' => '', 'email' => '', 'title' => '', 'local_time' => ''); $lbl_list = array('time' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'time'), 'type' => $GLOBALS['Language']->getText('project_admin_utils', 'action'), 'user' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'user'), 'email' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'email'), 'title' => $log['field'], 'local_time' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'local_time')); } else { $col_list = array('time', 'user', 'email', 'title', 'local_time'); $plugin_title = array('time' => $log['title'], 'user' => '', 'email' => '', 'title' => '', 'local_time' => ''); $lbl_list = 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' => $log['field'], 'local_time' => $GLOBALS['Language']->getText('project_export_access_logs_export', 'local_time')); } // Build csv for plugins logs echo build_csv_header($col_list, $plugin_title) . $eol; echo build_csv_header($col_list, $lbl_list) . $eol; do { prepare_access_logs_record($project->getGroupId(), $arr); echo build_csv_record($col_list, $arr) . $eol; } while ($arr = db_fetch_array($result)); echo build_csv_header($col_list, array()) . $eol; } }
/** * Export muc logs of project $group_id * using monitoring openfire's plugin */ function export_muc_logs() { $request = HTTPRequest::instance(); $group_id = $request->get('group_id'); $pm = ProjectManager::instance(); $project = $pm->getProject($group_id); $any = $GLOBALS['Language']->getText('global', 'any'); if ($request->exist('log_start_date')) { $start_date = $request->get('log_start_date'); if ($start_date == '') { $start_date = $any; } } else { $week_ago = mktime(0, 0, 0, date("m"), date("d") - 7, date("Y")); $start_date = date("Y-m-d", $week_ago); } $end_date = $request->get('log_end_date'); if ($end_date == '') { $end_date = $any; } $mclm = IMMucLogManager::getMucLogManagerInstance(); $conversations = null; try { if ($start_date == $any && $end_date == $any) { $conversations = $mclm->getLogsByGroupName($project->getUnixName(true)); } elseif ($start_date == $any && $end_date != $any) { $conversations = $mclm->getLogsByGroupNameBeforeDate($project->getUnixName(true), $end_date); } elseif ($start_date != $any && $end_date == $any) { $conversations = $mclm->getLogsByGroupNameAfterDate($project->getUnixName(true), $start_date); } else { $conversations = $mclm->getLogsByGroupNameBetweenDates($project->getUnixName(true), $start_date, $end_date); } } catch (Exception $e) { echo $e->getMessage(); } $eol = "\n"; $col_list = array('date', 'nickname', 'message'); $lbl_list = array('date' => $GLOBALS['Language']->getText('plugin_im', 'muc_logs_time'), 'nickname' => $GLOBALS['Language']->getText('plugin_im', 'muc_logs_user'), 'message' => $GLOBALS['Language']->getText('plugin_im', 'muc_logs_message')); $purifier = Codendi_HTMLPurifier::instance(); $uh = new UserHelper(); $file_name = 'muc_logs_' . $project->getUnixName(); header('Content-Type: text/csv'); header('Content-Disposition: filename=' . $file_name . '.csv'); if (!$conversations || sizeof($conversations) == 0) { echo $GLOBALS['Language']->getText('plugin_im', 'no_muc_logs'); } else { // Build CSV header foreach ($lbl_list as $k => $v) { $lbl_list[$k] = SimpleSanitizer::unsanitize($v); } echo build_csv_header($col_list, $lbl_list) . $eol; // Build CSV content foreach ($conversations as $conv) { $time = format_date(util_get_user_preferences_export_datefmt(), $conv->getTimestamp()); if ($conv->getNickname() != null) { $nick = $conv->getNickname(); } else { $nick = ''; } $message = $conv->getMessage(); echo build_csv_record($col_list, array('date' => $time, 'nickname' => $nick, 'message' => $message)) . $eol; } } }
/** * 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()); }
/** * Export project history to a csv file * * @param Integer $group_id Id of the project * @param String $event Events category used to filter results * @param String $subEventsBox Event used to filter results * @param String $value Value used to filter results * @param Integer $startDate Start date used to filter results * @param Integer $endDate End date used to filter results * @param String $by User name used to filter results * * @return void */ function export_grouphistory($group_id, $event = null, $subEventsBox = null, $value = null, $startDate = null, $endDate = null, $by = null) { global $Language; header('Content-Type: text/csv'); header('Content-Disposition: filename=project_history.csv'); $eol = "\n"; $col_list = array('event', 'val', 'date', 'by'); $documents_title = array('event' => $Language->getText('project_admin_utils', 'event'), 'val' => $Language->getText('project_admin_utils', 'val'), 'date' => $Language->getText('project_admin_utils', 'date'), 'by' => $Language->getText('global', 'by')); echo build_csv_header($col_list, $documents_title) . $eol; $dao = new ProjectHistoryDao(CodendiDataAccess::instance()); $history_filter = build_grouphistory_filter($event, $subEventsBox, $value, $startDate, $endDate, $by); $res = $dao->groupGetHistory(0, 0, $group_id, $history_filter); if ($res['numrows'] > 0) { echo displayProjectHistoryResults($group_id, $res, true); } echo build_csv_header($col_list, array()) . $eol; }