exportgradebook.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Prints an HTML page with a table containing the gradebook data
  5. * @param array Array containing the data to be printed in the table
  6. * @param array Table headers
  7. * @param string View to print as a title for the table
  8. * @param string Course name to print as title for the table
  9. */
  10. function print_table ($data_array,$header_names,$view,$coursename) {
  11. $printdata= '<!DOCTYPE html
  12. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  13. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  14. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.api_get_language_isocode().'" lang="'.api_get_language_isocode().'">
  15. <head>
  16. <title>'.get_lang('Print').'</title>
  17. <meta http-equiv="Content-Type" content="text/html; charset='.api_get_system_encoding().'" />
  18. <style type="text/css">
  19. body {
  20. font-size: 12px;
  21. color: #000;
  22. margin: 10px;
  23. padding: 0;
  24. }
  25. a:link {text-decoration: none; font-weight : bold; color : black;}
  26. a:visited {text-decoration: none; font-weight : bold; color : black;}
  27. a:active {text-decoration: none; font-weight : bold; color : black;}
  28. .data_table{
  29. border-collapse: collapse;
  30. width: 100%;
  31. padding: 5px;
  32. border: 1px;
  33. }
  34. .data_table th{
  35. padding: 5px;
  36. vertical-align: top;
  37. border-top: 1px solid black;
  38. border-bottom: 1px solid black;
  39. border-right: 1px solid black;
  40. border-left: 1px solid black;
  41. }
  42. .data_table tr.row_odd{
  43. background-color: #fafafa;
  44. }
  45. .data_table tr.row_even{
  46. background-color: #fff;
  47. }
  48. .data_table td{
  49. padding: 5px;
  50. vertical-align: top;
  51. border-bottom: 1px solid black;
  52. border-right: 1px solid black;
  53. border-left: 1px solid black;
  54. }
  55. </style>
  56. </head>
  57. <body dir="'.api_get_text_direction().'"><div id="main">';
  58. $printdata .= '<h2>'.$view.' : '.$coursename.'</h2>';
  59. //@todo not necessary here
  60. //$printdata .= '<h3>'.get_lang('Date').' : '.api_convert_and_format_date(null, DATE_FORMAT_SHORT). ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT).'</h3>';
  61. $printdata .= '<table border="1" width="90%" cellspacing="1" cellpadding="1">';
  62. foreach ($header_names as $header) {
  63. $printdata .= '<th>'.$header.'</th>';
  64. }
  65. foreach ($data_array as $data) {
  66. $printdata .= '<tr>';
  67. foreach ($data as $rowdata) {
  68. $printdata .= '<td>'.$rowdata.'</td>';
  69. }
  70. $printdata .= '</tr>';
  71. }
  72. $printdata .= '</table></div></body></html>';
  73. return $printdata;
  74. }
  75. /**
  76. * Exports the data as a table on a PDF page
  77. * @param resource The PDF object (ezpdf class) used to generate the file
  78. * @param array The data array
  79. * @param array Table headers
  80. * @param string Format (portrait or landscape)
  81. */
  82. function export_pdf($pdf,$newarray,$header_names,$format) {
  83. $pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');
  84. $pdf->ezSetCmMargins(0,0,0,0);
  85. $pdf->ezSetY(($format=='portrait')?'820':'570');
  86. $pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');
  87. //$pdf->ezText(get_lang('FlatView').' ('. api_convert_and_format_date(null, DATE_FORMAT_SHORT). ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT) .')',12,array('justification'=>'center'));
  88. if ($format=='portrait') {
  89. $pdf->line(40,790,540,790);
  90. $pdf->line(40,40,540,40);
  91. } else {
  92. $pdf->line(40,540,790,540);
  93. $pdf->line(40,40,790,40);
  94. }
  95. $pdf->ezSetY(($format=='portrait')?'750':'520');
  96. $pdf->ezTable($newarray,$header_names,'',array('showHeadings'=>1,'shaded'=>1,'showLines'=>1,'rowGap'=>3,'width'=>(($format=='portrait')?'500':'750')));
  97. $pdf->ezStream();
  98. }