NEXT craftinamerica.org. Base setup for headless wordpress https://www.craftinamerica.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

php-console-log.js 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. var phpConsoleLogIndentNum = 3,
  2. phpConsoleLogSeparator = '\n\n',
  3. phpConsoleLogHeader = '\n<<<<<<<<<<< PHP Console Log <<<<<<<<<<<\n\n',
  4. phpConsoleLogBody = '',
  5. phpConsoleLogFooter = '>>>>>>>>>>> PHP Console Log >>>>>>>>>>>\n\n';
  6. /**
  7. * @func phpConsoleLogIndent(()
  8. *
  9. * Add indentation to single line in global phpConsoleLogBody.
  10. *
  11. * @since 1.0.0
  12. *
  13. * @param number indent The number of spaces to intent current line.
  14. * @return string String of spaces.
  15. */
  16. function phpConsoleLogIndent(indent) {
  17. var curIndent = '';
  18. for (var i = 0; i <= indent; i++) {
  19. curIndent += ' ';
  20. }
  21. return curIndent;
  22. }
  23. /**
  24. * @func phpConsoleLogRecursiveParseObject()
  25. *
  26. * Recursively parse objects passed in. Adds string to global phpConsoleLogBody.
  27. *
  28. * @since 1.0.0
  29. *
  30. * @param object argVal The object to parse.
  31. * @param number indent The number of spaces to intent current line.
  32. */
  33. function phpConsoleLogRecursiveParseObject(argVal, indent) {
  34. jQuery.each(argVal, function (objKey, objValue) {
  35. if (typeof objValue == 'object') {
  36. // add key for this object to global phpConsoleLogBody
  37. phpConsoleLogBody += phpConsoleLogIndent(indent) + objKey + ':\n';
  38. // parse the object
  39. phpConsoleLogRecursiveParseObject(objValue, indent + 3);
  40. } else {
  41. // add value of object as string to global phpConsoleLogBody
  42. phpConsoleLogBody += phpConsoleLogIndent(indent) + objKey + ': ' + objValue + '\n';
  43. }
  44. // add 1 extra line break after each top level arg passed in
  45. if (indent == phpConsoleLogIndentNum * 3) {
  46. phpConsoleLogBody += '\n';
  47. }
  48. });
  49. }
  50. /**
  51. * @info Run code only after document is ready. Make $ = jQuery inside this
  52. * function.
  53. * @since 1.0.0
  54. */
  55. jQuery(document).ready(function ($) {
  56. var phpConsoleLogNum = 0;
  57. /**
  58. * @info Recursively loop through every php_console_log_array passed from
  59. * php_console_log() function in php-console-log.php
  60. * @since 1.0.0
  61. */
  62. $.each(phpConsoleLogI18n.phpConsoleLogArray, function (key, phpConsoleLogArray) {
  63. // separate and number instances of do_action( 'php_console_log' )
  64. phpConsoleLogBody += phpConsoleLogIndent(phpConsoleLogIndentNum) + '----------- ' + phpConsoleLogNum + ' -----------\n\n'
  65. // path to file do_action( 'php_console_log' ) was used in
  66. phpConsoleLogBody += phpConsoleLogIndent(phpConsoleLogIndentNum) + phpConsoleLogI18n.File + ': ' + phpConsoleLogArray.file + '\n';
  67. // line number do_action( 'php_console_log' ) was used on
  68. phpConsoleLogBody += phpConsoleLogIndent(phpConsoleLogIndentNum) + phpConsoleLogI18n.Line + ': ' + phpConsoleLogArray.line + '\n';
  69. /**
  70. * @info Loop through every top level arg passed in
  71. * @since 1.0.0
  72. */
  73. $.each(phpConsoleLogArray.args, function (argKey, argVal) {
  74. if (typeof argVal === 'object') {
  75. /**
  76. * @info If an array is passed in.
  77. * @since 1.0.0
  78. */
  79. phpConsoleLogBody += phpConsoleLogIndent(phpConsoleLogIndentNum) + phpConsoleLogI18n.Args + ': ' + '\n\n';
  80. phpConsoleLogRecursiveParseObject(argVal, phpConsoleLogIndentNum * 3);
  81. } else {
  82. /**
  83. * @info If a non-array (string, boolean, null...) is passed in.
  84. * @since 1.0.0
  85. */
  86. phpConsoleLogBody += phpConsoleLogIndent(phpConsoleLogIndentNum) + phpConsoleLogI18n.Args + ': ' + ' ' + argVal + '\n\n';
  87. }
  88. });
  89. phpConsoleLogNum++;
  90. });
  91. /**
  92. * @info Log to web console only if args are passed in.
  93. * @since 1.0.0
  94. */
  95. if (phpConsoleLogNum > 0) {
  96. // build string to log
  97. var phpConsoleLogOutput = phpConsoleLogHeader + phpConsoleLogBody + phpConsoleLogFooter;
  98. } else {
  99. // build string to log
  100. phpConsoleLogBody = phpConsoleLogI18n.clDefaultOutput;
  101. var phpConsoleLogOutput = phpConsoleLogHeader + phpConsoleLogBody + phpConsoleLogFooter;
  102. }
  103. // log to web console
  104. console.log(phpConsoleLogOutput);
  105. });