Provides powerful menu editor to replace category based menus in Magento 2

Overview

Packagist Packagist Packagist

Magento 2 Menu

Provides powerful menu editor to replace category based menus in Magento 2.

Setup

  1. Create new menu in the admin area Content > Elements > Menus.
  2. Add new block to the layout, using the same ID as in the admin area.
<block name="block-name" class="Snowdog\Menu\Block\Menu">
   <arguments>
      <argument name="menu" xsi:type="string">menu-id</argument>
   </arguments>
</block>
  1. Use created block in the template
<?= $block->getChildHtml('block-name') ?>

This module doesn't provide ready to use UI

Out of the box this module is not compatible with any theme, but in the same time you can use it with any theme, although you need to take care of the styling on your own.

You can use themes or extensions build on top of this module if you are looking for something taht works out of the box:

Docs

Please check wiki for more.

Comments
  • Nodes not showing while editing menu with store specific admin user

    Nodes not showing while editing menu with store specific admin user

    Hi All,

    I faced an issue related to the menu node on the admin panel. The issue arrived when I access the edit menu option with the login of the user who has a store-specific admin role assigned. He/She is not able to see the node option/section on the edit menu page. Please look into this issue and suggest a solution for these. In the below screenshot you can see that nodes are not shown and other details are proper. Magento ver: 2.4.3 Snow_Menu module ver: 2.17.0

    Screenshot from 2021-10-27 17-50-59

    opened by skanungo1 10
  • Image upload option for node

    Image upload option for node

    It would be nice to have the option to upload an image to a node. A use case for this would be for a mega menu which contains promotional banners.

    This can already be achieved using Cms Block node type, but it can get quite messy to manage, for example if you have a menu with 10 top-level categories, and you want two or three promotional banners within each one. It would be far nicer from a user/content-management perspective if the image could be uploaded directly to the node to avoid having to create separate static blocks.

    enhancement help wanted 
    opened by vseager 9
  • Product node image not working

    Product node image not working

    The product image is not rendering anything even though the product does have an image associated to it.

    Steps to reproduce:

    1. Create a new product node and assign a product with image.
    2. Change menu/node_type/product.phtml template to echo the included $productImage variable.

    Expected result:

    The product image URL should show up.

    Actual result:

    Nothing is outputted.

    --

    I found that the problem is the fetchImageData function in Model/ResourceModel/NodeType/Product.php not getting the thumbnail data even though it's being added as an attribute to select in the collection but I didn't get further than that.

    bug 
    opened by jahvi 9
  • Provide access to entity associated with menu node

    Provide access to entity associated with menu node

    For the second time I ran into a case where I would need to access category data in the template (menu/node_type/category.phtml).

    I can get for example category URL with getCategoryUrl(), but I'm not able to get the category object itself.

    Would it be OK to expose the category e.g. with \Snowdog\Menu\Block\NodeType\Category::getCategory()?

    Or perhaps it could even be called getEntity() so the same method could be implemented also for Product, CmsPage and CmsBlock node types?

    feature 
    opened by juho-jaakkola 8
  • Clarify documentation about adding a new node type

    Clarify documentation about adding a new node type

    The README says:

    Menu editor is using Vue.js so you need to create a new vue component that has node type code as name in view/adminhtml/web/vue/menu-type and load it in view/adminhtml/templates/menu/nodes.phtml

    I have created the template view/adminhtml/web/vue/menu-type/recommendation.vue into my custom module. But what exactly does it mean to "load it in view/adminhtml/templates/menu/nodes.phtml"?

    enhancement awaiting release 
    opened by juho-jaakkola 8
  • Uncaught TypeError: tree.get_json is not a function

    Uncaught TypeError: tree.get_json is not a function

    Hi,

    If we're trying to add/remove a node in the backend we get this js error: Uncaught TypeError: tree.get_json is not a function.

    Steps to reproduce

    1. Install Module Menu version 2.1.0 (in this case on Magento 2.1.7)
    2. Open the 'Create new menu' page
    3. Select 'Nodes tab'

    Expected result

    1. The option to create / add a node

    Actual result

    1. No option to add node
    2. JS error thrown, see: https://www.dropbox.com/s/oj4dpe9jpwvh7k1/Schermafbeelding%202017-12-08%20om%2009.55.29.png?dl=0
    bug 
    opened by SilvanLaroo 8
  • Does not compile

    Does not compile

    Changing from dev to production gives the following error:

    PHP Fatal error:  Declaration of Snowdog\Menu\Block\NodeType\AbstractNode::getHtml() must be compatible with Snowdog\Menu\Api\NodeTypeInterface::getHtml(Snowdog\Menu\Api\int $nodeId, Snowdog\Menu\Api\int $level) in /home/user/public_html/app/code/Snowdog/Menu/Block/NodeType/AbstractNode.php on line 20
    
    bug 
    opened by bvboas 8
  • Add Menu to Hyva theme

    Add Menu to Hyva theme

    I installed the Menu and want to add it to Hyva theme.

    So I insert the block to my app/design/frontend/vendor/theme/Magento_Theme/layout/default.xml

    <block name="main-menu" class="Snowdog\Menu\Block\Menu">
        <arguments>
            <argument name="menu" xsi:type="string">mainmenu</argument>
        </arguments>
    </block>
    

    inside the Magento_Theme/templates/html/header.phtml I added:

    <!--Main Navigation-->
    <?= $block->getChildHtml('main-menu') ?>
    

    But the menu were not display.. Is there something changed?

    opened by henkvalk 7
  • Configurable Product Node Shows £0 Price

    Configurable Product Node Shows £0 Price

    https://github.com/SnowdogApps/magento2-menu/blob/7145aacaf46d16bf19607323c3e23c5952860017/Model/ResourceModel/NodeType/Product.php#L65

    We've recently setup configurable products on our websites, and I noticed that the product node price returns 0, this is because configurable products don't have a price, only a link to the simple products that contain the price.

    To fix this instead of "final_price" I had to use "min_price". I hope this helps other people too.

    opened by bacondeveloper 7
  • Refactoring: Menu Repository

    Refactoring: Menu Repository

    1. $model->save() and $model->delete() breaks SOLID principle of single responsibility. Although it's not introduced to Coding Standard yet, the Resource Model should be used for operating with the database. https://github.com/magento/magento-coding-standard/issues/187
    2. Add Exceptions to the interface, as these are part of interface API.
    3. Improve verbosity and readability of the Repository (Object - > Menu etc.)
    opened by lbajsarowicz 7
  • Add product node

    Add product node

    I'm wondering if it would be worth adding a "products" node? It seems like a common use case to be able to link to specific products in the menu.

    In my case I've used this before to display "featured products" in the menu, so it wouldn't just show the name but maybe the product image and price as well.

    I think it could work exactly like the category node but pull through the product list instead.

    opened by jahvi 7
  • Menu not visible when category isn't found

    Menu not visible when category isn't found

    Set up the menu with a menu-item with Node Type Category, and choose an exsisting category. After saving, the menu (with category link) will be visible. Now remove the category that you've used in the menu. The complete menu has now disappeared.

    Isn't it possible to still show the menu but not render the concerning menu-item?

    opened by mikesteeghs 1
  • How to show/hide category on menu with respect to Catalog Permission feature of Adobe commerce?

    How to show/hide category on menu with respect to Catalog Permission feature of Adobe commerce?

    I have just installed Snowdog Menu in one of my Adobe commerce sites. Clients use the box Catalog Permission feature for their B2B site. Is there any feature to show/hide categories based on the customer group on the snowdog menu?

    Currently, this feature is not working for the B2B site with the snowdog menu.

    How to accomplish the snowdog menu with the Catalog permission feature based on the customer group of the customer in Magento 2?

    Thank you.

    opened by RakeshJesadiya 3
