BxQuoteOfDayGridInternal.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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 QuoteOfTheDay Quote of the Day
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxQuoteOfDayGridInternal extends BxTemplGrid
  12. {
  13. protected $_sModule;
  14. protected $_oModule;
  15. public function __construct ($aOptions, $oTemplate = false)
  16. {
  17. $this->_sModule = 'bx_quoteofday';
  18. $this->_oModule = BxDolModule::getInstance($this->_sModule);
  19. parent::__construct ($aOptions, $oTemplate);
  20. }
  21. protected function _getCellText($mixedValue, $sKey, $aField, $aRow)
  22. {
  23. $mixedValue = $this->_limitMaxLength(strip_tags(htmlspecialchars_decode($aRow['text'])), $sKey, $aField, $aRow, $this->_isDisplayPopupOnTextOverflow);
  24. return parent::_getCellDefault ($mixedValue, $sKey, $aField, $aRow);
  25. }
  26. public function performActionAdd()
  27. {
  28. $sAction = 'add';
  29. $sDisplay = 'bx_quoteofday_entry_add';
  30. $oForm = BxDolForm::getObjectInstance('bx_quoteofday', $sDisplay);
  31. if(!$oForm)
  32. return echoJson([]);
  33. $oForm->setId($sDisplay);
  34. $oForm->setAction(BX_DOL_URL_ROOT . 'grid.php?o=' . $this->_sObject . '&a=' . $sAction);
  35. $oForm->initChecker();
  36. if($oForm->isSubmittedAndValid()) {
  37. $mixedResult = $oForm->insert(array('added' => time()));
  38. if(is_numeric($mixedResult))
  39. $aRes = array('grid' => $this->getCode(false), 'blink' => $mixedResult);
  40. else
  41. $aRes = array('msg' => $mixedResult);
  42. echoJson($aRes);
  43. }
  44. else {
  45. $sContent = BxTemplFunctions::getInstance()->popupBox('bx_quoteofday_form_add', _t('_bx_quoteofday_form_add_title'), $this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
  46. 'form_id' => $oForm->id,
  47. 'form' => $oForm->getCode(true),
  48. 'object' => $this->_sObject,
  49. 'action' => $sAction
  50. )));
  51. echoJson(array('popup' => array('html' => $sContent, 'options' => array('closeOnOuterClick' => true))));
  52. }
  53. }
  54. public function performActionEdit()
  55. {
  56. $iId = $this->_getId();
  57. $sAction = 'edit';
  58. $sDisplay = 'bx_quoteofday_entry_edit';
  59. $oForm = BxDolForm::getObjectInstance('bx_quoteofday', $sDisplay); // get form instance for specified form object and display
  60. if(!$oForm)
  61. return echoJson([]);
  62. $oForm->setId($sDisplay);
  63. $oForm->setAction(BX_DOL_URL_ROOT . 'grid.php?o=' . $this->_sObject . '&a=' . $sAction . '&id=' . $iId);
  64. $aContentInfo = $this->_oModule->_oDb->getContentInfoById($iId);
  65. $oForm->initChecker($aContentInfo);
  66. if($oForm->isSubmittedAndValid()) {
  67. $mixedResult = $oForm->update($iId);
  68. if(is_numeric($mixedResult))
  69. $aRes = array('grid' => $this->getCode(false), 'blink' => $mixedResult);
  70. else
  71. $aRes = array('msg' => $mixedResult);
  72. echoJson($aRes);
  73. }
  74. else {
  75. $sContent = BxTemplFunctions::getInstance()->popupBox('bx_quoteofday_form_edit', _t('_bx_quoteofday_form_edit_title'), $this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
  76. 'form_id' => $oForm->id,
  77. 'form' => $oForm->getCode(true),
  78. 'object' => $this->_sObject,
  79. 'action' => $sAction
  80. )));
  81. echoJson(array('popup' => array('html' => $sContent, 'options' => array('closeOnOuterClick' => false))));
  82. }
  83. }
  84. public function performActionPublish()
  85. {
  86. $iId = $this->_getId();
  87. $aContentInfo = $this->_oModule->_oDb->getContentInfoById($iId);
  88. $this->_oModule->removeQuoteFromCache();
  89. $this->_oModule->putQuoteToCache($aContentInfo["text"]);
  90. echoJson(['msg' => _t('_bx_quoteofday_grid_action_title_adm_publish_text')]);
  91. }
  92. protected function _getId()
  93. {
  94. if(($aIds = bx_get('ids')) && is_array($aIds))
  95. return array_shift($aIds);
  96. else
  97. return ($iId = bx_get('id')) !== false ? (int)$iId : false;
  98. }
  99. }
  100. /** @} */