Skip to content

Commit

Permalink
#3524 Submenu in block
Browse files Browse the repository at this point in the history
  • Loading branch information
romanlesnikov committed Sep 29, 2021
1 parent ffcb569 commit 9552e3d
Show file tree
Hide file tree
Showing 9 changed files with 71 additions and 7 deletions.
7 changes: 6 additions & 1 deletion inc/classes/BxDolPage.php
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,11 @@ public function getModule ()
{
return $this->_aObject['module'];
}

public function getSubMenu ()
{
return $this->_aObject['submenu'];
}

public function getName ()
{
Expand Down Expand Up @@ -303,7 +308,7 @@ public function isVisiblePage ()
{
return $this->_isVisiblePage($this->_aObject);
}

public function isEditAllowed ()
{
return false;
Expand Down
7 changes: 7 additions & 0 deletions inc/classes/BxDolTemplate.php
Original file line number Diff line number Diff line change
Expand Up @@ -1384,6 +1384,13 @@ function getTemplatePath($sName, $sCheckIn = BX_DOL_TEMPLATE_CHECK_IN_BOTH)
function getMenu ($s)
{
$oMenu = BxDolMenu::getObjectInstance($s);

if($s == 'sys_site_submenu'){
$oPage = BxDolPage::getObjectInstanceByURI();
if ($oPage->getSubMenu() == 'disabled'){
return;
}
}
return $oMenu ? $oMenu->getCode () : '';
}

Expand Down
4 changes: 3 additions & 1 deletion install/sql/system.sql
Original file line number Diff line number Diff line change
Expand Up @@ -5134,7 +5134,8 @@ SET @iBlockOrder = IFNULL((SELECT `order` FROM `sys_pages_blocks` WHERE `object`
INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `tabs`, `async`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES
('', 0, 'system', '_sys_page_block_title_sys_create_post', '_sys_page_block_title_create_post', 11, 1, 4, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:20:"get_create_post_form";s:6:"params";a:1:{i:0;i:0;}s:5:"class";s:13:"TemplServices";}', 0, 1, 1, @iBlockOrder + 1),
('', 0, 'system', '_sys_page_block_title_sys_create_post_context', '_sys_page_block_title_create_post_context', 11, 1, 4, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:20:"get_create_post_form";s:6:"params";a:1:{i:0;s:12:"{profile_id}";}s:5:"class";s:13:"TemplServices";}', 0, 1, 1, @iBlockOrder + 2),
('', 0, 'system', '_sys_page_block_title_sys_create_post_public', '_sys_page_block_title_create_post_public', 11, 1, 4, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:20:"get_create_post_form";s:6:"params";a:0:{}s:5:"class";s:13:"TemplServices";}', 0, 1, 1, @iBlockOrder + 3);
('', 0, 'system', '_sys_page_block_title_sys_create_post_public', '_sys_page_block_title_create_post_public', 11, 1, 4, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:20:"get_create_post_form";s:6:"params";a:0:{}s:5:"class";s:13:"TemplServices";}', 0, 1, 1, @iBlockOrder + 3),
('', 0, 'system', '_sys_page_block_title_sys_std_site_submenu', '_sys_page_block_title_std_site_submenu', 3, 0, 0, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:16:"get_site_submenu";s:6:"params";a:0:{}s:5:"class";s:13:"TemplServices";}', 0, 1, 1, @iBlockOrder + 4);

-- content blocks
INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `tabs`, `async`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES
Expand Down Expand Up @@ -5226,6 +5227,7 @@ INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title_system`, `

('sys_std_dashboard', 2, 'system', '', '_sys_page_block_title_std_dash_cache', 11, 0, 0, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:15:"get_block_cache";s:6:"params";a:0:{}s:5:"class";s:20:"TemplStudioDashboard";}', 0, 0, 1, 2);


-- --------------------------------------------------------

CREATE TABLE `sys_labels` (
Expand Down
6 changes: 6 additions & 0 deletions modules/boonex/english/data/langs/system/en.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2973,6 +2973,9 @@ If it is not enabled then please consider implement this optimization, since it
<string name="_sys_menu_item_title_sa_language"><![CDATA[Language]]></string>
<string name="_sys_menu_item_title_system_sa_logout"><![CDATA[Sign out]]></string>
<string name="_sys_menu_item_title_sa_logout"><![CDATA[Sign out]]></string>
<string name="_sys_menu_item_title_inherited"><![CDATA[Inherited]]></string>
<string name="_sys_menu_item_title_disabled"><![CDATA[Disabled]]></string>

<string name="_sys_metatags_mention_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> mentioned <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
<string name="_sys_mobile_friends"><![CDATA[Friends]]></string>
<string name="_sys_mobile_info"><![CDATA[Info]]></string>
Expand Down Expand Up @@ -3055,6 +3058,9 @@ If it is not enabled then please consider implement this optimization, since it
<string name="_sys_page_block_title_std_dash_host_tools"><![CDATA[Host Tools]]></string>
<string name="_sys_page_block_title_std_dash_cache"><![CDATA[Cache]]></string>
<string name="_sys_page_block_title_terms"><![CDATA[Terms of Service]]></string>
<string name="_sys_page_block_title_sys_std_site_submenu"><![CDATA[Site submenu]]></string>
<string name="_sys_page_block_title_std_site_submenu"><![CDATA[Site submenu]]></string>

<string name="_sys_page_lang_block_about"><![CDATA[This site is powered by UNA. The rest is a mystery.]]></string>
<string name="_sys_page_lang_block_terms"><![CDATA[Our terms of use.]]></string>
<string name="_sys_page_lang_block_privacy"><![CDATA[Our privacy policy.]]></string>
Expand Down
6 changes: 4 additions & 2 deletions studio/template/scripts/BxBaseStudioBuilderPage.php
Original file line number Diff line number Diff line change
Expand Up @@ -838,7 +838,8 @@ protected function actionBlockEdit()
$aForm['inputs']['async']['values'][] = array('key' => $iKey, 'value' => _t($sTitle));

$aSubmenus = $this->oDb->getBlockSubmenus();
$aForm['inputs']['submenu']['values'][] = array('key' => '', 'value' => _t('_sys_no_menu'));
$aForm['inputs']['submenu']['values'][] = array('key' => '', 'value' => _t('_sys_menu_item_title_inherited'));
$aForm['inputs']['submenu']['values'][] = array('key' => 'disabled', 'value' => _t('_sys_menu_item_title_disabled'));
foreach ($aSubmenus as $sObject => $sTitle)
$aForm['inputs']['submenu']['values'][] = array('key' => $sObject, 'value' => _t($sTitle));

Expand Down Expand Up @@ -1059,7 +1060,8 @@ protected function getSettingsOptions($aPage = array(), $bCreate = true, $bInput
$aForm['inputs']['type_id']['values'][] = array('key' => $aType['id'], 'value' => _t($aType['title']));

$aSubmenus = $this->oDb->getSubmenus();
$aForm['inputs']['submenu']['values'][] = array('key' => '', 'value' => _t('_sys_no_menu'));
$aForm['inputs']['submenu']['values'][] = array('key' => '', 'value' => _t('_sys_menu_item_title_inherited'));
$aForm['inputs']['submenu']['values'][] = array('key' => 'disabled', 'value' => _t('_sys_menu_item_title_disabled'));
foreach ($aSubmenus as $sObject => $sTitle)
$aForm['inputs']['submenu']['values'][] = array('key' => $sObject, 'value' => _t($sTitle));

Expand Down
1 change: 1 addition & 0 deletions template/menu_main_submenu_empty.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__code__
21 changes: 20 additions & 1 deletion template/scripts/BxBaseMenuSubmenu.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ class BxBaseMenuSubmenu extends BxTemplMenu
protected $_sObjectActionsMenu = false;
protected $_sObjectSubmenu = false;
protected $_mixedMainMenuItemSelected = false;
protected $_sTemplateWrapper = 'menu_main_submenu_bar.html';

protected $_sJsObject;

Expand Down Expand Up @@ -92,6 +93,24 @@ public function getServiceSocialSharing ()
return $this->_aSocialSharingService;
}

/**
* Get template wrapper
* @return template wrapper
*/
public function getTemplateWrapper ()
{
return $this->_sTemplateWrapper;
}

/**
* Set template wrapper
* @param $s template wrapper
*/
public function setTemplateWrapper ($s)
{
$this->_sTemplateWrapper = $s;
}

/**
* Get menu code.
* @return string
Expand All @@ -114,7 +133,7 @@ public function getCode ()
return '';

$this->_addJsCss();
return $this->_oTemplate->parseHtmlByName('menu_main_submenu_bar.html', array(
return $this->_oTemplate->parseHtmlByName($this->_sTemplateWrapper, array(
'class' => $oMenuSubmenu->getTemplateId() == BX_MENU_TEMPLATE_SUBMENU_MORE_AUTO ? 'bx-menu-more-auto' : '',
'code' => $sCode
));
Expand Down
2 changes: 1 addition & 1 deletion template/scripts/BxBasePage.php
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ protected function _selectMenu ()
*/
protected function _setSubmenu ($aParams)
{
if(empty($this->_aObject['submenu']))
if(empty($this->_aObject['submenu']) || $this->_aObject['submenu'] == 'disabled')
return;

$oMenuSubmenu = BxDolMenu::getObjectInstance('sys_site_submenu');
Expand Down
24 changes: 23 additions & 1 deletion template/scripts/BxBaseServices.php
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,29 @@ public function serviceGetCreatePostForm($mixedContextId = false, $sDefault = ''
'menu' => $oMenu
);
}


/**
* @page service Service Calls
* @section bx_system_general System Services
* @subsection bx_system_general-general General
* @subsubsection bx_system_general-get_site_submenu get_site_submenu
*
* @code bx_srv('system', 'get_site_submenu', [], 'TemplServices'); @endcode
* @code {{~system:get_site_submenu:TemplServices[]~}} @endcode
*
* Get Site Submenu code.
* @see BxBaseServices::serviceGetSiteSubmenu
*/
/**
* @ref bx_system_general-get_site_submenu "get_site_submenu"
*/
public function serviceGetSiteSubmenu()
{
$oMenu = BxDolMenu::getObjectInstance('sys_site_submenu');
$oMenu->setTemplateWrapper('menu_main_submenu_empty.html');
return $oMenu ? $oMenu->getCode () : '';
}

/**
* @page service Service Calls
* @section bx_system_general System Services
Expand Down

0 comments on commit 9552e3d

Please sign in to comment.