0

对不起,我是 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。包名是Web

我应该在哪个文件中写入上述代码?BlockModelHelpercontrollers

非常感谢。

4

1 回答 1

0

在 Magento 中,要调用一个函数,我们应该在 Block 中定义该函数。这是更好的方法。我们可以使用 $this 来调用该函数。

$this->functionName()

但是我们也可以在 helper 中定义该函数,因为我们需要像下面这样调用该函数。

Mage::helper('yourmodule/yourclassfile')->prtHelloWorld();

调用模型函数会影响 MVC 模式。所以不要尝试这个。

于 2012-08-27T08:38:48.767 回答