BxTimelinePageViewItem.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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 Timeline Timeline
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxTimelinePageViewItem extends BxTemplPage
  12. {
  13. protected $_sModule;
  14. protected $_oModule;
  15. protected $_iItemId;
  16. protected $_aItemData;
  17. public function __construct($aObject, $oTemplate = false)
  18. {
  19. $this->_sModule = 'bx_timeline';
  20. $this->_oModule = BxDolModule::getInstance($this->_sModule);
  21. parent::__construct($aObject, $this->_oModule->_oTemplate);
  22. $iItemId = bx_process_input(bx_get('id'), BX_DATA_INT);
  23. if(!$iItemId)
  24. return;
  25. $this->_iItemId = $iItemId;
  26. $this->_aItemData = $this->_oModule->getItemData($this->_iItemId);
  27. }
  28. protected function _isAvailablePage ($a)
  29. {
  30. if (!$this->_iItemId || $this->_aItemData['code'] == 1)
  31. return false;
  32. return parent::_isAvailablePage($a);
  33. }
  34. protected function _isVisiblePage ($a)
  35. {
  36. $CNF = &$this->_oModule->_oConfig->CNF;
  37. if(!$this->_iItemId || $this->_aItemData['code'] == 2)
  38. return false;
  39. $oCf = BxDolContentFilter::getInstance();
  40. if($oCf->isEnabled() && !$oCf->isAllowed($this->_aItemData['event'][$CNF['FIELD_CF']]))
  41. return false;
  42. return parent::_isVisiblePage($a);
  43. }
  44. public function getCode()
  45. {
  46. if(empty($this->_aItemData) || !is_array($this->_aItemData))
  47. $this->_oTemplate->displayPageNotFound();
  48. if($this->_aItemData['code'] != 0) {
  49. switch($this->_aItemData['code']) {
  50. case 1:
  51. $this->_oTemplate->displayPageNotFound();
  52. break;
  53. case 2:
  54. $this->_oTemplate->displayAccessDenied($this->_aItemData['content']);
  55. break;
  56. default:
  57. $this->_oTemplate->displayMsg($this->_aItemData['content']);
  58. }
  59. }
  60. $sPageUrl = 'page.php?i=' . $this->_aObject['uri'] . '&id=' . $this->_iItemId;
  61. if(!empty($this->_aItemData['event']['content']['url']))
  62. $sPageUrl = $this->_aItemData['event']['content']['url'];
  63. BxDolTemplate::getInstance()->setPageUrl($sPageUrl);
  64. return parent::getCode();
  65. }
  66. }
  67. /** @} */