我是magento的新手,我在http://www.magentocommerce.com/magento-connect/contacts-form-captcha.html的联系我们页面中安装了一个验证码扩展程序,但它是社区添加,我的是企业。
当我访问联系我们页面时,它显示我已安装模块中的索引控制器中的错误,并且在我从我的社区文件夹中删除了文件夹(recaptcha)后,我也删除了相关的xml文件。但现在它显示错误,如
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'));
请帮我查看联系我们页面。
答案 0 :(得分:4)
我弄错了我所做的,问题出在我的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>
添加上述代码后,我的问题就解决了。
答案 1 :(得分:0)
禁用管理员以及xml文件中的模块(app/etc/modules/namespace_module.xml
)
清除magento缓存并检查。我认为它会对你有所帮助
答案 2 :(得分:0)
我也不是专家,但如果您删除了所有文件,包括“etc / modules”文件夹中的xml文件,它应该可以正常工作。请尝试清除缓存,看看会发生什么。