我正在建立一个Magento商店,希望能够显示一个类别列表,并将每个类别链接到自己的页面。
我有一个ID为42的'品牌'类别,我想显示一个子类别列表,并确保每个子类别链接到CMS中的指定URL密钥。
有没有人有过与Magento合作的经验?
答案 0 :(得分:17)
如果您对编辑主题感到满意,此代码段将为您提供当前类别的所有子类别的列表(来自会话,因此这应该适用于您的主题中的任何位置)。我通常在app / design / frontend / default / theme_name /template/catalog/category/view.phtml
中使用它<?php
$_category = $this->getCurrentCategory();
$collection = Mage::getModel('catalog/category')->getCategories($_category->entity_id);
$helper = Mage::helper('catalog/category');
?>
<ul>
<?php foreach ($collection as $cat):?>
<?php if($_category->getIsActive()):?>
<?php
$cur_category = Mage::getModel('catalog/category')->load($cat->getId());
$_img = $cur_category->getImageUrl();
?>
<li>
<a href="<?php echo $helper->getCategoryUrl($cat);?>">
<img src="<?php echo $_img?>" title="<?php echo $cat->getName();?>"/>
<cite><?php echo $cat->getName();?></cite>
</a>
</li>
<?php endif?>
<?php endforeach;?>
</ul>
答案 1 :(得分:4)
如果您想要显示顶级类别和子类别,您可以像这样做..
<?php $_helper = Mage::helper('catalog/category') ?>
<?php $_categories = $_helper->getStoreCategories() ?>
<?php $currentCategory = Mage::registry('current_category') ?>
<?php if (count($_categories) > 0): ?>
<ul>
<?php foreach($_categories as $_category): ?>
<li>
<a href="<?php echo $_helper->getCategoryUrl($_category) ?>">
<?php echo $_category->getName() ?>
</a>
<?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?>
<?php $_subcategories = $_category->getChildrenCategories() ?>
<?php if (count($_subcategories) > 0): ?>
<ul>
<?php foreach($_subcategories as $_subcategory): ?>
<li>
<a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>">
<?php echo $_subcategory->getName() ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
用于显示顶级类别和当前类别子类别,您可以这样做....
<?php $_helper = Mage::helper('catalog/category') ?>
<?php $_categories = $_helper->getStoreCategories() ?>
<?php $currentCategory = Mage::registry('current_category') ?>
<?php if (count($_categories) > 0): ?>
<ul>
<?php foreach($_categories as $_category): ?>
<li>
<a href="<?php echo $_helper->getCategoryUrl($_category) ?>">
<?php echo $_category->getName() ?>
</a>
<?php if ($currentCategory && $currentCategory->getId() == $_category->getId()): ?>
<?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?>
<?php $_subcategories = $_category->getChildrenCategories() ?>
<?php if (count($_subcategories) > 0): ?>
<ul>
<?php foreach($_subcategories as $_subcategory): ?>
<li>
<a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>">
<?php echo $_subcategory->getName() ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
答案 2 :(得分:2)
这个问题需要很长的答案。我会把你指向正确的地方。
1)最佳解决方案是使用免费扩展。我没有尝试过,但它符合目的。你必须做一些CSS来实现正确的外观和感觉。
http://www.magentocommerce.com/extension/1562/magento-easy-catalog-images 演示:http://extension01.templates-master.com/gb/electronics.html
2)我不信任模块,因为如果供应商决定停止支持它可能会变得难以升级。我使用了以下论坛帖子中的信息来创建一个vew网站。看看......可能不会直截了当。您可能必须将核心文件的一些副本复制到本地目录。
http://www.magentocommerce.com/boards/viewthread/3770/P30/
希望这会对你有所帮助:)。
答案 3 :(得分:1)
我制作了一个关于如何使用Magento创建自定义类别列表块的小视频。 我相信有更好的方法可以实现这一点,甚至可以做得更好,但这只是我的方法。我只创造了它,希望它能帮助向某些人解释一些事情。
Magento Custom Category Listing Block
谢谢!
答案 4 :(得分:1)
创建一个可以设计样式的UL。谢谢。
答案 5 :(得分:1)
创建静态块后,您可以通过此脚本获取子类别的任何列表:
$_helper = Mage::helper('catalog/category');
$_category = Mage::getModel('catalog/category')->load(5);
$_subcategories = $_category->getChildrenCategories();
if (count($_subcategories) <= 0) { return; }
$count = 0;
foreach($_subcategories as $_category) {
$category = Mage::getModel('catalog/category')->load($_category->getId());
$ret->{"object_".$count} ->url = $_helper->getCategoryUrl($_category);
$ret->{"object_".$count} ->name = $_category->getName();
$ret->{"object_".$count} ->id = $_category->getId();
$ret->{"object_".$count} ->image = $category->getImageUrl();
$count++;
}
return $ret;
}
$list = list_subcategories(5);
echo "<pre>"; print_r($list); echo "</pre>";
?>
答案 6 :(得分:-1)
如何仅列出属于当前项目的类别。不是页面上的所有类别。
但是在像树一样的树上。
CATEGORIE - sub cat 1 CATEGORIE 2 - sub cat 1 - sub sub cat 1
BR Cveto