1
0

BxBaseFileHandlerCodeViewer.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaBaseView UNA Base Representation Classes
  7. * @{
  8. */
  9. /**
  10. * Code viewer preview files with programming code inside.
  11. * @see BxDolFileHandler
  12. */
  13. class BxBaseFileHandlerCodeViewer extends BxBaseFileHandler
  14. {
  15. protected static $_isCssJsAdded = false;
  16. public function __construct ($aObject, $oTemplate)
  17. {
  18. parent::__construct ($aObject, $oTemplate);
  19. }
  20. public function display ($sFileUrl, $aFile)
  21. {
  22. $this->addCssJs();
  23. return $this->_oTemplate->parseHtmlByName('file_handler_code.html', array(
  24. 'code' => htmlspecialchars(file_get_contents($sFileUrl)),
  25. 'mime_type' => $aFile['mime_type'],
  26. ));
  27. }
  28. protected function addCssJs ()
  29. {
  30. parent::addCssJs();
  31. if (!self::$_isCssJsAdded) {
  32. $this->_oTemplate->addJs(array('codemirror/codemirror-ext.min.js', ''));
  33. $this->_oTemplate->addCss(BX_DIRECTORY_PATH_PLUGINS_PUBLIC . 'codemirror/|codemirror.css');
  34. self::$_isCssJsAdded = true;
  35. }
  36. }
  37. }
  38. /** @} */