Skip to content

Commit f9b8aad

Browse files
committed
Merge pull request #26 from daniel-rose/add-menu-item-by-config
show/hide top menu item by configuration
2 parents f1b5b69 + 206e038 commit f9b8aad

File tree

3 files changed

+37
-3
lines changed

3 files changed

+37
-3
lines changed

Observer/PageBlockHtmlTopmenuBethtmlBeforeObserver.php

+23-3
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,34 @@
1616
*/
1717
class PageBlockHtmlTopmenuBethtmlBeforeObserver implements ObserverInterface
1818
{
19+
/**
20+
* Show top menu item config path
21+
*/
22+
const XML_PATH_TOP_MENU_SHOW_ITEM = 'mfblog/top_menu/show_item';
23+
24+
/**
25+
* Top menu item text config path
26+
*/
27+
const XML_PATH_TOP_MENU_ITEM_TEXT = 'mfblog/top_menu/item_text';
28+
1929
/**
2030
* @var \Magefan\Blog\Model\Url
2131
*/
2232
protected $_url;
2333

34+
/**
35+
* @var \Magento\Framework\App\Config\ScopeConfigInterface
36+
*/
37+
protected $_scopeConfig;
38+
2439
/**
2540
* @param \Magefan\Blog\Model\Url $url
2641
*/
2742
public function __construct(
28-
\Magefan\Blog\Model\Url $url
43+
\Magefan\Blog\Model\Url $url,
44+
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
2945
) {
46+
$this->_scopeConfig = $scopeConfig;
3047
$this->_url = $url;
3148
}
3249

@@ -39,19 +56,22 @@ public function __construct(
3956
*/
4057
public function execute(\Magento\Framework\Event\Observer $observer)
4158
{
59+
if (!$this->_scopeConfig->isSetFlag(static::XML_PATH_TOP_MENU_SHOW_ITEM, \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
60+
return;
61+
}
62+
4263
/** @var \Magento\Framework\Data\Tree\Node $menu */
4364
$menu = $observer->getMenu();
4465
$block = $observer->getBlock();
4566

4667
$tree = $menu->getTree();
4768
$data = [
48-
'name' => __('Blog'),
69+
'name' => $this->_scopeConfig->getValue(static::XML_PATH_TOP_MENU_ITEM_TEXT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE),
4970
'id' => 'magefan-blog',
5071
'url' => $this->_url->getBaseUrl(),
5172
'is_active' => ($block->getRequest()->getModuleName() == 'blog'),
5273
];
5374
$node = new Node($data, 'id', $tree, $menu);
5475
$menu->addChild($node);
55-
return $this;
5676
}
5777
}

etc/adminhtml/system.xml

+10
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,16 @@
275275
<label>AddThis Language</label>
276276
</field>
277277
</group>
278+
<group id="top_menu" translate="label" type="text" sortOrder="90" showInDefault="1" showInWebsite="1" showInStore="1">
279+
<label>Top Menu</label>
280+
<field id="show_item" translate="label comment" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
281+
<label>Show Item</label>
282+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
283+
</field>
284+
<field id="item_text" type="text" translate="label" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
285+
<label>Item Text</label>
286+
</field>
287+
</group>
278288
</section>
279289
</system>
280290
</config>

etc/config.xml

+4
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@
7575
<add_this_pubid>ra-4def63cd3cf37569</add_this_pubid>
7676
<add_this_language>en</add_this_language>
7777
</social>
78+
<top_menu>
79+
<show_item>0</show_item>
80+
<item_text>Blog</item_text>
81+
</top_menu>
7882
</mfblog>
7983
</default>
8084
</config>

0 commit comments

Comments
 (0)