首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Magento - Navigation.phtml覆盖不工作

Magento - Navigation.phtml覆盖不工作
EN

Stack Overflow用户
提问于 2013-03-18 03:05:46
回答 3查看 3.1K关注 0票数 0

我正在开发一个引导主题,我正在尝试修改分配给下拉菜单/家长的类,但是我没有多少运气。

我所做的任何更改都不会显示在前端-我已经刷新了缓存,登录/退出,我甚至尝试编辑实际的核心文件,但没有任何工作。

我已经将navigation.phtml的副本复制到了local/Mage/Catalog/Block/Navigation.phtml,但它仍然不起作用。

沿途有什么东西我错过了吗?我不太确定该怎么办。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-18 15:43:13

我没有编辑核心文件,而是决定通过jQuery .

代码语言:javascript
运行
复制
<script type="text/javascript">
jQuery('.parent').addClass('dropdown');
jQuery('a.level-top').addClass('dropdown-toggle');
jQuery('li.parent ul').addClass('dropdown-menu');
jQuery('li.level1 ul').wrap('<li class="dropdown-submenu" />');


jQuery('ul.nav li.dropdown').hover(function() {
  jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn();
}, function() {
  jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut();
});
</script>

我通过jQuery添加了类的要求,并使用.wrap封装下拉子菜单

第二部分是从单击中打开的子菜单改为悬停时打开的子菜单。

现在,一切都在正常工作,并且有必要的类来构建magento中的引导多级下拉列表。

票数 0
EN

Stack Overflow用户

发布于 2013-03-18 04:30:43

第一件事是,据我所知,code/core/Mage/Catalog/Block/中没有code/core/Mage/Catalog/Block/。而是Navigation.php (Magento1.7.x)。

其次,如果需要覆盖核心模块中的任何内容,最好创建一个单独的模块。因为如果您要在local中创建一个确切的副本,则在更新之后它可能无法工作。

如果要创建下拉菜单,则需要编辑app/design/frontend/base/default/文件,以便在app/design/frontend/yourtheme/default/文件夹中创建副本。

顶部菜单位于app/design/frontend/base/default/catalog/navigation/top.phtml中。要查看详细信息,请在System>Configuration>Developer>Debug中打开模板路径提示。

票数 1
EN

Stack Overflow用户

发布于 2013-09-20 09:52:23

如果希望将Magento1.7.x转换为引导导航作用域topmenu.phtml,则将其转换为主题:

*magento/app/design/frontend/your_package/your_theme/template/page/html/topmenu.phtml*

添加jQuery代码:

代码语言:javascript
运行
复制
<script type="text/javascript">
    /*<![CDATA[*/
    jQuery(document).ready(function ($) {
        $("#nav").magentoBootstrapNavigation();
    });
    /*]]>*/
</script>

你会得到这样的东西:

代码语言:javascript
运行
复制
<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    design
 * @package     base_default
 * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>
<?php
/**
 * Top menu for store
 *
 * @see Mage_Page_Block_Html_Topmenu
 */
?>
<?php $_menu = $this->getHtml('level-top') ?>
<?php if($_menu): ?>
    <ul id="nav" class="nav navbar-nav">
        <?php echo $_menu ?>
    </ul>

    <script type="text/javascript">
        /*<![CDATA[*/
        jQuery(document).ready(function ($) {
            $("#nav").magentoBootstrapNavigation();
        });
        /*]]>*/
    </script>
<?php endif ?>

然后通过local.xml添加js文件

代码语言:javascript
运行
复制
<!-- jQuery scripts -->
<action method="addItem"><type>skin_js</type><script>js/jquery-scripts/magento-to-bootstrap-navigation.js</script></action>

创建js文件:

*magento/skin/frontend/your_package/your_theme/js/jquery-scripts/magento-to-bootstrap-navigation.js*

打开magento-自助-导航.to端粘贴:

代码语言:javascript
运行
复制
/*
* Convert default Magento navigation to Bootstrap navigation
 */
(function ( $ ) {

    $.fn.magentoBootstrapNavigation = function() {

        var menu = function(){
            var nav = $(this);

            nav.find(".parent")
                .addClass("dropdown")
                .children("a").addClass("dropdown-toggle").attr("data-toggle", "dropdown").append( ' <b class="caret"></b>')
                .next().addClass("dropdown-menu");
        };

        return this.each(menu);

    };

}( jQuery ));

仅此而已。

PS:对于..btn group,您可能会遇到自我隐藏的问题。我通过编辑核心引导程序dropdown.js文件来解决这个问题:

*path_to_your_bootstrap/bootstrap/js/dropdown.js*

打开并找到线路:

代码语言:javascript
运行
复制
$parent.removeClass('open').trigger('hidden.bs.dropdown')

并将其替换为:

代码语言:javascript
运行
复制
//$parent.removeClass('open').trigger('hidden.bs.dropdown')
$parent.removeClass('open').trigger('hidden.bs.dropdown').show()

祝您今天愉快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15469155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档