config.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. error_reporting(0);
  3. ob_start();
  4. // START ERROR HANDLING
  5. function shutdown_handler(){
  6. $error = error_get_last();
  7. if ($error['type'] == 1) {
  8. ob_end_clean();
  9. switch($error['type']){
  10. case E_USER_ERROR:$errnostr='Fatal Error';break;
  11. case E_USER_WARNING:$errnostr='Warning';break;
  12. case E_USER_NOTICE:$errnostr='Notice';break;
  13. case E_ERROR:$errnostr='Error';break;
  14. case E_PARSE:$errnostr='Parse Error';break;
  15. case E_CORE_ERROR:$errnostr='Core Error';break;
  16. case E_CORE_WARNING:$errnostr='Core Warning';break;
  17. case E_COMPILE_ERROR:$errnostr='Compile Error';break;
  18. case E_COMPILE_WARNING:$errnostr='Compile Warning';break;
  19. //case E_:$errnostr='';break;
  20. default:$errnostr='Unkown Error';
  21. }
  22. echo json_encode(Array(
  23. 'error'=>"\n{$errnostr}: {$error['message']} on {$error['file']}[{$error['line']}]"
  24. ));
  25. }else{
  26. obj_end_flush();
  27. }
  28. echo $error['type'].PHP_EOL;
  29. }
  30. register_shutdown_function('shutdown_handler');
  31. // END ERROR HANDLING
  32. @session_start();
  33. define('PATH_ROOT',realpath(dirname(__FILE__)).'/../');
  34. define('PATH_CONFIG',PATH_ROOT.'config.json');
  35. define('PATH_DEFAULT_CONFIG',PATH_ROOT.'config.default.json');
  36. define('PATH_PHP',PATH_ROOT.'php/');
  37. define('PATH_JS',PATH_ROOT.'js/');
  38. define('PATH_CSS',PATH_ROOT.'css/');
  39. define('PATH_DATA',PATH_ROOT.'data/');
  40. global $config;
  41. if(file_exists(PATH_CONFIG)){
  42. $config = objectToArray(json_decode(file_get_contents(PATH_CONFIG),true));
  43. }else{
  44. $config = Array();
  45. }
  46. $config = array_merge($config,objectToArray(json_decode(file_get_contents(PATH_DEFAULT_CONFIG),true)));
  47. function get($setting){
  48. global $config;
  49. if(isset($config[$setting])){
  50. return $config[$setting];
  51. }else{
  52. return false;
  53. }
  54. }
  55. function set($setting,$value){
  56. global $config;
  57. $config[$setting] = $value;
  58. file_put_contents(PAT_CONFIG,json_encode($config));
  59. return $value;
  60. }
  61. function objectToArray($d){
  62. if(is_object($d)){
  63. // Gets the properties of the given object
  64. // with get_object_vars function
  65. $d = get_object_vars($d);
  66. }
  67. if(is_array($d)){
  68. /*
  69. * Return array converted to object
  70. * Using __FUNCTION__ (Magic constant)
  71. * for recursive call
  72. */
  73. return array_map(__FUNCTION__, $d);
  74. }else{
  75. // Return array
  76. return $d;
  77. }
  78. }
  79. function arrayToObject($d){
  80. if(is_array($d)){
  81. /*
  82. * Return array converted to object
  83. * Using __FUNCTION__ (Magic constant)
  84. * for recursive call
  85. */
  86. return (object)array_map(__FUNCTION__, $d);
  87. }else{
  88. // Return object
  89. return $d;
  90. }
  91. }
  92. ?>