2013-07-26 10 views
9

私はMagentoのナビゲーションメニューバーコードを編集したいが、私はどのファイルには、メニューバーコードを持っていることを知っていないそのファイルや変更を編集することができますどのように助けてくださいMagentoにはナビゲーションメニューバーのコードがありますか?

i want to edit menu magento provide menu like 
<ul> 
    <li><a href=''>Home</a></li> 
    <li><a href=''>Contact Us</a></li> 
    <li><a href=''>Abouty Us</a></li> 

</ul> 

i want to edit it like 

<ul> 
    <li><img src=''/><a href=''>Home</a></li> 
    <li><img src=''/><a href=''>Contact Us</a></li> 
    <li><img src=''/><a href=''>Abouty Us</a></li> 

</ul> 

を助けてください、私は画像を追加したいですメニューへと

答えて

3

こんにちは友人を交換することにより、ナビゲーションメニューバーコード

+5

コアファイルを変更しないでください。テーマを転送することはできません。 –

+1

このファイルを編集すると、サイトがアップグレードセーフでなくなる – TT120

5
app\design\frontend\default\yourtheme\template\page\html\topmenu.phtml 
+0

ファイルを指定していますが、そのファイルには\ app \ design \ frontend \ default \ theme394 \ template \ page \ htmlというファイルがありません。 –

+0

すぐにお返事ありがとうございます。私はメニューに画像を表示する方法を教えてください –

+0

- app \ design \ frontend \ base \ default \ template \ page \ html \ topmenu.phtmlからコピーしてください - あなたのテーマに入れてください –

1

事前のメニューを作成して[O​​K]を、

BYこの

<li> 
<a href="<?php echo $this->getBaseUrl() . $page['identifier']; ?>"><?php  echo $page['title']; ?></a> 
</li> 

を置き換えますここでOK

<li><img src=''/> 
<a href="<?php echo $this->getBaseUrl() . $page['identifier']; ?>"><?php  echo $page['title']; ?></a> 
</li> 

はあなたが必要に応じてこの

<?php $_menu = $this->getHtml('level-top') ?> 
<?php if($_menu): ?> 

<?php $identifier = Mage::getSingleton('cms/page')->getIdentifier() ?> 

<?php $collection = Mage::getModel('cms/page')->getCollection()-  >addStoreFilter(Mage::app()->getStore()->getId());?> 
<?php $collection->getSelect() 
->where('is_active = 1'); ?> 
<ul class="main-menu cf"> 
<?php foreach ($collection as $page): ?> 
<?php $PageData = $page->getData(); ?> 

<?php //make the current page active?> 
<?php if($identifier == $PageData['identifier'] && $identifier != 'no-route'){ $c = 'class="active"';}else{ $c = '';}?> 
<?php if($PageData['identifier']!='no-route' && $PageData['identifier']!='enable-cookies' && $PageData['identifier']!='home2') { ?> 
<li><img src=''/> 
<a <?php echo $c;?> href="<?php echo $this->getBaseUrl() . $page['identifier']; ?>"><?php  echo $page['title']; ?></a> 
</li> 
<?php } ?> 
<?php endforeach; ?> 
</ul> 

スタイルでページ全体のコードを置き換え、新しいコードです。クラスにあなたも持っているファイル

navigation.phpアプリは\ code \コア\のメイジ\カタログ\ブロック\ \ navigation.phpファイル

にナビゲーションメニューバーを見ることができます

+0

ファイルのコードが置き換えられるファイル名を教えてください –

+0

そのtopmenu.phtml –

+0

のtopmenu.phtmlファイルにはその行コードのみがあります<?php $ _menu = $ this-> getHtml( ' >トップレベル?)?> <?php if($ _ menu):?>

<?php endif?> –

13

Mage_Page_Block_Html_Topmenuクラスの_getHtml()メソッドをオーバーライドする必要があります。ここで

は、手順は次のとおりです。class Mage_Page_Block_Html_Topmenu_Custom extends Mage_Page_Block_Html_Topmenu

  • の内側に入れ

    1. あなたのアプリ/コードを作成/ローカル/メイジ/ページ/ブロック/ HTML /トップメニュー/ Custom.php
    2. は(_getHtmlをコピー)あなたのapp/design/frontend/your_theme/default/layout/page.xmlを編集し、<block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml"/><block type="page/html_topmenu_custom" name="catalog.topnav" template="page/html/topmenu.phtml"/>
    3. に置き換えてください。
    4. 利益!
  • +0

    答えに感謝します。 –

    2

    あなたのMagentoのバージョンによって、この投稿は期限が切れている可能性がありますので、私は更新します。 Magentoがこのnav htmlのカスタマイズを可能にするこのような理由から変更を加えたようです。

    あなたは

    if ($renderer = $this->getChild('catalog.topnav.renderer')) { 
         $renderer->setMenuTree($this->_menu)->setChildrenWrapClass($childrenWrapClass); 
         $html = $renderer->toHtml(); 
        } else { 
         $html = $this->_getHtml($this->_menu, $childrenWrapClass); 
        } 
    

    それはレンダリングブロックが定義されているかどうかをチェックし、そうでない場合、その後のnav HTML

    /** 
        * Recursively generates top menu html from data that is specified in $menuTree 
        * 
        * @param Varien_Data_Tree_Node $menuTree 
        * @param string $childrenWrapClass 
        * @return string 
        * @deprecated since 1.8.2.0 use child block catalog.topnav.renderer instead 
        */ 
        protected function _getHtml(Varien_Data_Tree_Node $menuTree, $childrenWrapClass) 
    
    を構築する非推奨の方法を使用していますMage_Page_Block_Html_Topmenuに、ライン80を見ると

    テーマのlocal.xmlでこのブロック文を試してみてください。

    <default> 
        <reference name="catalog.topnav"> 
         <block type="page/html_topmenu_renderer" name="catalog.topnav.renderer" template="page/html/topmenu/renderer.phtml"/> 
        </reference> 
    </default> 
    

    次に、あなた自身のテーマにRWDテーマからテンプレートページ/ HTML /トップメニュー/ render.phtmlをプルダウンし、ブロックを書き換えることなくカスタマイズを行うことができます。

    関連する問題