Ben ağır kutu çıkıyor Rehber modülü temelinde Magento, benim kendi Talep Formu Katalog oluşturmaya çalışıyorum. Ben XML dosyalarını kurdum:
- . / App / etc / modules / RequestCatalog_RequestCatalog.xml
- . / Tasarım / frontend / default / {tema} / düzeni / requestcatalog.xml
- . / Kod / local / {namespace} / {modülü} / etc / config.xml
Benim config.xml, ben 'requestcatalog' benim frontname ayarlanır ve benim modülün denetleyici kullanmak bunu söyledim. Ben ziyaret Ancak, http://app.com/requestcatalog Ben hata alırsınız:
Fatal error: Call to a member function setFormAction() on a non-object in /path/to/root/public_html/app/code/local/RequestCatalog/RequestCatalog/controllers/IndexController.php on line 55
: IndexController.php Line 55 gibi görünüyor
$this->getLayout()->getBlock('requestcatalog')->setFormAction( Mage::getUrl('*/*/post') );
Benim düzeni XML tanımlanan 'requestcatalog' adında benim blok var.
Ben, ancak hiçbir çözüm sağlandı SO aradı ve aynı sorun w / bir kullanıcı buldum: http://stackoverflow.com/questions/1098518/magento-custom-module-fatal-error-call-to-a-member-function-setformaction
Benim requestcatalog.xml:
<layout version="0.1.0">
<default>
<reference name="footer_links">
<action method="addLink" translate="label title" module="requestcatalog" ifconfig="requestcatalog/requestcatalog/enabled"><label>Request a Catalog</label><url>requestcatalog</url><title>Request a Catalog</title><prepare>true</prepare></action>
</reference>
</default>
<requestcatalog_index_index>
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
<action method="setHeaderTitle" translate="title" module="requestcatalog"><title>Request a Catalog</title></action>
</reference>
<reference name="content">
<block type="core/template" name="requestcatalog" template="requestcatalog/form.phtml"/>
</reference>
</requestcatalog_index_index>
Benim indexAction ():
public function indexAction()
{
$this->loadLayout();
$this->getLayout()->getBlock('requestcatalog')
->setFormAction( Mage::getUrl('*/*/post') );
$this->_initLayoutMessages('customer/session');
$this->_initLayoutMessages('catalog/session');
$this->renderLayout();
}