export.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. require_once('../application/application.inc.php');
  3. require_once('../application/nicewebpage.class.inc.php');
  4. require_once('../application/csvpage.class.inc.php');
  5. require_once('../application/xmlpage.class.inc.php');
  6. require_once('../application/startup.inc.php');
  7. require_once('../application/loginwebpage.class.inc.php');
  8. login_web_page::DoLogin(); // Check user rights and prompt if needed
  9. $sOperation = utils::ReadParam('operation', 'menu');
  10. $oContext = new UserContext();
  11. $oAppContext = new ApplicationContext();
  12. $iActiveNodeId = utils::ReadParam('menu', -1);
  13. $currentOrganization = utils::ReadParam('org_id', '');
  14. // Main program
  15. $sExpression = utils::ReadParam('expression', '');
  16. $sFormat = strtolower(utils::ReadParam('format', 'html'));
  17. $oP = null;
  18. if (!empty($sExpression))
  19. {
  20. try
  21. {
  22. $oFilter = DBObjectSearch::FromOQL($sExpression);
  23. if ($oFilter)
  24. {
  25. $oSet = new CMDBObjectSet($oFilter);
  26. switch($sFormat)
  27. {
  28. case 'html':
  29. $oP = new nice_web_page("iTop - Export");
  30. cmdbAbstractObject::DisplaySet($oP, $oSet, array('menu' => false));
  31. break;
  32. case 'csv':
  33. $oP = new CSVPage("iTop - Export");
  34. cmdbAbstractObject::DisplaySetAsCSV($oP, $oSet);
  35. break;
  36. case 'xml':
  37. $oP = new XMLPage("iTop - Export");
  38. cmdbAbstractObject::DisplaySetAsXML($oP, $oSet);
  39. break;
  40. default:
  41. $oP = new web_page("iTop - Export");
  42. $oP->add("Unsupported format '$sFormat'. Possible values are: html, csv or xml.");
  43. }
  44. }
  45. }
  46. catch(Exception $e)
  47. {
  48. $oP = new web_page("iTop - Export");
  49. $oP->p("Error the query can not be executed.");
  50. $oP->p($e->GetHtmlDesc());
  51. }
  52. }
  53. if (!$oP)
  54. {
  55. // Display a short message about how to use this page
  56. $oP = new web_page("iTop - Export");
  57. $oP->p("<strong>General purpose export page.</strong>");
  58. $oP->p("<strong>Parameters:</strong>");
  59. $oP->p("<ul><li>expression: an OQL expression (URL encoded if needed)</li>
  60. <li>format: (optional, default is html) the desired output format. Can be one of 'html', 'csv' or 'xml'</li>
  61. </ul>");
  62. }
  63. $oP->output();
  64. ?>