如何将函数放入magento模块中?

时间:2012-08-27 01:47:29

标签: magento

对不起,我是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

我应该在?BlockModelHelpercontrollers

中编写上述代码的文件 非常感谢。

1 个答案:

答案 0 :(得分:0)

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

$this->functionName()

但我们也可以在helper中定义该函数,因为我们需要调用该函数,如下所示。

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

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