2

Magento でブレッドクラムをフォーマットした経験のある人はいますか?

現在「HOME」というテキストが表示されているリンクを画像に置き換えたいと考えています。

一部のテキストを画像に置き換える単純なケースだと思いましたが、breadcrumbs.phtml にあるのはこれだけであるため、'HOME' テキスト/リンクが動的に作成されているようです。

<?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; ?>
4

5 に答える 5

4

実際、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; ?>
于 2012-03-09T14:11:45.003 に答える
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. php/phtml ファイルの代わりに css ファイルを編集します。CSS の経験が中途半端な場合は、text-indent を -2000em に設定し、背景画像を設定するだけでよいでしょう。
于 2010-11-23T16:13:32.023 に答える
1

CSS を使用してください。これは実際には価値のない戦いです :) 5 行の CSS は、ブレッドクラム レンダラーをハックしようとするよりもはるかに簡単に問題を解決します。

于 2010-11-23T17:38:45.963 に答える
0

このためのコードを記述する必要はありません。翻訳ファイルを使用するだけで、ブレッドクラムの「ホーム」を変更できます。

このため :

テーマに移動 -> ロケール ディレクトリを作成 -> en_us ディレクトリを作成 -> translate.csv を作成します。

これで、コードの下に書くだけです

「家」、「あなたの選択」。

于 2012-08-25T04:39:51.003 に答える
0

テーマの breadcrumbs.phtml ファイルを編集します。

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

Home クラムを画像に置き換えたい場合:

<?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 クラムを完全に削除したい場合は、これが必要でした:

<?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
    <?php if ($_crumbInfo['first']) continue ?>
    <li class="<?php echo $_crumbName ?>">
    <?php if($_crumbInfo['link']): ?>
于 2015-03-23T03:28:02.343 に答える