Plugin.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /**
  3. * ZFDebug Zend Additions
  4. *
  5. * @category ZFDebug
  6. * @package ZFDebug_Controller
  7. * @subpackage Plugins
  8. * @copyright Copyright (c) 2008-2009 ZF Debug Bar Team (http://code.google.com/p/zfdebug)
  9. * @license http://code.google.com/p/zfdebug/wiki/License New BSD License
  10. * @version $Id: $
  11. */
  12. /**
  13. * @category ZFDebug
  14. * @package ZFDebug_Controller
  15. * @subpackage Plugins
  16. * @copyright Copyright (c) 2008-2009 ZF Debug Bar Team (http://code.google.com/p/zfdebug)
  17. * @license http://code.google.com/p/zfdebug/wiki/License New BSD License
  18. */
  19. class ZFDebug_Controller_Plugin_Debug_Plugin
  20. {
  21. protected $_closingBracket = null;
  22. public function getLinebreak()
  23. {
  24. return '<br'.$this->getClosingBracket();
  25. }
  26. public function getIconData()
  27. {
  28. return 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHhSURBVDjLpZI9SJVxFMZ/r2YFflw/kcQsiJt5b1ije0tDtbQ3GtFQYwVNFbQ1ujRFa1MUJKQ4VhYqd7K4gopK3UIly+57nnMaXjHjqotnOfDnnOd/nt85SURwkDi02+ODqbsldxUlD0mvHw09ubSXQF1t8512nGJ/Uz/5lnxi0tB+E9QI3D//+EfVqhtppGxUNzCzmf0Ekojg4fS9cBeSoyzHQNuZxNyYXp5ZM5Mk1ZkZT688b6thIBenG/N4OB5B4InciYBCVyGnEBHO+/LH3SFKQuF4OEs/51ndXMXC8Ajqknrcg1O5PGa2h4CJUqVES0OO7sYevv2qoFBmJ/4gF4boaOrg6rPLYWaYiVfDo0my8w5uj12PQleB0vcp5I6HsHAUoqUhR29zH+5B4IxNTvDmxljy3x2YCYUwZVlbzXJh9UKeQY6t2m0Lt94Oh5loPdqK3EkjzZi4MM/Y9Db3MTv/mYWVxaqkw9IOATNR7B5ABHPrZQrtg9sb8XDKa1+QOwsri4zeHD9SAzE1wxBTXz9xtvMc5ZU5lirLSKIz18nJnhOZjb22YKkhd4odg5icpcoyL669TAAujlyIvmPHSWXY1ti1AmZ8mJ3ElP1ips1/YM3H300g+W+51nc95YPEX8fEbdA2ReVYAAAAAElFTkSuQmCC';
  29. }
  30. public function getClosingBracket()
  31. {
  32. if (!$this->_closingBracket) {
  33. if ($this->_isXhtml()) {
  34. $this->_closingBracket = ' />';
  35. } else {
  36. $this->_closingBracket = '>';
  37. }
  38. }
  39. return $this->_closingBracket;
  40. }
  41. protected function _isXhtml()
  42. {
  43. $view = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view;
  44. $doctype = $view->doctype();
  45. return $doctype->isXhtml();
  46. }
  47. /**
  48. * Transforms data into readable format
  49. *
  50. * @param array $values
  51. * @return string
  52. */
  53. protected function _cleanData($values)
  54. {
  55. $linebreak = $this->getLinebreak();
  56. if (is_array($values)) {
  57. ksort($values);
  58. }
  59. $retVal = '<div class="pre">';
  60. foreach ($values as $key => $value)
  61. {
  62. $key = htmlspecialchars($key);
  63. if (is_numeric($value)) {
  64. $retVal .= $key.' => '.$value.$linebreak;
  65. }
  66. else if (is_string($value)) {
  67. $retVal .= $key.' => \''.htmlspecialchars($value).'\''.$linebreak;
  68. }
  69. else if (is_array($value))
  70. {
  71. $retVal .= $key.' => '.self::_cleanData($value);
  72. }
  73. else if (is_object($value))
  74. {
  75. $retVal .= $key.' => '.get_class($value).' Object()'.$linebreak;
  76. }
  77. else if (is_null($value))
  78. {
  79. $retVal .= $key.' => NULL'.$linebreak;
  80. }
  81. }
  82. return $retVal.'</div>';
  83. }
  84. }