在渲染404页面之前发送事件调度"找不到文件"

时间:2016-02-16 11:33:33

标签: magento

我的意图很简单,我只是想以不同的格式获取我的网页

e.g www.my-site.com/product-name.html - 将以html

加载页面

但是当我输入

时我想要一个json对象

www.my-site.com/product-name.json

如果他们是在渲染404页面之前发送磁盘的任何事件,那可能非常有帮助

或者我必须重写app / code / core / Mage / Cms / controllers / indexcontroller.php 或多或少

 public function defaultNoRouteAction()
{
    $this->getResponse()->setHeader('HTTP/1.1','404 Not Found');
    $this->getResponse()->setHeader('Status','404 File not found');

    $this->loadLayout();
    $this->renderLayout();
}

但我不知道如何。

1 个答案:

答案 0 :(得分:0)

我做了类似的事情,在使用.xml而不是.html调用product-url时导出产品数据。

我添加了一个监听产品保存事件的观察者,它将product-xml URL添加到core_url_rewrite中。 在那种情况下,您已将.hml(l)替换为.xml

e.g。

product-name.htm - >目录/产品/ view / id / 4 - >加载ID为4的产品并渲染产品视图模板magento core

product-name.xml - > mycustommodule / product / view / id / 4 - >加载ID为4的产品并呈现XML,自定义模块

所以你必须添加一个名为“mycustommodule”的模块来处理xml输出。

干杯!