Magento:创建自定义控制器

时间:2013-09-30 12:27:50

标签: magento magento-1.7

我创建了一个新闻模块。它工作得很好..

http://domain.com/magento/news

此页面显示所有新闻项目。标题,内容和日期。

我希望在用户点击查看更多链接时查看更多内容链接,它会将用户重定向到特定的 newsitem 页面

http://domain.com/magento/news/newsitem-1

我使用以下代码创建了另一个控制器newsitemController.php:

  public function infoAction(){

$this->loadLayout();
$this->getLayout()->getBlock('content')
     ->append($this->getLayout()->createBlock('news/newsitem')  );
$this->renderLayout();
}

还创建了块名称info.php,代码如下:

public function _prepareLayout()
    {
        return parent::_prepareLayout();
    }

    public function getnewsitem()    
    { 
        if(!$this->hasData('news')) {
            $this->setData('news', Mage::registry('news'));
        }
        return $this->getData('news');
    }

没有得到输出..

需要帮助才能获得输出。

1 个答案:

答案 0 :(得分:0)

info.php 中添加以下函数以获取新闻项的网址。

public function getItemUrl($newsItem)
{
    return $this->getUrl('*/*/view', array('id' => $newsItem->getId()));
}

在您的控制器中添加以下功能以查看新闻详细信息页面。

 public function viewAction()
  {
       $model = Mage::getModel('magentostudy_news/news');
       $model->load($newsId);
       $this->loadLayout();
       $itemBlock = $this->getLayout()->getBlock('news.info');
       $this->renderLayout();

  }

通过这样做,你可以简单地访问附加此链接的信息页面,阅读更像是

 foreach ($this->getCollection() as $newsItem)
 {
 //Other Code
 <a href="<?php echo $this->getItemUrl($newsItem) ?>">Read More..</a>
 }