BxBaseVoteReactionsMenuDo.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. * Menu representation.
  11. * @see BxDolMenu
  12. */
  13. class BxBaseVoteReactionsMenuDo extends BxTemplMenu
  14. {
  15. protected $_iValue;
  16. protected $_oObject;
  17. public function __construct($aObject, $oTemplate)
  18. {
  19. parent::__construct ($aObject, $oTemplate);
  20. }
  21. public function setParams($aParams)
  22. {
  23. if(empty($aParams['object']) || !is_a($aParams['object'], 'BxTemplVoteReactions'))
  24. return;
  25. $this->_oObject = $aParams['object'];
  26. $this->_iValue = isset($aParams['value']) ? (int)$aParams['value'] : $this->_oObject->getValue();
  27. }
  28. protected function getMenuItemsRaw()
  29. {
  30. $sJsObject = $this->_oObject->getJsObjectName();
  31. $aReactions = $this->_oObject->getReactions(true);
  32. $sDefault = $this->_oObject->getDefault();
  33. $aMenuItems = array();
  34. foreach($aReactions as $sName => $aReaction) {
  35. if($sName == $sDefault)
  36. continue;
  37. $sIcon = '';
  38. switch($aReaction['use']) {
  39. case 'icon':
  40. $sIcon = $this->_oObject->getIcon($sName);
  41. break;
  42. case 'emoji':
  43. $sIcon = $this->_oObject->getEmoji($sName);
  44. break;
  45. case 'image':
  46. $sIcon = $this->_oObject->getImage($sName);
  47. break;
  48. }
  49. $aMenuItems[] = array(
  50. 'id' => $sName,
  51. 'name' => $sName,
  52. 'class' => '',
  53. 'link' => 'javascript:void(0)',
  54. 'onclick' => 'javascript:' . $this->_oObject->getJsClickDo($sName, $this->_iValue),
  55. 'target' => '_self',
  56. 'title' => _t($aReaction['title']),
  57. 'icon' => $sIcon,
  58. 'active' => 1,
  59. 'active_api' => 1
  60. );
  61. }
  62. return $aMenuItems;
  63. }
  64. protected function _getMenuItem ($a)
  65. {
  66. $aResult = parent::_getMenuItem($a);
  67. if(empty($aResult) || !is_array($aResult))
  68. return $aResult;
  69. $aResult['title'] = '';
  70. $aResult['bx_if:title']['condition'] = false;
  71. return $aResult;
  72. }
  73. protected function _getMenuAttrs ($a)
  74. {
  75. $sResult = parent::_getMenuAttrs($a);
  76. $sResult .= 'title = "' . bx_html_attribute(_t($a['title'])) . '"';
  77. return $sResult;
  78. }
  79. }
  80. /** @} */