动态Magento顶级类别页面

时间:2013-06-19 20:06:08

标签: magento templates dynamic categories php

我正在重新设计一个客户端的顶级类别页面,我希望通过使其具有动态性来面向未来的设计。为了进一步澄清,我希望每当客户端添加,编辑或删除当前级别以下的类别时,它都会反映在前端而不需要编辑代码。

现在,我发现了一些关于该主题的博客文章,甚至还有一篇论坛帖子: http://www.templatemonster.com/help/magento-listing-sub-categories-on-a-category-page.html how to display thumbnail from category using getThumbnailUrl() in Magento

然而,这些都是以不同的方式处理它。 Stack帖子也引导我: http://www.douglasradburn.co.uk/getting-category-thumbnail-images-with-magento/

我发现我需要添加拉动缩略图的功能(Magento的方式)。但是,这就是我需要的!这里的最终目标是使用类别后端的缩略图,而不是图像。我们正在按照预期在其他地方使用Image。我还希望能够从后端到前端引入类别描述,以便添加一些额外的信息,如链接,真实描述等。

如果有人可以帮助我吗?我浏览了上面的例子和链接,但是,Thumbnail图像并没有拉到前端,总的来说,我只是得到了一些奇怪的行为。当我自己进一步研究时,任何提示都会受到赞赏。

谢谢!

2 个答案:

答案 0 :(得分:0)

请尝试以下代码。我用这个

实现了同样的功能
<?php $category_path          =    Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA)."catalog/category/"; ?>
<?php if (!Mage::registry('current_category')) return ?>
<?php $_categories = $this->getCurrentChildCategories() ?>
<?php $_count = is_array($_categories)?count($_categories):$_categories->count(); ?>
<?php if($_count): ?>
    <div class="static-page-listing static-page-listing1">
        <ul class="products-grid">
            <?php $num = 0; ?>
             <?php foreach ($_categories as $_category): ?>
                 <?php if($_category->getIsActive()): 
                 $num++;
                    $selImage      =    "SELECT value FROM catalog_category_entity_varchar WHERE attribute_id = '126' AND entity_id = '".$_category->getId()."'";
                    $catImage      =    Mage::getSingleton('core/resource')->getConnection('core_read')->fetchOne($selImage);
                    if(!$catImage)  $catImage = "no_image.jpg"; ?>
                    <li class="category-item  <?php if($num%2==0) echo 'item-right'?>">
                        <a href="<?php echo $this->getCategoryUrl($_category) ?>">
                        <div style="float:left; width:100%;">
                                <img src="<?php echo $category_path.$catImage?>">
                        </div>
                        <div>
                            <h3><?php echo $this->htmlEscape($_category->getName()) ?></h3>
                            <h6 style = "color:red;">VIEW ALL</h6>
                        </div>
                         </a>
                    </li>

                 <?php endif; ?>
              <?php endforeach ?>
        </ul>
    </div>
<?php endif; ?>

答案 1 :(得分:0)

NEW UPDATE:

以下代码有效:

<?php echo $cur_category->getDescription(); ?>

但是,您需要确保检查您的范围!没有意识到我的个人商店范围没有被检查以遵循“所有范围”的默认值,我修复了这一点,并且上面的代码在添加到“描述”区域时对我有效!

谢谢Stack!

上一次更新:

我现在有代码工作,我在网上找到,它涉及我添加一个功能来拉取类别缩略图。有用!以下是模板的标记:

<div class="category-products">
<ul class="products-grid">

        <?php
            $_categories=$this->getCurrentChildCategories();

            if($_categories->count()):
                $categorycount = 0;

            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 ($categorycount == 0){
                $class = "first";
            }

            elseif ($categorycount == 3){
                $class = "last";
            }

            else{
                $class = "";
            }
        ?>


    <li class="item <?=$class?>">
        <a href="<?php echo $cur_category->getURL() ?>" title="<?php echo $this->htmlEscape($cur_category->getName()) ?>">
            <img src="<?php echo $cur_category->getThumbnailUrl() ?>" width="100" alt="<?php echo $this->htmlEscape($cur_category->getName()) ?>" />
        </a>

        <h2>
            <a href="<?php echo $cur_category->getURL() ?>" title="<?php echo $this->htmlEscape($cur_category->getName()) ?>">
                <?php echo $this->htmlEscape($cur_category->getName()) ?>
            </a>
        </h2>

        <p>
            DESCRIPTION
        </p>
    </li>

        <?php
            endif;
            if($categorycount == 3){
                $categorycount = 0;

                echo "</ul>\n\n<ul class=\"products-grid\">";
            }

            else{
                $categorycount++;
            }

            endforeach;
            endif;
        ?>

</ul>

现在,在您看到“DESCRIPTION”的地方,我想从后端提取类别描述数据并将其输出到那里。基本上,允许动态创建/修订顶级类别页面。

我怎么能拉出描述呢?我不是Magento的专家,也许我错过了一些基本的东西,但我无法让它发挥作用。

谢谢!