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/Categorie.php

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

任何想法为什么不拉和显示图像?我已经使用管理面板添加到类别,清除缓存并刷新数据,有什么想法吗?

Magento 和萤火虫

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  

记下从哪里提取缩略图。您需要在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;

}

后端 Magento。
1. 选择目录 > 管理类别。
2. 创建或编辑将显示子类别缩略图的主类别。
3. 在显示设置选项卡下
4. 显示模式:仅静态块
5. CMS 块:子类别清单
6. 是锚:否
7. 缩略图:选择您的文件

如果您没有看到您的编辑,请确保刷新您的 Magento 缓存。

于 2013-06-12T01:58:58.363 回答