BxBaseMenuSocialSharing.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. );
  18. public function __construct ($aObject, $oTemplate)
  19. {
  20. parent::__construct ($aObject, $oTemplate);
  21. $sLang = BxDolLanguages::getInstance()->getCurrentLanguage();
  22. $this->addMarkers(array (
  23. 'lang' => $sLang,
  24. ));
  25. }
  26. public function addMarkers($a)
  27. {
  28. if(!empty($this->_aNeedEncode) && is_array($this->_aNeedEncode))
  29. foreach($this->_aNeedEncode as $sKey1 => $sKey2)
  30. if(array_key_exists($sKey1, $a))
  31. $a[$sKey2] = rawurlencode($a[$sKey1]);
  32. return parent::addMarkers($a);
  33. }
  34. public function getCode()
  35. {
  36. if (!isset($this->_aObject['menu_items']))
  37. $this->_aObject['menu_items'] = $this->getMenuItemsRaw();
  38. // alert
  39. $sOverrideOutput = null;
  40. $oAlert = new BxDolAlerts('system', 'social_sharing_display', '', '', array (
  41. 'markers' => &$this->_aMarkers,
  42. 'buttons' => &$this->_aObject['menu_items'],
  43. 'override_output' => &$sOverrideOutput,
  44. ));
  45. $oAlert->alert();
  46. // return custom code if there is one
  47. if ($sOverrideOutput)
  48. return $sOverrideOutput;
  49. //return empty string of there is no buttons
  50. if (empty($this->_aObject['menu_items']))
  51. return '';
  52. return parent::getCode();
  53. }
  54. }
  55. /** @} */