管理员控制器不在客户端Magento工作

时间:2014-12-20 08:30:23

标签: php magento magento-1.8

我正在创建一个新模块,它将记录来自联系我们页面的所有数据。 并且所有数据信息都将显示在管理面板中。

我在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>    

和我的app \ code \ community \ Vampi \ Contactsform \ controllers \ 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()
    );
}
}

请帮忙

这是从Magento管理面板打开页面时出现404错误。

由于

3 个答案:

答案 0 :(得分:0)

控制器是基于管理会话生成的。 并且您无法共享管理员和前端会话,这就是为什么从前端404发出呼叫时找不到的。

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

答案 1 :(得分:0)

无法在拼盘上给你一个准备好的答案,但是如果按照这个article你应该是好的。注意底部的Debugging部分。它应该可以帮助你找出问题所在。

答案 2 :(得分:0)

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