0

こんにちは皆さん、CSS3 Mashmenu を Magento ストアに統合しようとしています http://www.mybloggerlab.com/2012/07/mashable-drop-down-navigation-menu-for.html

製品カテゴリを表示するようにメニューを設定したいと思います。製品のサムネイルにカーソルを合わせると、そのカテゴリの各製品の簡単な説明が表示されます。

私が抱えている問題は、これを設定することです。これは、管理者からメニューを制御できるようにしたいので、動的です。

現在のコードが機能していないので、誰かが私が間違っている場所を教えてくれたらとても感謝しています。

<div id="pageContainer">
  <div class="mashmenu">
    <div class="fnav"><a href="#" class="flink"><?php echo $this->__('BROWSE PRODUCTS'); ?>+</a>
        <div class="allContent">
          <?php foreach ($_categories as $_category): ?>
            <?php if($_category->getIsActive()): ?>
                <div class="snav"><a href="#" class="slink">
                  <a href="<?php echo $this->getCategoryUrl($_category) ?>"<?php if ($this->isCategoryActive($_category)): ?> class="current"<?php endif; ?>><?php echo $this->htmlEscape($_category->getName()) ?></a> (<?php echo $_category->getProductCount() ?>)</a>
                  <?php $collection = $_category->getProductCollection()->addAttributeToSort('name', 'asc'); ?>
                  <?php foreach ($collection as $_product) : ?>
                    <div class="insideContent"> 
                      <a href="<?php echo $this->getProductUrl($_product) ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>" class="product-image">
                        <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(75) ?>" width="75" height="75" alt="<?php echo $this->stripTags($_product->getName(), null, true) ?>" />
                      </a> 
                      <span>  <?php $sdesc = $_product->getShortDescription();
                      $sdesc = trim($sdesc);
                      $limit = 170;
                      if (strlen($sdesc) > $limit) {
                        $sdesc = substr($sdesc, 0, strrpos(substr($sdesc, 0, $limit), ' '));
                      } ?>
                      <?php echo $sdesc."..."; ?></span> 
                    </div>
                  <?php endforeach; ?> 
                </div>
            <?php endif; ?>
          <?php endforeach; ?>
          <!-- end insideContent -->
        </div>
      </div>
    </div>
  </div>
  <script>
    $j(document).ready(function(){
      $j('div.mashmenu img').css({"width":"100px","height":"60px"});
      $j('div.mashmenu').find('.allContent').css({"top":"38px"});

      $j('div.mashmenu').mouseleave(function(){
        $j('div.mashmenu .allContent').show('50');
        $j('div.mashmenu .insideContent').fadeOut('50');
      }); 

      $j('.flink').mouseenter(function(){
        $j('div.mashmenu .allContent').show('50');
        $j(this).parent('.fnav').children('.allContent').show(200);
      });

      $j('.slink').mouseenter(function(){
        if($j(this).parent('.snav').children('.insideContent').find('a').size() != 0 )
          $j(this).parents('.allContent').css({"width":"640px","height":"500px"});
        else $j(this).parents('.allContent').css({"width":"auto","height":"auto"});
          $j('div.mashmenu .insideContent').fadeOut('50');
        $j(this).parent('.snav').children('.insideContent').fadeIn(200);
      });

      $j('.snav').mouseleave(function(){
        $j(this).parents('.allContent').css({"width":"auto","height":"auto"});
      });

      $j('.snav').mouseenter(function(){
        $j(this).children('.insideContent').css({"display":"block","position":"absolute","width":"auto","height":"450px"});
      });
    });
  </script>
<?php endif; ?>
4

1 に答える 1

0
<div class="insideContent"> 
<a href="<?php echo $this->getProductUrl($_product) ?>" title="<?php echo    $this->stripTags($_product->getName(), null, true) ?>" class="product-image"><img src="<?php     echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(75) ?>" width="75" height="75" alt="<?php echo $this->stripTags($_product->getName(), null, true) ?>" /></a> <span>  <?php $sdesc = $_product->getShortDescription();
                $sdesc = trim($sdesc);
                $limit = 170;
                if (strlen($sdesc) > $limit) {
                    $sdesc = substr($sdesc, 0, strrpos(substr($sdesc, 0, $limit), ' '));
                } ?>
                <?php echo $sdesc."..."; ?></span> 
</div>

$ _productはここでは定義されていません。さらに、カテゴリごとに1つの製品しかないので、どれを表示しますか?

これを次のようなものに置き換えます:

<?php $collection =   Mage::getModel('catalog/product')->getCollection()->addCategoryFilter($_category)->setPageSize(4);
<div class="insideContent"> 
<?php foreach ($collection as $_product)  { ?>
//Your product here, copy your code
<?php } /*end foreach*/ ?>
</div>

このようにうまくいくはずです。

于 2012-11-28T10:57:32.630 に答える