|
From: Benjamin C. <bc...@us...> - 2004-05-02 17:04:08
|
Update of /cvsroot/phpbt/phpbt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19653 Modified Files: Tag: htmltemplates query.php Log Message: Added excel download Index: query.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/query.php,v retrieving revision 1.98.2.3 retrieving revision 1.98.2.4 diff -u -r1.98.2.3 -r1.98.2.4 --- query.php 29 Feb 2004 02:17:26 -0000 1.98.2.3 +++ query.php 2 May 2004 17:04:00 -0000 1.98.2.4 @@ -179,6 +179,23 @@ } } +// Formatting for spreadsheet +function format_spreadsheet_col($colvalue, $coltype) { + global $select; + + switch($coltype) { + case 'created_date' : + case 'last_modified_date' : + case 'close_date' : + return ($colvalue ? date(DATE_FORMAT, $colvalue) : ''); + case 'lastmodifier' : + return (!empty($colvalue) ? maskemail($colvalue) : ''); + case 'priority' : + return $select['priority'][$colvalue]; + default: return $colvalue; + } +} + // Handle the formatting for various types of bug info in the bug list function format_bug_col($colvalue, $coltype, $bugid, $pos) { global $select; @@ -303,15 +320,7 @@ list($_SESSION['queryinfo']['query'], $paramstr) = build_query($assignedto, $reportedby, $open); } - $nr = $db->getOne($QUERY['query-list-bugs-count']. - (!empty($_SESSION['queryinfo']['query']) - ? $QUERY['query-list-bugs-count-join']. - $_SESSION['queryinfo']['query'] - : '')); - - $_SESSION['queryinfo']['numrows'] = $nr; - list($selrange, $llimit) = multipages($nr, $page, "order=$order&sort=$sort"); - + $desired_fields = !empty($_SESSION['db_fields']) ? $_SESSION['db_fields'] : $default_db_fields; @@ -322,20 +331,62 @@ $headers[] = $db_headers[$field]; } - $t->assign(array( - 'db_fields' => $desired_fields, - 'field_titles' => $field_titles - )); - - $t->assign('bugs', $db->getAll($db->modifyLimitQuery( - sprintf($QUERY['query-list-bugs'], join(', ', $query_fields), + if (empty($_GET['xl'])) { // HTML view + $nr = $db->getOne($QUERY['query-list-bugs-count']. (!empty($_SESSION['queryinfo']['query']) - ? "and {$_SESSION['queryinfo']['query']} " : ''), - $order, $sort), $llimit, $selrange))); + ? $QUERY['query-list-bugs-count-join']. + $_SESSION['queryinfo']['query'] + : '')); + + $_SESSION['queryinfo']['numrows'] = $nr; + list($selrange, $llimit) = multipages($nr, $page, "order=$order&sort=$sort"); + + $t->assign(array( + 'db_fields' => $desired_fields, + 'field_titles' => $field_titles + )); + + $t->assign('bugs', $db->getAll($db->modifyLimitQuery( + sprintf($QUERY['query-list-bugs'], join(', ', $query_fields), + (!empty($_SESSION['queryinfo']['query']) + ? "and {$_SESSION['queryinfo']['query']} " : ''), + $order, $sort), $llimit, $selrange))); + + sorting_headers($me, $headers, $order, $sort, "page=$page". + (!empty($paramstr) ? $paramstr : '')); + $t->render('buglist.html', translate("Bug List")); + } else { // Spreasheet download + dump_spreadsheet($desired_fields, $field_titles, $db->getAll( + sprintf($QUERY['query-list-bugs'], join(', ', $query_fields), + (!empty($_SESSION['queryinfo']['query']) + ? "and {$_SESSION['queryinfo']['query']} " : ''), + $order, $sort))); + } +} - sorting_headers($me, $headers, $order, $sort, "page=$page". - (!empty($paramstr) ? $paramstr : '')); - $t->render('buglist.html', translate("Bug List")); +function dump_spreadsheet($fields, $titles, &$data) { + #echo '<pre>'; + #print_r($fields); print_r($data); exit; + chdir('./inc/pear/'); + include_once('./Spreadsheet/Excel/Writer.php'); + $workbook = new Spreadsheet_Excel_Writer(); + $workbook->send('buglist.xls'); + error_reporting(0); + $boldformat =& $workbook->addformat(array('bold' => 1)); + $worksheet =& $workbook->addworksheet('buglist'); + $row = 0; + for ($i = 0, $colcount = count($fields); $i < $colcount; $i++) { + $worksheet->write($row, $i, $titles[$i], $boldformat); + } + $row++; + for ($i = 0, $bugcount = count($data); $i < $bugcount; $i++) { + for ($j = 0; $j < $colcount; $j++) { + $worksheet->write($row, $j, format_spreadsheet_col($data[$i][$fields[$j]], $fields[$j])); + } + $row++; + } + $worksheet->freezepanes(array(1, 0)); + $workbook->close(); } $reportedby = !empty($_GET['reportedby']) ? $_GET['reportedby'] : 0; |