BxFroalaModule.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 Froala Froala editor integration
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxFroalaModule extends BxDolModule
  12. {
  13. function __construct(&$aModule)
  14. {
  15. parent::__construct($aModule);
  16. }
  17. public function serviceInjection()
  18. {
  19. $s = "
  20. <script>
  21. var fFroalaAddClass = function (s) {
  22. $('.bx-content-description,.cmt-body,.bx-base-text-entity-content,.bx-tl-content').addClass('fr-view');
  23. };
  24. if (typeof glOnProcessHtml === 'undefined')
  25. glOnProcessHtml = [];
  26. if (glOnProcessHtml instanceof Array)
  27. glOnProcessHtml.push(fFroalaAddClass);
  28. fFroalaAddClass();
  29. </script>";
  30. $oEmbed = BxDolEmbed::getObjectInstance('sys_embedly');
  31. return $oEmbed ? $oEmbed->addJsCss() . $s : $s;
  32. }
  33. public function actionUpload()
  34. {
  35. header('Content-Type: application/json; charset=utf-8');
  36. if (!($oStorage = BxDolStorage::getObjectInstance('bx_froala_files'))) {
  37. echo json_encode(array('error' => '1'));
  38. exit;
  39. }
  40. $iProfileId = bx_get_logged_profile_id();
  41. if (!($iId = $oStorage->storeFileFromForm($_FILES['file'], false, $iProfileId))) {
  42. echo json_encode(array('error' => '1'));
  43. exit;
  44. }
  45. $oStorage->afterUploadCleanup($iId, $iProfileId);
  46. $aFileInfo = $oStorage->getFile($iId);
  47. if ($aFileInfo && in_array($aFileInfo['ext'], array('jpg', 'jpeg', 'jpe', 'png'))) {
  48. $oTranscoder = BxDolTranscoderImage::getObjectInstance('bx_froala_image');
  49. $sUrl = $oTranscoder->getFileUrl($iId);
  50. }
  51. else {
  52. $sUrl = $oStorage->getFileUrlById($iId);
  53. }
  54. echo json_encode(array('link' => $sUrl));
  55. }
  56. }
  57. /** @} */