【问题标题】:Magento - How to replace 'Home' in the breadcrumb?Magento - 如何替换面包屑中的“Home”?
【发布时间】:2010-11-23 15:54:52
【问题描述】:

我只是想知道是否有人在 Magento 中格式化面包屑有任何经验?

我想用图像替换当前显示文本“HOME”的链接。

我认为这将是一个用图片替换一些文本的简单案例,但似乎“主页”文本/链接是动态创建的,因为这就是面包屑.phtml 中的全部内容:

<?php if($crumbs && is_array($crumbs)): ?>
<div class="breadcrumbs">
    <ul>
        <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
            <li class="<?php echo $_crumbName ?>">
            <?php if($_crumbInfo['link']): ?>
                <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']) ?></a>
            <?php elseif($_crumbInfo['last']): ?>
                <strong><?php echo $this->htmlEscape($_crumbInfo['label']) ?></strong>
            <?php else: ?>
                <?php echo $this->htmlEscape($_crumbInfo['label']) ?>
            <?php endif; ?>
            <?php if(!$_crumbInfo['last']): ?>
                <span>&gt;</span>
            <?php endif; ?>
            </li>
        <?php endforeach; ?>
    </ul>
</div>
<?php endif; ?>

【问题讨论】:

    标签: magento breadcrumbs


    【解决方案1】:

    事实上,您可以隐藏第一个“主页”,使其不出现在您的面包屑中,而不会弄乱 CSS 并保持 HTML 干净。

    只需将规则“!$_crumbInfo['first']”添加到您的 if 条件中,就像:

    <?php if ($crumbs && is_array($crumbs)): ?>
        <?php foreach ($crumbs as $_crumbName => $_crumbInfo): ?>
            <?php if ($_crumbInfo['link'] && !$_crumbInfo['first']): ?>
                <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']) ?></a>
            <?php elseif ($_crumbInfo['last']): ?>
                <?php echo $this->htmlEscape($_crumbInfo['label']) ?>
            <?php elseif (!$_crumbInfo['first']): ?>
                <?php echo $this->htmlEscape($_crumbInfo['label']) ?>
            <?php else: ?>
            <?php endif; ?>
            <?php if (!$_crumbInfo['last'] && !$_crumbInfo['first']): ?>
                » 
            <?php endif; ?>
        <?php endforeach; ?>
    <?php endif; ?>
    

    【讨论】:

    • 或者,为了确保它只是主页链接(面包屑可能已从其他模块更改),您可以检查 $_crumbName == 'home'
    【解决方案2】:

    我认为这是在 app/code/core/Mage/Cms/Block/Page.php 中设置的。查看 _prepareLayout() 方法(我使用的是 magento 1.3,所以这可能有点过时了)。

    我看到你有几个更新选项。

    1. 直接编辑文件。 (不是我的建议,而是禁食的方式)
    2. 在您自己的模块中覆盖该类
    3. 为您的主题的 translate.csv 文件创建一个条目。这是我喜欢在正常情况下更新措辞的方式,但它可能不是你的一杯茶。因此,在 app/design/frontend/your_package/your_theme/locale/en_US/translate.csv 中,您可以添加一个新行,上面写着“Home”,“”,然后 presto。
    4. 编辑您的 css 文件而不是 php/phtml 文件。如果您对 css 有一半经验,您可能只需将 text-indent 设置为 -2000em 并设置背景图片。

    【讨论】:

      【解决方案3】:

      使用 CSS,这是一场不值得的斗争 :) 5 行 CSS 将比试图破解面包屑渲染器更容易解决这个问题。

      【讨论】:

        【解决方案4】:

        无需为此编写任何代码,只需使用您的翻译文件,我们就可以更改面包屑中的“主页”。

        为此:

        转到您的主题 -> 创建语言环境目录-> 创建 en_us 目录 -> 创建 translate.csv 。

        这里只写下面的代码

        “家”,“你的选择”。

        【讨论】:

          【解决方案5】:

          编辑主题的 breadcrumbs.phtml 文件:

          /app/design/frontend/[YOUR_THEME]/default/template/page/html/breadcrumbs.phtml

          如果你想用图片替换 Home crumb:

          <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
              <li class="<?php echo $_crumbName ?>">
              <?php if($_crumbInfo['first']): ?>
                  <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>">
                      <img src="/your/image/path.png"/>
                  </a>
              <?php elseif($_crumbInfo['link']): ?>
                  <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']) ?></a>
          

          如果您想完全删除 Home crumb,这正是我所需要的:

          <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
              <?php if ($_crumbInfo['first']) continue ?>
              <li class="<?php echo $_crumbName ?>">
              <?php if($_crumbInfo['link']): ?>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-02-01
            • 1970-01-01
            相关资源
            最近更新 更多