2014-12-20 34 views
0

我正在创建一个新的模块,它将记录联系我们页面的所有数据。 和所有数据信息将显示在管理面板中。管理控制器不能在客户端工作Magento

我在config.xml中下面的代码

<?xml version="1.0"?> 
<config> 
<modules> 
    <Vampi_Contactsform> 
     <version>1.0.0</version> 
    </Vampi_Contactsform> 
</modules> 

<global> 
    <models> 
     <vampi_contactsform> 
      <class>Vampi_Contactsform_Model</class> 
      <resourceModel>vampi_contactsform_mysql4</resourceModel> 
     </vampi_contactsform> 
    </models> 

    <resources> 
     <vampi_setup> 
      <setup> 
       <module>Vampi_Contactsform</module> 
      </setup> 
      <connection> 
       <use>core_setup</use> 
      </connection> 
     </vampi_setup> 
     <vampi_write> 
      <connection> 
       <use>core_write</use> 
      </connection> 
     </vampi_write> 
     <vampi_read> 
      <connection> 
       <use>core_read</use> 
      </connection> 
     </vampi_read> 
    </resources> 

    <blocks> 
     <vampi_contactsform> 
      <class>Vampi_Contactsform_Block</class> 
     </vampi_contactsform> 
    </blocks> 

    <helpers> 
     <vampi_contactsform> 
      <class>Vampi_Contactsform_Helper</class> 
     </vampi_contactsform> 
    </helpers> 
</global> 

<admin> 
    <routers> 
     <adminhtml> 
      <args> 
       <modules> 
        <vampi_contactsform before="Mage_Adminhtml">Vampi_Contactsform_Adminhtml</vampi_contactsform> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 

<frontend> 
    <routers> 
     <contactsform> 
      <args> 
       <modules> 
        <vampi_contactsform before="Mage_Contactsform">Vampi_Contactsform</vampi_contactsform> 
       </modules> 
      </args> 
     </contactsform> 
    </routers> 
</frontend>  

和我的应用程序\代码\社区\ Vampi \ Contactsform \控制器\ Adminhtml \ contactsformController.php包含

<?php 
class Vampi_Contactsform_Adminhtml_ContactsformController extends Mage_Adminhtml_Controller_Action{ 

public function indexAction() 
{ 
    $this->_title($this->__('Sales'))->_title($this->__('Contact Enquiries')); 
    $this->loadLayout(); 
    $this->_setActiveMenu('report/contactsform'); 
    $this->_addContent($this->getLayout()->createBlock('vampi_contactsform/adminhtml_contactsform_list')); 
    $this->renderLayout(); 
} 

public function deleteAction() { 
    $orderIds = $this->getRequest()->getPost('order_ids', array()); 
    $countNonCancelOrder = 0; 

    foreach ($orderIds as $orderId) { 
     $db = Mage::getSingleton('core/resource')->getConnection('core_write'); 
     $contact_form = Mage::getSingleton("core/resource")->getTableName('contact_form'); 
     $db->delete($contact_form, "id = $orderId"); 

     $countNonCancelOrder++; 
    } 

    if ($countNonCancelOrder) { 
      $this->_getSession()->addError($this->__('%s enquiry(s) deleted', $countNonCancelOrder)); 
    } 

    $this->_redirect('*/*/'); 
} 

public function gridAction() 
{ 
    $this->loadLayout(); 
    $this->getResponse()->setBody(
      $this->getLayout()->createBlock('vampi_contactsform/adminhtml_contactsform_list_grid')->toHtml() 
    ); 
} 
} 

请帮忙

这是给404打开页面时出错fr om Magento管理面板。

谢谢

+0

嗨,你能给我们打电话的网址吗?这可能是网址中的错误。另外,您需要通过添加adminhtml.xml文件来为您的新页面添加acl(授权)。 –

+0

url是http://localhost/magentotest/index.php/admin/contactsform 它工作正常,但在客户端它不工作。 –

回答

0

该控制器是基于管理会话生成的。 而且你不能共享管理员和前端会话,这就是为什么当前端404没有找到呼叫时。

无论如何,从后端调用前端操作并不是一个好习惯。 你应该有2个独立的控制器,一个用于后端,另一个用于前端。 为了不重复代码,您可以将所有内容都放在帮助器中的方法中,并在两个控制器中调用该方法。

+0

我有单独的控制器。它是管理员控制器。如果我做错了什么,请指导我。 –

+0

您使用什么网址访问生成404未找到的前端? ,因为前端网址不同于后端 – Dexxtz

+0

当我在管理面板中打开网格时,它会转到404找不到页面。 –

0

不能给你一个在盘子上的现成答案,但如果你按照这article你应该是好的。请注意底部的调试部分。它应该帮助你找出问题所在。

0

对不起,这是我命名控制器的愚蠢错误。 我已经将contactsformController.php更名为ContactsformController.php