Releases(2.18.0)
Owner
SNOW.DOG
SNOW.DOG
For the super admin, replace WP Admin Bar My Sites menu with an All Sites menu.

Super Admin All Sites Menu Also available at https://wordpress.org/plugins/super-admin-all-sites-menu/ Use | Prerequisite | Install | Filters | Demo |

Per Søderlind 18 Dec 17, 2022
YCOM Impersonate. Login as selected YCOM user 🧙‍♂️in frontend.

YCOM Impersonate Login as selected YCOM user in frontend. Features: Backend users with admin rights or YCOM[] rights, can be automatically logged in v

Friends Of REDAXO 17 Sep 12, 2022
Magento 2 Preview/Visit Catalog allows the store owner to quickly preview the catalog (product & category) pages from the admin panel.

Magento 2 Preview/Visit Catalog Overview Magento 2 Preview/Visit Catalog allows the store owner to quickly preview the catalog (product & category) pa

Raj KB 4 Sep 27, 2022
Magento 2 extension. Solution for set Url of Category without Parent path.

Magento 2 extension. Solution for set Url of Category without Parent path.

Alex S 1 Jul 28, 2022
Installable com_content/category overrides with configuration settings to create card layouts

Installable com_content/caregory overrides with configuration settings to create card layouts. Uses default bootstrap css only.

