【问题标题】:Contact us page error in magentoMagento中的联系我们页面错误
【发布时间】:2014-08-13 12:11:07
【问题描述】:
我是 magento 的新手,我在http://www.magentocommerce.com/magento-connect/contacts-form-captcha.html 的联系我们页面中安装了一个验证码扩展程序,但它是社区添加的,我的是企业。
当我访问联系我们页面时,它在我安装的模块中的索引控制器中显示错误,并且在我从社区文件夹和相关 xml 文件中删除了文件夹(recaptcha)之后,我也删除了。但现在它显示像
这样的错误
Fatal error: Call to a member function setFormAction() on a non-object in /var/www/myapp/app/code/core/Mage/Contacts/controllers/IndexController.php on line 55
第55行的代码是
$this->getLayout()->getBlock('contactForm')->setFormAction(Mage::getUrl('*/*/post'));
请帮我查看联系我们页面。
【问题讨论】:
标签:
php
magento
magento-1.7
magento-1.8
magento-1.9
【解决方案1】:
我做错了,问题出在我的 layouts/contacts.xml 文件中。
我正在调用索引控制器中的块,但布局中不存在该块
$this->getLayout()->getBlock('contactForm')->setFormAction(Mage::getUrl('*/*/post'));
布局中缺少'contactForm'块
<contacts_index_index translate="label">
<label>Contact Us Form</label>
<reference name="head">
<action method="setTitle" translate="title" module="contacts"><title>Contact Us</title></action>
</reference>
<reference name="content">
<block type="core/template" name="contactForm" template="contacts/form.phtml">
</reference>
</contacts_index_index>
添加上面的代码后,我的问题就解决了。
【解决方案2】:
从管理员以及将在 (app/etc/modules/namespace_module.xml) 中的 xml 文件中禁用该模块
清除magento缓存并检查。我想对你有帮助
【解决方案3】:
我也不是专家,但如果您已删除“etc/modules”文件夹中的所有文件,包括 xml 文件,它应该可以工作。尝试清除缓存,看看会发生什么。