1
0

BxBaseMenuSocialSharing.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 for content social sharing
  11. */
  12. class BxBaseMenuSocialSharing extends BxTemplMenu
  13. {
  14. protected $_aNeedEncode = array(
  15. 'url' => 'url_encoded',
  16. 'title' => 'title_encoded',
  17. 'img_url' => 'img_url_encoded'
  18. );
  19. public function __construct ($aObject, $oTemplate)
  20. {
  21. parent::__construct ($aObject, $oTemplate);
  22. $sLang = BxDolLanguages::getInstance()->getCurrentLanguage();
  23. $this->addMarkers(array (
  24. 'lang' => $sLang,
  25. ));
  26. }
  27. public function addMarkers($a)
  28. {
  29. if(!empty($this->_aNeedEncode) && is_array($this->_aNeedEncode))
  30. foreach($this->_aNeedEncode as $sKey1 => $sKey2)
  31. if(array_key_exists($sKey1, $a))
  32. $a[$sKey2] = rawurlencode($a[$sKey1]);
  33. return parent::addMarkers($a);
  34. }
  35. public function getCode()
  36. {
  37. if (!isset($this->_aObject['menu_items']))
  38. $this->_aObject['menu_items'] = $this->getMenuItemsRaw();
  39. // alert
  40. $sOverrideOutput = null;
  41. $oAlert = new BxDolAlerts('system', 'social_sharing_display', '', '', array (
  42. 'markers' => &$this->_aMarkers,
  43. 'buttons' => &$this->_aObject['menu_items'],
  44. 'markers_ref' => &$this->_aMarkers,
  45. 'buttons_ref' => &$this->_aObject['menu_items'],
  46. 'override_output' => &$sOverrideOutput,
  47. ));
  48. $oAlert->alert();
  49. // return custom code if there is one
  50. if ($sOverrideOutput)
  51. return $sOverrideOutput;
  52. //return empty string of there is no buttons
  53. if (empty($this->_aObject['menu_items']))
  54. return '';
  55. return parent::getCode();
  56. }
  57. }
  58. /** @} */