Brian Teeman 10 Jan 5, 2023
Allow SVG images to be used in Magento CMS blocks and pages via the TinyMCE Wysiwyg Editor.

Hyvä Themes - SVG support for the Magento CMS Wysiwyg Editor Allow SVG images to be used in CMS blocks and pages via the TinyMCE Wysiwyg Editor. hyva-

Hyvä 14 Dec 15, 2022
This Magento extension provides a Real Full Page Caching for Magento powered by Varnish with support of Session-Based information caching (Cart, Customer Accounts, ...) via ESI includes

This Magento extension provides a Real Full Page Caching (FPC) for Magento powered by Varnish with support of Session-Based information caching (Cart, Customer Accounts, ...) via ESI includes

Hugues Alary 95 Feb 11, 2022
Michael Pratt 307 Dec 23, 2022
This is an experiment to export all RFCs from the PHP wiki into Git, including the change history for each RFC (along with the date and author of each change). This is not meant to replace the wiki.

PHP Requests for Comments (RFCs) About This repository is an experiment to export all RFCs from the PHP wiki into Git, including the change history fo

Ben Ramsey 34 Jun 20, 2022
Replace Elvis operator (?:) by null coalesce operator (??) when applicable

psalm-elvis-begone A Psalm plugin to replace Elvis operator (?:) by null coalesce operator (??) when applicable Installation: $ composer require --dev

null 7 Oct 27, 2022
A super simple, clean and pretty error handler that replace the default error handler of PHP. You need only include this file!

php-custom-error-handler A super simple, clean and pretty error handler that replace the default error handler of PHP. You need just include only this

null 6 Nov 7, 2022
php String Objects Chains like length,forEach,filter,replace,repalcAll much More.... Module

php String Objects Chains like length,forEach,filter,replace,repalcAll much More.... Module

im__koli 1 Mar 29, 2022
Easily replace Google Fonts with Bunny Fonts.

=== Replace Google Fonts with Bunny Fonts === Contributors: antonioleutsch Donate link: https://paypal.me/antonioleutsch Tags: google fonts, bunny fon

Antonio Leutsch 4 Dec 15, 2022
Replace, concat strings or change number fields permanently using Grid Options

It's Pimcore Bundle to replace ,concat strings or change number fields permanently using Grid Options. It will save replaced strings directly in object.

LemonMind.com 5 Aug 31, 2022
Magento 2 module to quickly acces products, orders and customer from admin menu

Magento 2 module to quickly access product, order or customer views Introduction The Magento 2 backend can be sluggish. Ever wanted to access a produc

null 1 Dec 3, 2021
Magento 2 Extension to cleanup admin menu and Store > Configuration area by arranging third party extension items.

Clean Admin Menu - Magento 2 Extension It will merge all 3rd party extension's menu items in backend's primary menu to a common menu item named "Exten

RedChamps 109 Jan 3, 2023
Luma support for Snowdog Menu for Magento 2

Seamlessly integrate the popular Snowdog Menu for Magento 2 with the Luma theme templates. No custom templates or CSS required.

Victor Seager 4 Jun 1, 2022
KodExplorer is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser.

KodExplorer is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser.

warlee 5.5k Feb 10, 2022