Questions tagged «navigation»

1
幻影导航装饰器撞击Magento的EE缓存的奇怪情况
准备好一个奇怪的。因此,我正在自定义主要目录导航,以构建一个全状态的UI行为,该行为处理跨设备的多个交互模型(菜单,下拉菜单,模式等)。像你所做地。 这意味着要覆盖此类/方法: app/code/core/Mage/Page/Block/Html/Topmenu.php :: _getHtml() 要产生这样的HTML输出(有些简化): <ul class="nav-list"> <li class="nav-1"> <a data-ui-action="nav-1" href="#">Bazzow</a> <div class="menu"> ... </div> </li> <li class="nav-2"> <a data-ui-action="nav-2" href="#">Bazinga</a> <div class="menu"> ... </div> </li> </ul> 现在,除了data-ui-action属性之外,这非常无聊/标准。那就是JS魔术发生的地方。对具有该属性的元素的任何单击都会更新UI状态。您猜对了,li.nav-X该类(Magento添加)充当了将UI状态绑定到激活元素的钩子。 一切都好吧?打开EE缓存。好吧?错误。 如果您正在查看的页面在Bazinga(aka nav-2)的目录层次结构内,那么突然您将看到以下内容: data-ui-action="nav-2 active" 谁添加了讨厌的active字符串?幻影是谁。 现在,您的UI状态失败,因为数据属性的值不再与<li>该类匹配。寻找幻影。 狩猎 首先,您检查在EE高速缓存下$child->getPositionClass()输出的变量nav-2实际上没有附加其他(大概)类值。它不是。 您检查了Magento的许多装饰器JS脚本之一是否未在导航列表中执行。不是。 也许这实际上是一件奇怪的事情/js/varien/menu.js。但是您已经像往常一样排除了那些核心脚本。 也许这是一些疯狂的内联JS,您永远不会知道模块会从PHP类中渲染出来。在页面源中搜索标记active内<script>。你什么也没找到。 也许这是其他一些疯狂的JS Magento所需要的,但是从外部加载。您在浏览器中禁用了JS,但是幻影仍然存在。 您回到Topmenu.php班级并删除data属性。问题停止了。我勒个去。 您想知道同一元素上的另一个属性是否未正确用引号引起来(嘿,很多类附加在其中发生)。因此,您交换属性的顺序并以各种组合将其删除。没有骰子。如果存在data属性,则幻像也存在。 您想知道不是该 PHP类在做事吗?有一个已调度的page_block_html_topmenu_gethtml_after事件,其他事件可能会用它来破坏标记。没有。 什么。是的。发生了。这里。 答案 …

2
Magento 2导航菜单未显示
我是Magento的新手,所以请忍受我:D 我已经成功创建了一个空白主题子主题。 我正在尝试使菜单正常工作,我一生都无法看到菜单为何不显示。我读过其他几个主题,也没有运气。 我在其中添加了根类别及其子类别。然后,我将其分配给商店设置。我已经重新索引了该站点的索引,清除了缓存,但仍然没有任何乐趣。 通过添加类别,它会显示出来,这是对的事情吗? 谢谢 似乎我没有默认类别-请参见下面的屏幕截图 更新 我已经在本地计算机上重新安装了Magento。菜单在Luma和Blank主题上显示良好,但在我自己的自定义主题上却没有显示。我需要包括或检查什么吗? 谢谢您的帮助

1
自定义Magento 2主导航(topmenu)javaScript
我花了很多时间研究主题模块和空白模板,以尝试更改Magento2的主要导航。到目前为止,我已经制作了一个自定义模块来控制呈现到页面中的内容(向subnav添加链接),但是我无法确定导航菜单javaScript的位置。 我可以在空白模板中看到一个navigation.menu.js文件,在主题模块中看到了menu.js,但是这些似乎都不是主菜单,而且找不到其他地方可以找到JS。 因为该块是由XML生成的,并且导航似乎在jQuery UI上运行,所以我没有太多可以用来搜索的内容。到目前为止,我主要是通过搜索供应商目录来修改基于基础模板构建的自定义模板,但是我还是空白。 我正在运行Magento 2.1,并在基础模板的基础上构建了自定义模板,如果有人可以向我指出正确的方向,那将是很大的帮助。 编辑1: 因此,经过更多的谷歌搜索和测试之后,我终于在lib / web / mage中找到了第二个menu.js文件,这似乎是正确的位置,但是现在我无法覆盖它。 有了我的新信息,我实际上偶然发现了Magento2开发文档,其中有一个覆盖菜单和管理菜单的示例。所以我在模块中添加了以下内容 命名空间/模块/视图/前端/require-config.js var config = { map: { '*': { 'menu': 'Test_Topmenu/js/navigation-menu' } } }; 命名空间/模块/视图/前端/web/js/navigation-menu.js define([ 'jquery', 'jquery/ui', 'mage/menu' ], function ($) { "use strict"; $.widget('Test_Topmenu.navigationMenu', $.mage.menu, { _init: function () { console.log('new init'); } }); return …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.