Я разрабатываю пользовательскую сетку администратора, в которой у меня появляется ошибка, как показано ниже
(!) Неустранимая ошибка: класс 'Mage_Modulebackend_Helper_Data' не найден в D: \ wamp \ www \ projectname \ app \Mage.php в строке 547
Ниже приведен код
D: \ wamp \ www \ имя_проекта \ app \ code \ local \ Career \ Module \ Block \ Adminhtml\ Modulebackend.php
class Career_Module_Block_Adminhtml_Modulebackend extends Mage_Adminhtml_Block_Widget_Grid_Container{
public function __construct(){
$this->_controller = "adminhtml_modulebackend";
$this->_blockGroup = "module";
$this->_headerText = Mage::helper("module")->__("Module Manager");
$this->_addButtonLabel = Mage::helper("module")->__("Add New Item");
parent::__construct();
}
}
D: \ wamp \ www \ имя проекта \ app \ code \ local \ Career \ Module \ controllers \ Adminhtml \ ModulebackendController.php
<?php
class Career_Module_Adminhtml_ModulebackendController extends Mage_Adminhtml_Controller_Action
{
protected function _isAllowed()
{
//return Mage::getSingleton('admin/session')->isAllowed('module/module');
return true;
}
protected function _initAction()
{
$this->loadLayout()->_setActiveMenu("modulebackend/modulebackend")->_addBreadcrumb(Mage::helper("adminhtml")->__("Module Manager"),Mage::helper("adminhtml")->__("Module Manager"));
return $this;
}
public function indexAction()
{
$this->_title($this->__("Module"));
$this->_title($this->__("Manager Module"));
$this->_initAction();
$this->renderLayout();
}
public function editAction()
{
$this->_title($this->__("Module"));
$this->_title($this->__("Module"));
$this->_title($this->__("Edit Item"));
$id = $this->getRequest()->getParam("id");
$model = Mage::getModel("modulebackend/modulebackend")->load($id);
if ($model->getId()) {
Mage::register("module_data", $model);
$this->loadLayout();
$this->_setActiveMenu("modulebackend/modulebackend");
$this->_addBreadcrumb(Mage::helper("adminhtml")->__("Module Manager"), Mage::helper("adminhtml")->__("Module Manager"));
$this->_addBreadcrumb(Mage::helper("adminhtml")->__("Module Description"), Mage::helper("adminhtml")->__("Module Description"));
$this->getLayout()->getBlock("head")->setCanLoadExtJs(true);
$this->_addContent($this->getLayout()->createBlock("modulebackend/adminhtml_module_edit"))->_addLeft($this->getLayout()->createBlock("modulebackend/adminhtml_module_edit_tabs"));
$this->renderLayout();
}
else {
Mage::getSingleton("adminhtml/session")->addError(Mage::helper("module")->__("Item does not exist."));
$this->_redirect("*/*/");
}
}
public function newAction()
{
$this->_title($this->__("Module"));
$this->_title($this->__("Module"));
$this->_title($this->__("New Item"));
$id = $this->getRequest()->getParam("id");
$model = Mage::getModel("module/module")->load($id);
$data = Mage::getSingleton("adminhtml/session")->getFormData(true);
if (!empty($data)) {
$model->setData($data);
}
Mage::register("module_data", $model);
$this->loadLayout();
$this->_setActiveMenu("module/module");
$this->getLayout()->getBlock("head")->setCanLoadExtJs(true);
$this->_addBreadcrumb(Mage::helper("adminhtml")->__("Module Manager"), Mage::helper("adminhtml")->__("Module Manager"));
$this->_addBreadcrumb(Mage::helper("adminhtml")->__("Module Description"), Mage::helper("adminhtml")->__("Module Description"));
$this->_addContent($this->getLayout()->createBlock("module/adminhtml_module_edit"))->_addLeft($this->getLayout()->createBlock("module/adminhtml_module_edit_tabs"));
$this->renderLayout();
}
public function saveAction()
{
$post_data=$this->getRequest()->getPost();
if ($post_data) {
try {
$model = Mage::getModel("module/module")
->addData($post_data)
->setId($this->getRequest()->getParam("id"))
->save();
Mage::getSingleton("adminhtml/session")->addSuccess(Mage::helper("adminhtml")->__("Module was successfully saved"));
Mage::getSingleton("adminhtml/session")->setModuleData(false);
if ($this->getRequest()->getParam("back")) {
$this->_redirect("*/*/edit", array("id" => $model->getId()));
return;
}
$this->_redirect("*/*/");
return;
}
catch (Exception $e) {
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
Mage::getSingleton("adminhtml/session")->setModuleData($this->getRequest()->getPost());
$this->_redirect("*/*/edit", array("id" => $this->getRequest()->getParam("id")));
return;
}
}
$this->_redirect("*/*/");
}
public function deleteAction()
{
if( $this->getRequest()->getParam("id") > 0 ) {
try {
$model = Mage::getModel("module/module");
$model->setId($this->getRequest()->getParam("id"))->delete();
Mage::getSingleton("adminhtml/session")->addSuccess(Mage::helper("adminhtml")->__("Item was successfully deleted"));
$this->_redirect("*/*/");
}
catch (Exception $e) {
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
$this->_redirect("*/*/edit", array("id" => $this->getRequest()->getParam("id")));
}
}
$this->_redirect("*/*/");
}
public function massRemoveAction()
{
try {
$ids = $this->getRequest()->getPost('ids', array());
foreach ($ids as $id) {
$model = Mage::getModel("module/module");
$model->setId($id)->delete();
}
Mage::getSingleton("adminhtml/session")->addSuccess(Mage::helper("adminhtml")->__("Item(s) was successfully removed"));
}
catch (Exception $e) {
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
}
$this->_redirect('*/*/');
}
/**
* Export order grid to CSV format
*/
public function exportCsvAction()
{
$fileName = 'module.csv';
$grid = $this->getLayout()->createBlock('module/adminhtml_module_grid');
$this->_prepareDownloadResponse($fileName, $grid->getCsvFile());
}
/**
* Export order grid to Excel XML format
*/
public function exportExcelAction()
{
$fileName = 'module.xml';
$grid = $this->getLayout()->createBlock('module/adminhtml_module_grid');
$this->_prepareDownloadResponse($fileName, $grid->getExcelFile($fileName));
}
}
?>
D: \ wamp \ www \ projectname \ app \ code \ local \ Career \ Module \ etc \ config.xml
<?xml version="1.0"?>
<config>
<modules>
<Career_Module>
<version>0.0.1</version>
</Career_Module>
</modules>
<frontend>
<routers>
<career>
<use>standard</use>
<args>
<module>Career_Module</module>
<frontName>career</frontName>
</args>
</career>
</routers>
<layout>
<updates>
<Career_Module>
<file>career.xml</file>
</Career_Module>
</updates>
</layout>
</frontend>
<global>
<helpers>
<module>
<class>Career_Module_Helper</class>
</module>
</helpers>
<blocks>
<module>
<class>Career_Module_Block</class>
</module>
</blocks>
<models>
<module>
<class>Career_Module_Model</class>
<resourceModel>module_mysql4</resourceModel>
</module>
<module_mysql4>
<class>Career_Module_Model_Mysql4</class>
<entities>
<module>
<table>career_module</table>
</module>
</entities>
</module_mysql4>
</models>
<resources>
<module_setup>
<setup>
<module>Career_Module</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</module_setup>
<module_write>
<connection>
<use>core_write</use>
</connection>
</module_write>
<module_read>
<connection>
<use>core_read</use>
</connection>
</module_read>
</resources>
</global>
<!-- <admin>
<routers>
<adminhtml>
<args>
<modules>
<module>Career_Module_index</module>
</modules>
</args>
</adminhtml>
</routers>
</admin> -->
<admin>
<routers>
<module>
<use>admin</use>
<args>
<module>Career_Module</module>
<frontName>admin_module</frontName>
</args>
</module>
</routers>
</admin>
<adminhtml>
<menu>
<module module="module">
<title>Module</title>
<sort_order>100</sort_order>
<children>
<modulebackend module="module">
<title>Module</title>
<sort_order>0</sort_order>
<action>admin_module/adminhtml_modulebackend</action>
</modulebackend>
<module module="module">
<title>Manage Module</title>
<sort_order>0</sort_order>
<action>admin_module/adminhtml_module</action>
</module>
</children>
</module>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<module translate="title" module="module">
<title>Module</title>
<sort_order>1000</sort_order>
<children>
<modulebackend translate="title">
<title>Module</title>
<sort_order>1</sort_order>
</modulebackend>
<module translate="title">
<title>Manage module</title>
<sort_order>0</sort_order>
</module>
</children>
</module>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<module>
<file>module.xml</file>
</module>
</updates>
</layout>
</adminhtml>
</config>