/server/lib/classes/tpl_error.inc.php

https://github.com/vStone/ispconfig3-old · PHP · 92 lines · 61 code · 9 blank · 22 comment · 6 complexity · dab93c984d67c19361a06c54e6c1bffe MD5 · raw file

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4: */
  3. // +----------------------------------------------------------------------+
  4. // | PHP version 4.0 |
  5. // +----------------------------------------------------------------------+
  6. // | Copyright (c) 2002 Active Fish Group |
  7. // +----------------------------------------------------------------------+
  8. // | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> |
  9. // +----------------------------------------------------------------------+
  10. //
  11. // $Id: error.php,v 1.1 2003/07/08 12:32:06 platinum Exp $
  12. define('FATAL', E_USER_ERROR);
  13. define('WARNING', E_USER_WARNING);
  14. define('NOTICE', E_USER_NOTICE);
  15. define('KILL', -1); // used for killing inside parsing.
  16. /**
  17. * Class is used by vlibTemplate.
  18. * It handles all of the error reporting for vlibTemplate.
  19. *
  20. * @author Kelvin Jones <kelvin@kelvinjones.co.uk>
  21. * @since 06/03/2002
  22. * @package vLIB
  23. * @access private
  24. */
  25. class vlibTemplateError {
  26. /*-----------------------------------------------------------------------------\
  27. | DO NOT TOUCH ANYTHING IN THIS CLASS IT MAY NOT WORK OTHERWISE |
  28. \-----------------------------------------------------------------------------*/
  29. function raiseError ($code, $level = null, $extra=null) {
  30. if (!($level & error_reporting())&& $level != KILL) return; // binary AND checks for reporting level
  31. $error_codes = array(
  32. 'VT_ERROR_NOFILE' => 'vlibTemplate Error: Template ('.$extra.') file not found.',
  33. 'VT_ERROR_PARSE' => 'vlibTemplate Error: Parse error!<br>To debug this file, use vlibTemplateDebug instead of vlibTemplate in the class instantiation(i.e. new vlibTemplateDebug).',
  34. 'VT_NOTICE_INVALID_TAG' => 'vlibTemplate Notice: Invalid tag ('.$extra.').',
  35. 'VT_ERROR_INVALID_TAG' => 'vlibTemplate Error: Invalid tag ('.$extra.'). To disable this you must turn of the STRICT option.',
  36. 'VT_NOTICE_INVALID_ATT' => 'vlibTemplate Notice: Invalid attribute ('.$extra.').',
  37. 'VT_WARNING_INVALID_ARR' => 'vlibTemplate Warning: Invalid loop structure passed to vlibTemplate::setLoop() (loop name: '.$extra.').',
  38. 'VT_ERROR_INVALID_ERROR_CODE' => 'vlibTemplate Error: Invalid error raised.',
  39. 'VT_ERROR_WRONG_NO_PARAMS' => 'vlibTemplate Warning: Wrond parameter count passed to '.$extra.'.',
  40. 'VT_ERROR_UNKNOWN_VAR' => 'vlibTemplate Error: template var not found.',
  41. 'VT_ERROR_NO_CACHE_WRITE' => 'vlibTemplate Error: unable to write to cache file ('.$extra.').',
  42. 'VT_ERROR_WRONG_CACHE_TYPE' => 'vlibTemplate Error: non-directory file found in cache root with same name as directory ('.$extra.').',
  43. 'VT_ERROR_CACHE_MKDIR_FAILURE' => 'vlibTemplate Error: failed to create directory in cache root ('.$extra.').',
  44. 'VT_WARNING_NOT_CACHE_OBJ' => 'vlibTemplate Warning: called a vlibTemplateCache function ('.$extra.') without instantiating the vlibTemplateCache class.',
  45. 'VT_WARNING_LOOP_NOT_SET' => 'vlibTemplate Warning: called vlibTemplate::addRow() or vlibTemplate::addLoop() with an invalid loop name.',
  46. 'VT_WARNING_INVALID_RESOURCE' => 'vlibTemplate Warning: Invalid resource type passed to vlibTemplate::setDbLoop() for Db "'.$extra.'".',
  47. 'VT_WARNING_INVALID_LOOP_DB' => 'vlibTemplate Warning: Invalid Db type passed to vlibTemplate::setDbLoop(), "'.$extra.'" not currently available.',
  48. 'VT_WARNING_INVALID_IF_OP' => 'vlibTemplate Warning: The Operator "'.$extra.'" is not supported by vlibTemplate.'
  49. );
  50. $error_levels = array(
  51. 'VT_ERROR_NOFILE' => FATAL,
  52. 'VT_ERROR_PARSE' => FATAL,
  53. 'VT_NOTICE_INVALID_TAG' => NOTICE,
  54. 'VT_ERROR_INVALID_TAG' => FATAL,
  55. 'VT_NOTICE_INVALID_ATT' => NOTICE,
  56. 'VT_WARNING_INVALID_ARR' => WARNING,
  57. 'VT_ERROR_INVALID_ERROR_CODE' => FATAL,
  58. 'VT_ERROR_WRONG_NO_PARAMS' => WARNING,
  59. 'VT_ERROR_UNKNOWN_VAR' => WARNING,
  60. 'VT_ERROR_NO_CACHE_WRITE' => KILL,
  61. 'VT_ERROR_WRONG_CACHE_TYPE' => KILL,
  62. 'VT_ERROR_CACHE_MKDIR_FAILURE' => KILL,
  63. 'VT_WARNING_NOT_CACHE_OBJ' => WARNING,
  64. 'VT_WARNING_LOOP_NOT_SET' => WARNING,
  65. 'VT_WARNING_INVALID_RESOURCE' => WARNING,
  66. 'VT_WARNING_INVALID_LOOP_DB' => WARNING,
  67. 'VT_WARNING_INVALID_IF_OP' => WARNING
  68. );
  69. ($level === null) and $level = $error_levels[$code];
  70. if ($level == KILL) {
  71. die ($error_codes[$code]);
  72. }
  73. if ($msg = $error_codes[$code]) {
  74. trigger_error($msg, $level);
  75. } else {
  76. $level = $error_levels['VT_ERROR_INVALID_ERROR_CODE'];
  77. $msg = $error_codes['VT_ERROR_INVALID_ERROR_CODE'];
  78. trigger_error($msg, $level);
  79. }
  80. return;
  81. }
  82. }
  83. ?>