对不起,我是magento的新手。现在,以下代码可以在同一类别上获得rand产品。将代码放入 view.phtml 。
<!--for show other product-->
<?php $categories = $_product->getCategoryIds(); ?>
<?php
$result = array();
foreach($categories as $cat_id) {
$category = Mage::getModel('catalog/category');
$category->load($cat_id);
$collection = $category->getProductCollection();
foreach ($collection as $product) {
$result[] = $product->getId();
}
}
?>
<div class="box-others-also-like">
<ul>
<?php
if(sizeof($result) >= 5)
{
$ourneed = array_rand($result,5);
foreach($ourneed as $cc)
{
$thisproduct= Mage::getModel('catalog/product')->load($result[$cc]);
?>
<li>
<a href="<?php echo $thisproduct->getProductUrl(); ?>" title="<?php echo $thisproduct->getName(); ?>" ><img src="<?php echo $this->helper('catalog/image')->init($thisproduct, 'small_image')->resize(200) ?>" width="200" height="200" alt="<?php echo $thisproduct->getName(); ?>" /></a>
</li>
<?php } ?>
<?php
}else
{
foreach($result as $cc)
{
$thisproduct= Mage::getModel('catalog/product')->load($cc);
?>
<li>
<a href="<?php echo $thisproduct->getProductUrl(); ?>" title="<?php echo $thisproduct->getName(); ?>" ><img src="<?php echo $this->helper('catalog/image')->init($thisproduct, 'small_image')->resize(200) ?>" width="200" height="200" alt="<?php echo $thisproduct->getName(); ?>" /></a>
</li>
<?php
}
}
?>
</ul>
</div>
<!--for show other product-->
现在,我想把这个功能放在一个模块中,我该怎么办?假设我已经创建了模块的骨架。模块名称是 Rand 。 packagename是 Web 。
我应该在?Block
或Model
或Helper
或controllers
答案 0 :(得分:0)
在Magento中,要调用一个函数,我们应该在Block中定义该函数。这是更好的方式。我们可以使用$ this调用该函数。
$this->functionName()
但我们也可以在helper中定义该函数,因为我们需要调用该函数,如下所示。
Mage::helper('yourmodule/yourclassfile')->prtHelloWorld();
调用模型函数将影响MVC模式。所以不要试试这个。