簡體   English   中英

使用塊的帶有網格的自定義Magento管理模塊-具有消息“無效塊類型”的“ Mage_Core_Exception”

[英]Custom Magento Admin module with grid using block - 'Mage_Core_Exception' with message 'Invalid block type'

我正在開發一個自定義的magento admin后端模塊,該模塊將具有一個網格,其中包含可以添加/編輯的項目。 這是我的模塊結構:

/Mycompany/
---/Mymodule/
-------/Block/
-----------/Adminhtml
--------------/Manageskumappings.php
--------------/Manageskumappings/
-----------------/Grid.php
-----------------/Edit.php
-----------------/Edit/
--------------------/Form.php
-------/controllers/
-----------/Adminhtml
--------------/ManageskumappingsController.php
-------/etc/
-------/Helper/
-------/Model/
-------/sql/

這是我模塊的config.xml

<?xml version="1.0"?>
<config>

    <!-- Module Info -->
    <modules>
        <Mycompany_Mymodule>
            <version>2.0.0</version>
        </Mycompany_Mymodule>
    </modules>

    <!-- Module Globals -->
    <global>

        <!-- Register Helper -->
        <helpers>
            <mycompany_mymodule>
                <class>Mycompany_Mymodule_Helper</class>
            </mycompany_mymodule>
        </helpers>

        <!-- Register Models -->
        <models>
            <mycompany_mymodule>
                <class>Mycompany_Mymodule_Model</class>
                <resourceModel>mycompany_mymodule_mysql4</resourceModel>
            </mycompany_mymodule>
            <mycompany_mymodule_mysql4>
                <class>Mycompany_Mymodule_Model_Mysql4</class>
                <entities>
                    <skumappings>
                        <table>icw_ic_skumappings</table>
                    </skumappings>
                </entities>
            </mycompany_mymodule_mysql4>
        </models>

        <!-- Register Resource -->
        <resources>
            <mycompany_mymodule_setup>
                <setup>
                    <module>Mycompany_Mymodule</module>
                </setup>
            </mycompany_mymodule_setup>
        </resources>

    </global>

    <!-- Admin Router -->
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <Mycompany_Mymodule after="Mage_Adminhtml">Mycompany_Mymodule_Adminhtml</Mycompany_Mymodule>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>

    <!-- Admin Layout -->
    <adminhtml>
        <layout>
            <updates>
                <mycompany_mymodule>
                    <file>mycompany/mymodule.xml</file>
                </mycompany_mymodule>
            </updates>
        </layout>
    </adminhtml>

</config>

這是我的模塊的adminhtml.xml

<?xml version="1.0"?>
<config>

    <!-- Menu Setup -->
    <menu>
        <mycompany translate="title" module="mycompany_mymodule">
            <title>Infinite:Connect v2</title>
            <sort_order>0</sort_order>
            <children>
                <mycompany_mymodule_manageskumappings>
                    <title>Manage SKU Mappings</title>
                    <sort_order>1</sort_order>
                    <action>adminhtml/manageskumappings</action>
                </mycompany_mymodule_manageskumappings>
            </children>
        </mycompany>
    </menu>

    <!-- Access Control List -->
    <acl>
        <resources>
            <admin>
                <children>                
                    <mycompany translate="title" module="mycompany_mymodule">
                        <title>My Module</title>
                        <sort_order>1</sort_order>
                        <children>
                            <manageskumappings>
                                <title>Manage SKU Mappings</title>
                                <sort_order>1</sort_order>
                            </manageskumappings>
                        </children>
                    </mycompany>
                </children>
            </admin>
        </resources>
    </acl>

</config>

我創建了以下布局文件:

app / design / adminhtml / default / default / layout / mycompany / mymodule.xml

具有以下定義:

<?xml version="1.0"?>
<layout>

    <!-- Manage SKU Mappings -->
    <adminhtml_manageskumappings_index>
        <reference name="content">
            <block type="mycompany_mymodule/adminhtml_manageskumappings" name="mycompany_mymodule_manageskumappings" />
        </reference>
    </adminhtml_manageskumappings_index>

</layout>

這是我的網格控制器:

app / code / community / Mycompany / Mymodule / controllers / Adminhtml / ManageskumappingsController.php

使用以下代碼:

<?php

class Mycompany_Mymodule_Adminhtml_ManageskumappingsController extends Mage_Adminhtml_Controller_Action
{
    protected function _isAllowed()
    {
        return Mage::getSingleton('admin/session')
            ->isAllowed('mycompany/manageskumappings');
    }

    protected function _initAction()
    {
        $this->loadLayout()
            ->_setActiveMenu('mycompany/mycompany_mymodule_manageskumappings')
            ->_title('Manage SKU Mappings');

        return $this;
    }

    public function indexAction()
    {  
        $this->_initAction()
            ->renderLayout();
    }

    // ... Snipped ...

我已經上傳了代碼,數據庫被遷移,並顯示菜單。 當我進入菜單“ Mymodule-> Manage SKU Mappings”時,我看到一個空白頁面。

我去看看var / log / exception.log,我看到了以下內容:

/var/www/public_html/app/Mage.php:595中帶有消息“無效塊類型:Mage_Mycompany_Mymodule_Block_Adminhtml_Manageskumappings”的異常“ Mage_Core_Exception”

知道有什么問題嗎?

我看到的第一個錯誤是:您忘記注冊塊了。 請將塊定義部分添加到模塊config.xml中:

<config>
...
    <global>
    ...
        <!-- Register Blocks -->
        <blocks>
            <mycompany_mymodule>
                <class>Mycompany_Mymodule_Block</class>
            </mycompany_mymodule>
        </blocks>
    ...
    </global>
...
<config>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM