/library/freeb/DataObjectBase.class.php

https://github.com/md-tech/openemr · PHP · 97 lines · 79 code · 17 blank · 1 comment · 16 complexity · dd16c3d9f2561e649a5356afa7f99ea0 MD5 · raw file

  1. <?php
  2. require (dirname(__FILE__) . "/../sql.inc");
  3. class DataObjectBase {
  4. var $xmlrpcerruser;
  5. var $_func_map;
  6. function DataObjectBase($xuser) {
  7. $this->xmlrpcerruser = $xuser;
  8. $this->_func_map=array();
  9. }
  10. function _handleError($err) {
  11. if ($err) {
  12. return new xmlrpcresp(0, $this->xmlrpcerruser, $err);
  13. }
  14. }
  15. function _addFunc($func,$mapping) {
  16. if (isset($this->_func_map[$func])) {
  17. $trace = debug_backtrace();
  18. trigger_error("Function <b>$func</b> already exists in function map in <b>" . $trace[0]['file'] . "</b> on line <b>" . $trace[0]['line'] . "</b>", E_USER_WARNING);
  19. }
  20. elseif (is_callable(array($this,$func))) {
  21. $this->_func_map[$func] = $mapping;
  22. return 0;
  23. }
  24. else {
  25. $trace = debug_backtrace();
  26. trigger_error("Cannot add a function <b>$func</b> to function map which is not callable in <b>" . $trace[0]['file'] . "</b> on line <b>" . $trace[0]['line'] . "</b>", E_USER_ERROR);
  27. }
  28. }
  29. function _isodate ($date) {
  30. $format_iso = 'Ymd\TH:i:sO';
  31. $format_iso_utc = 'Ymd\TH:i:s';
  32. $dt = split("-",$date);
  33. $dt_stamp = $this->_ctime(0,0,0,$dt[1],$dt[2],$dt[0]);
  34. return gmdate($format_iso_utc, $dt_stamp);
  35. }
  36. function _ctime() {
  37. $objArgs = func_get_args();
  38. $nCount = count($objArgs);
  39. if ($nCount < 7)
  40. {
  41. $objDate = getdate();
  42. if ($nCount < 1)
  43. $objArgs[] = $objDate["hours"];
  44. if ($nCount < 2)
  45. $objArgs[] = $objDate["minutes"];
  46. if ($nCount < 3)
  47. $objArgs[] = $objDate["seconds"];
  48. if ($nCount < 4)
  49. $objArgs[] = $objDate["mon"];
  50. if ($nCount < 5)
  51. $objArgs[] = $objDate["mday"];
  52. if ($nCount < 6)
  53. $objArgs[] = $objDate["year"];
  54. if ($nCount < 7)
  55. $objArgs[] = -1;
  56. }
  57. $nYear = $objArgs[5];
  58. $nOffset = 0;
  59. if ($nYear < 1970)
  60. {
  61. if ($nYear < 1902)
  62. return 0;
  63. else if ($nYear < 1952)
  64. {
  65. $nOffset = -2650838400;
  66. $objArgs[5] += 84;
  67. // Apparently dates before 1942 were never DST
  68. if ($nYear < 1942)
  69. $objArgs[6] = 0;
  70. }
  71. else
  72. {
  73. $nOffset = -883612800;
  74. $objArgs[5] += 28;
  75. }
  76. }
  77. return call_user_func_array("mktime", $objArgs) + $nOffset;
  78. }
  79. }
  80. ?>