1

私はこれを機能させようとしましたが、運がありませんでした。基本的に、コンテンツ ブロックにメイン メニュー カテゴリを表示する必要がありましたが、コンテンツ ブロック内のカテゴリ名の横にサムネイル カテゴリを表示する必要があります。app/desing/fronend/default/THEME/template/catalog/navigation/category_listing.php 内に次のような新しいカスタム モジュールを作成しました。

<div class="box layered-nav">
    <div class="head">
    </div>
    <div class="border-creator">
      <div class="narrow-by">
          <dl id="narrow-by-list">

         <dd>
         <ol>        
        <?php foreach ($this->getStoreCategories() as $_category): ?>
            <dt>
             <a href="<?php echo $this->getCategoryUrl($_category) ?>"<?php if ($this->isCategoryActive($_category)): ?> class="active"<?php endif ?>><?php echo $this->htmlEscape($_category->getName()) ?>
             <img src="<?php echo $_category->getThumbnailUrl() ?>" width="100" height="100" style="background:red; height: 100px; width: 100px; display: block" alt="<?php echo $this->htmlEscape($_category->getName()) ?>" />
             </a> 

            </dt>
        <?php endforeach ?>

       </ol>
      </dd>
      </dl><script type="text/javascript">decorateDataList('narrow-by-list')</script>
    </div>
   </div>
</div>

そして、これを app/code/core/Mage/Catalog/model/Category.php に追加しています

            public function getThumbnailUrl()
            {
                $url = false;
                if ($image = $this->getThumbnail()) {
                    $url = Mage::getBaseUrl('media').'catalog/category/'.$image;
                }
                return $url;
            }

画像を引っ張って表示しないのはなぜですか?管理パネルを使用して既にカテゴリに追加し、キャッシュをクリアしてデータを更新しました。何かアイデアはありますか?

マジェントとファイアーバグ

4

3 に答える 3

5

以下の関数を使用して、カテゴリのサムネイル画像を表示します

   public function getThumbnailImageUrl() 
   {
      $url = false;

      if ($image = $this->getThumbnail()) {

         $url = Mage::getBaseUrl('media').'catalog/category/'.$image;
      }
      return $url;
   }

次に、任意のカテゴリに使用します。

$_imageUrl=$this->getCurrentCategory()->getThumbnailImageUrl()

サムネイル画像を取得できます。

この記事を参照してください http://www.douglasradburn.co.uk/getting-category-thumbnail-images-with-magento/

于 2012-10-30T05:52:46.333 に答える
1

app/code/local/Mage/Catalog/Model/Category.php を変更する必要はありません

これらのコード行を使用して簡単に実行できます...これを試してください...その作品

$child= Mage::getSingleton('catalog/layer')->getCurrentCategory()->getId();

$imageSrc = Mage::getModel('catalog/category')->load($child)->getThumbnail();

$ThumbnailUrl = Mage::getBaseUrl('media').'catalog/category/'.$imageSrc;

echo "<img src='{$ThumbnailUrl}' />";
于 2013-09-04T12:37:55.337 に答える
1

これがMagento 1.7.0.2で動作する私のソリューション

です sub-categories.phtmlファイルを作成します

Location: app/design/fronend/YOUR-THEME/default/template/catalog/navigation/sub-categories.phtml  

サムネイル画像をどこから取得するかをメモします。以下に、Web サイトの絶対パスを追加する必要がありwww.yourwebsitenamehere.comます。

sub-categories.phtml ファイルの内容:

<div id="categories">
  <?php $_maincategorylisting = $this->getCurrentCategory() ?>
  <?php $_categories = $this->getCurrentChildCategories() ?>
  <?php if($_categories->count()): ?>
     <? foreach($_categories as $_category): ?>
        <? if($_category->getIsActive()):
           $cur_category = Mage::getModel('catalog/category')->load($_category->getId());
           $layer = Mage::getSingleton('catalog/layer');
           $layer->setCurrentCategory($cur_category);
           $catName = $this->getCurrentCategory()->getName();
           if($_imageUrl = !$this->getCurrentCategory()->getThumbnailImageUrl()):
              ?>
              <?php /* Default subcategory jpg if no image exists */ ?>
              <div class="category-box">
                 <div class="category-image-box">
                    <a href="<?php echo $this->getCategoryUrl($_category) ?>">
                       <img src="<?php echo $this->getSkinUrl('images/subcategory-default.jpg') ?>">
                    </a>
                 </div>
                 <div>
                    <p>
                       <a href="<?php echo $this->getCategoryUrl($_category) ?>"> <?php echo $catName ?></a>
                    </p>
                 </div>
              </div>
           <? endif ?>
           <? if($_imageUrl = $this->getCurrentCategory()->getThumbnailImageUrl()): ?>
           <?php /* Displays the subcategory image */ ?>
           <div class="category-box">
              <div class="category-image-box">

                 <a href="<?php echo $this->getCategoryUrl($_category) ?>">
                    <img src="http://www.yourwebsitenamehere.com/media/catalog/category/<?php echo $_imageUrl ?>">
                 </a>
              </div>
              <div>
                 <p>
                    <a href="<?php echo $this->getCategoryUrl($_category) ?>"> <?php echo $_category->getName() ?></a>
                 </p>
              </div>
           </div>
        <? endif; endif; ?>
     <? endforeach ?>
     <?php $layer->setCurrentCategory($_maincategorylisting); ?>
   <? endif; ?>
</div>

静的ブロックを作成します。
1. ブロックのタイトル: サブカテゴリ
のリスト 2. 識別子: サブカテゴリ
3. コンテンツ:{{block type="catalog/navigation" template="catalog/navigation/sub-categories.phtml"}}

Category.php ファイルを作成
に コピーapp/code/core/Mage/Catalog/Model/Category.phpapp/code/local/Mage/Catalog/Model/Category.phpます。コピーしたら、ファイルを編集します。

ファイル内に入ったら、491 行目付近を調べます。次を見つけます。

public function getImageUrl()
{
    $url = false;
    if ($image = $this->getImage()) {
        $url = Mage::getBaseUrl('media').'catalog/category/'.$image;
    }
    return $url;
}

この貼り付けの後:

/**
 * Retrieve thumbnail image URL
 *
 * @return string
 */
public function getThumbnailImageUrl($fullpath = false)
{

  $url = false;

  if ($image = $this->getThumbnail()) {

      if ($fullpath == true) {
          $url = Mage::getBaseUrl('media').'catalog/category/'.$image;
      } else {
          $url = $image;
     }
  }

  return $url;

}

バックエンドのマジェント。
1. [カタログ] > [カテゴリの管理] を選択します。
2. サブカテゴリのサムネイルを表示するメイン カテゴリを作成または編集します。
3. 表示設定タブの下
4. 表示モード: 静的ブロックのみ
5. CMS ブロック: サブカテゴリ リスト
6. アンカー: いいえ
7. サムネイル画像: ファイルを選択

編集内容が表示されない場合は、Magento キャッシュを必ずフラッシュしてください。

于 2013-06-12T01:58:58.363 に答える