题
我建立一个Magento的店,希望能够显示类别列表,让每个类别链接到自己的页面。
我有42的ID的“品牌”类别,并我想要显示的子类别清单,并确保每一个链接到CMS中指定的URL密钥。
有没有人有Magento的?
这样的经验解决方案
如果您知道怎么修改你的主题,此代码段将带给你当前类别的所有子类别列表(从会话,所以这应该在你的主题在任何地方工作)。我通常在应用程序中使用这个/设计/前端/默认/ 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>
其他提示
如果你想显示顶级类别和子类别U可以做到这样的..
<?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; ?>
此问题需要一个长的答案。我会点你到正确的地方。
1)的最佳解决方案是使用自由扩展。我还没有尝试过,但它会适应的目的。你将不得不做一些CSS来实现正确的外观和感觉。
http://www.magentocommerce.com/extension/1562 / magento的-易于目录图像的 演示: http://extension01.templates-master.com/gb/electronics.html
2)我不信任的模块,因为它可能会变得困难,如果供应商决定停止支持它升级。我用从以下论坛主题中的信息来创建VEW网站。看看......可能并非直线前进。您可能需要进行核心文件的一些副本到本地目录。
http://www.magentocommerce.com/boards/viewthread/3770/ P30 /
希望这将是对你有所帮助:)
我做了我如何创建自定义类上市块与Magento的这个小视频。 我相信有实现这一目标,甚至事情我可以做的更好的更好的方法,但它只是我的方法。我只是在希望它有助于解释出头一些人在那里创造了这个吧。
谢谢!
看着在Magento站点的所有解决方案之后,我发现wookiehangover的解决方案上面的工作,花了约8秒来实现。
创建UL,你可以风格。谢谢。
创建静态块之后就可以得到这个脚本的子类别中的任何名单:
$_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>";
?>
如何仅列出属于当前项目的类别。不是所有的类别的页面上。
但是,在像图的树。
CATEGORIE - 子猫1 CATEGORIE 2 - 子猫1 - 子子猫1
BR Cveto