PageRenderTime 1271ms CodeModel.GetById 31ms RepoModel.GetById 0ms app.codeStats 0ms

/www/pdf/index.php

https://github.com/careerpathways/Career-Pathways-Web-Tool
PHP | 121 lines | 89 code | 17 blank | 15 comment | 2 complexity | e196fcceac4cf23cc8c171ecf8ea5af8 MD5 | raw file
  1. <?php
  2. chdir('..');
  3. include('inc.php');
  4. switch(request('mode'))
  5. {
  6. case 'drawing':
  7. $url = 'http://' . $_SERVER['SERVER_NAME'] . '/c/published/' . request('drawing_id') . '/view.html';
  8. $filename = 'published-' . request('drawing_id') . '.pdf';
  9. $drawing = $DB->SingleQuery('SELECT drawing_main.*,
  10. IF(drawing_main.name="", p.title, drawing_main.name) AS full_name, s.school_name
  11. FROM drawing_main
  12. LEFT JOIN programs AS p ON drawing_main.program_id=p.id
  13. LEFT JOIN schools AS s ON s.id = drawing_main.school_id
  14. WHERE drawing_main.id = ' . request('drawing_id'));
  15. $version = $DB->SingleQuery('SELECT version_num FROM drawings WHERE parent_id = ' . $drawing['id'] . ' AND published = 1');
  16. //$name = $drawing['school_name'] . ' - ' . $drawing['full_name'] . ' - Version ' . $version['version_num'];
  17. $name = GetDrawingName($drawing['id'], 'roadmap') . ' - Version ' . $version['version_num'];
  18. break;
  19. case 'version':
  20. $url = 'http://' . $_SERVER['SERVER_NAME'] . '/c/version/' . request('drawing_id') . '/' . request('version_id') . '.html';
  21. $filename = 'version-' . request('version_id') . '.pdf';
  22. $drawing = GetDrawingInfo(request('version_id'));
  23. //$name = $drawing['school_name'] . ' - ' . $drawing['full_name'] . ' - Version ' . $drawing['version_num'];
  24. $name = GetDrawingName(request('drawing_id'), 'roadmap') . ' - Version ' . $drawing['version_num'];;
  25. break;
  26. case 'post_drawing':
  27. $url = 'http://' . $_SERVER['SERVER_NAME'] . '/c/post/' . request('drawing_id') . '/view.html?hidecoursedescription';
  28. $filename = 'post-published-' . request('drawing_id') . '.pdf';
  29. $drawing = $DB->SingleQuery('SELECT post_drawing_main.*,
  30. IF(post_drawing_main.name="", p.title, post_drawing_main.name) AS full_name, s.school_name
  31. FROM post_drawing_main
  32. LEFT JOIN programs AS p ON post_drawing_main.program_id=p.id
  33. LEFT JOIN schools AS s ON s.id = post_drawing_main.school_id
  34. WHERE post_drawing_main.id = ' . request('drawing_id'));
  35. $version = $DB->SingleQuery('SELECT version_num FROM post_drawings WHERE parent_id = ' . $drawing['id'] . ' AND published = 1');
  36. //$name = $drawing['school_name'] . ' - ' . $drawing['full_name'] . ' - Version ' . $version['version_num'];
  37. $name = GetDrawingName(request('drawing_id'), 'post') . ' - Version ' . $version['version_num'];
  38. break;
  39. case 'post_version':
  40. $url = 'http://' . $_SERVER['SERVER_NAME'] . '/c/post/' . request('drawing_id') . '/' . request('version_id') . '.html?hidecoursedescription';
  41. $filename = 'post-version-' . request('version_id') . '.pdf';
  42. $drawing = GetDrawingInfo(request('version_id'), 'post');
  43. //$name = $drawing['school_name'] . ' - ' . $drawing['name'] . ' - Version ' . $drawing['version_num'];
  44. $name = GetDrawingName(request('drawing_id'), 'post') . ' - Version ' . $version['version_num'];
  45. break;
  46. case 'post_view':
  47. $url = 'http://' . $_SERVER['SERVER_NAME'] . '/c/study/' . request('id') . '/view.html?print&hidecoursedescription';
  48. $filename = 'post-view-' . request('id') . '.pdf';
  49. $drawing = $DB->SingleQuery('SELECT name, school_name
  50. FROM vpost_views v
  51. JOIN schools s on v.school_id = s.id
  52. WHERE v.id = ' . request('id'));
  53. $name = $drawing['school_name'] . ' - ' . $drawing['name'];
  54. break;
  55. case 'post_view_assurance':
  56. logmsg( "post_view_assurance\n" );
  57. $url = 'http://' . $_SERVER['SERVER_NAME'] . '/a/post_assurance.php?id=' . request('view_id') . '&assurance_id='.request('assurance_id').'&pdf_format';
  58. //$command = '"C:\\Program Files (x86)\\wkhtmltopdf\\wkhtmltopdf" "' . $url . '&session_id='.$session_id.'" ' . $fullPath;
  59. $drawing = $DB->SingleQuery('SELECT name, school_name, published, DATE_FORMAT(assurances.created_date,"%m-%d-%Y") as "created_date"
  60. FROM vpost_views v
  61. JOIN assurances on v.id=assurances.vpost_view_id
  62. JOIN schools s on v.school_id = s.id
  63. WHERE v.id = ' . request('view_id'));
  64. $filename = 'post-view-assurance-' . request('view_id') . '-' . $drawing['created_date'] . '.pdf';
  65. $name = $drawing['school_name'] . '-' . $drawing['name'] . '('.$drawing['created_date'].')';
  66. break;
  67. default:
  68. die('error');
  69. }
  70. $fullPath = $SITE->cache_path("pdf").$filename;
  71. if(!file_exists($fullPath) || filemtime($fullPath))
  72. {
  73. logmsg( "Calling shell_exec.\n" );
  74. //Closing the session to make it available via remote command below.
  75. $session_id = session_id();
  76. session_write_close();
  77. $command = $SITE->wkhtmltopdf_bin() .' "'. $url . '&session_id='.$session_id.'&isPDF" ' . $fullPath;
  78. logmsg ("Shell_exec command: " . $command);
  79. $retval = shell_exec($command);
  80. //$retval = shell_exec('wkhtmltopdf-amd64 "' . $url . '" ' . $fullPath);
  81. logmsg( "Shell_exec retval: $retval\n" );
  82. }
  83. else
  84. {
  85. logmsg( "Using cached version.\n" );
  86. }
  87. $name = str_replace('&', ' and ', $name);
  88. $name = preg_replace('/[ ]+/', ' ', $name);
  89. $name = preg_replace('/[^A-Za-z0-9 -]/', '', $name) . '.pdf';
  90. header('Content-type: application/pdf');
  91. header('Content-disposition: attachment; filename="' . addslashes($name) . '"');
  92. header('Cache-control: no-cache');
  93. header("X-Download-Options: noopen"); // For IE8
  94. header("X-Content-Type-Options: nosniff"); // For IE8
  95. /*
  96. if( function_exists('header_remove') ) {
  97. header_remove('Pragma');
  98. } else {
  99. header('Pragma:');
  100. }
  101. */
  102. // added "Pragma: public" to fix downloads in IE 8 -aaronpk 12/6
  103. header('Pragma: public');
  104. readfile($fullPath);