BxAnalyticsStudioMenuItems.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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 Analytics Analytics
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. /**
  12. * Studio side menu items with Lucide glyphs on Studio's gray tiles, like Studio's own pages.
  13. * An item names its glyph in `lucide`; the rest is Studio's menu as is.
  14. */
  15. class BxAnalyticsStudioMenuItems extends BxTemplStudioMenu
  16. {
  17. protected $_oIconset;
  18. public function __construct($aObject, $oTemplate = false)
  19. {
  20. parent::__construct($aObject, $oTemplate);
  21. $this->_oIconset = BxDolIconset::getObjectInstance('sys_lucide');
  22. }
  23. protected function _getMenuItem($aItem)
  24. {
  25. $sLucide = isset($aItem['lucide']) ? $aItem['lucide'] : '';
  26. $aItem = parent::_getMenuItem($aItem);
  27. if($aItem === false || $sLucide === '' || !$this->_oIconset)
  28. return $aItem;
  29. $sSvg = $this->_oIconset->getIconHtml($sLucide, ['class' => 'bx-analytics-std-menu-icon', 'aria-hidden' => 'true']);
  30. if($sSvg === false)
  31. return $aItem;
  32. return array_merge($aItem, [
  33. 'bx_if:icon' => ['condition' => false, 'content' => ['icon' => '']],
  34. 'bx_if:image' => ['condition' => false, 'content' => ['icon_url' => '', 'attrs' => '']],
  35. 'bx_if:image_inline' => ['condition' => true, 'content' => ['image' => $sSvg]],
  36. 'bx_if:show_icon' => ['condition' => true, 'content' => []],
  37. 'bx_if:show_icon_bg' => ['condition' => true, 'content' => []],
  38. ]);
  39. }
  40. }
  41. /** @} */