|
|
@@ -281,6 +281,35 @@ class BxBaseMenu extends BxDolMenu
|
|
|
return $this->_oQuery->getMenuItems();
|
|
|
}
|
|
|
|
|
|
+ protected function getMenuItemsRawProfileRelated ()
|
|
|
+ {
|
|
|
+ $oProfile = BxDolProfile::getInstance();
|
|
|
+ if(!$oProfile)
|
|
|
+ return [];
|
|
|
+
|
|
|
+ $aItems = $this->_oQuery->getMenuItemsBy([
|
|
|
+ 'type' => 'set_name',
|
|
|
+ 'set_name' => $this->_aObject['set_name']
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $aDuplicates = $this->_oQuery->getMenuItemsBy([
|
|
|
+ 'type' => 'set_name_duplicates',
|
|
|
+ 'set_name' => $this->_aObject['set_name']
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $sModule = $oProfile->getModule();
|
|
|
+
|
|
|
+ $aResult = [];
|
|
|
+ foreach($aItems as $aItem) {
|
|
|
+ if(in_array($aItem['name'], $aDuplicates) && $aItem['module'] != $sModule)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ $aResult[$aItem['name']] = $aItem;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $aResult;
|
|
|
+ }
|
|
|
+
|
|
|
protected function _getMenuItem ($a)
|
|
|
{
|
|
|
if (!$this->_isActive($a) || !$this->_isVisible($a))
|
|
|
@@ -566,6 +595,65 @@ class BxBaseMenu extends BxDolMenu
|
|
|
return $sAttrs;
|
|
|
}
|
|
|
|
|
|
+ protected function _addMenuItemsMoreLess($aItems, $iMenuItemsMin)
|
|
|
+ {
|
|
|
+ $iMenuItems = count($aItems);
|
|
|
+ if($iMenuItems <= $iMenuItemsMin)
|
|
|
+ return $aItems;
|
|
|
+
|
|
|
+ $mixedCollpsed = $this->getUserChoiceCollapsed();
|
|
|
+ $bCollpsed = $mixedCollpsed === false || $mixedCollpsed == 1;
|
|
|
+
|
|
|
+ for($i = $iMenuItemsMin; $i < $iMenuItems; $i++)
|
|
|
+ $aItems[$i]['class_add'] .= ' bx-mi-aux' . ($bCollpsed ? ' bx-mi-hidden' : '');
|
|
|
+
|
|
|
+ $aShowMoreLinks = [
|
|
|
+ 'more' => ['title' => '_sys_show_more', 'icon' => 'chevron-down', 'class' => $bCollpsed ? '' : 'bx-mi-hidden'],
|
|
|
+ 'less' => ['title' => '_sys_show_less', 'icon' => 'chevron-up', 'class' => !$bCollpsed ? '' : 'bx-mi-hidden']
|
|
|
+ ];
|
|
|
+
|
|
|
+ foreach($aShowMoreLinks as $sLink => $aLink)
|
|
|
+ $aItems[] = [
|
|
|
+ 'class_add' => 'bx-psmi-show-' . $sLink . ' ' . $aLink['class'],
|
|
|
+ 'name' => 'show-' . $sLink,
|
|
|
+ 'title' => _t($aLink['title']),
|
|
|
+ 'link' => 'javascript:void(0)',
|
|
|
+ 'bx_if:onclick' => [
|
|
|
+ 'condition' => true,
|
|
|
+ 'content' => [
|
|
|
+ 'onclick' => 'bx_menu_show_more_less(this, \'' . $this->_sObject . '\', \'.bx-menu-object-' . $this->_sObject . '\')',
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ 'attrs' => '',
|
|
|
+ 'bx_if:image' => [
|
|
|
+ 'condition' => false,
|
|
|
+ 'content' => ['icon_url' => ''],
|
|
|
+ ],
|
|
|
+ 'bx_if:image_inline' => [
|
|
|
+ 'condition' => false,
|
|
|
+ 'content' => ['image' => ''],
|
|
|
+ ],
|
|
|
+ 'bx_if:icon' => [
|
|
|
+ 'condition' => true,
|
|
|
+ 'content' => ['icon' => $aLink['icon']],
|
|
|
+ ],
|
|
|
+ 'bx_if:icon-html' => [
|
|
|
+ 'condition' => false,
|
|
|
+ 'content' => ['icon-a' => ''],
|
|
|
+ ],
|
|
|
+ 'bx_if:icon-a' => [
|
|
|
+ 'condition' => false,
|
|
|
+ 'content' => ['icon-a' => ''],
|
|
|
+ ],
|
|
|
+ 'bx_if:addon' => [
|
|
|
+ 'condition' => false,
|
|
|
+ 'content' => []
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ return $aItems;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Add css/js files which are needed for menu display and functionality.
|
|
|
*/
|