Почему Magento пытается звонить в пространство имен Волшебника, а не мое пользовательское пространство имен?

Я создал модуль в папке локального кода в нашем пользовательском пространстве имен. Блок не отображается на frontend, и при проверке журнала исключения, оказывается, что Magento смотрит в неправильном месте.

exception ‘Mage_Core_Exception’ with message ‘Invalid block type:
Mage_MyCompany_ForthcomingProducts_Block_List’
in /var/www/html/app/Mage.php:407

То же также идет, если я исключаю префикс MyCompany_ при вызове блока; это все еще смотрит в пространстве имен Волшебника. У меня есть это в файле под названием MyCompany_All.xml в папке модулей, и разметки CMS, которые я добавил, хорошо работают, таким образом, Magento определенно загружает ее:

<?xml version="1.0"?>
<config>
    <modules>
        <MyCompany_CmsLayouts>
            <codePool>local</codePool>
            <active>true</active>
        </MyCompany_CmsLayouts>
        <MyCompany_ForthcomingProducts>
            <codePool>local</codePool>
            <active>true</active>
        </MyCompany_ForthcomingProducts>
    </modules>
</config>

У кого-либо есть какие-либо идеи относительно того, что вызывает это?


Добавленный: блок называет статический блок с этим кодом шаблона:
{{block type="MyCompany_ForthcomingProducts/List" template="forthcomingproducts/list.phtml"}}

И config.xml для блока:

<?xml version="1.0" encoding="utf-8"?>
    <config>
        <modules>
            <MyCompany_ForthcomingProducts>
                <version>0.9</version>
            </MyCompany_ForthcomingProducts>
        </modules>

        <global>
            <blocks>
                <forthcomingproducts>
                    <class>MyCompany_ForthcomingProducts_Block</class>
                </forthcomingproducts>
            </blocks>
       </global>
    </config>
9
задан Mufaddal 30 May 2012 в 01:43
поделиться

1 ответ

Попробуйте настроить декларацию блоков следующим образом:

{{block type="forthcomingproducts/list" template="forthcomingproducts/list.phtml"}}

В своем конфигурационном файле вы определили псевдоним для ваших блоков (forthcomingproducts), и теперь вы должны следовать этому псевдониму. Magento разыменует предстоящие продукты на MyCompany_ForthcomingProducts_Block, как вы просили, затем добавьте заглавное имя класса (list), создав имя класса MyCompany_ForthcomingProducts_Block_List. Когда вы используете алис, о котором Magento не знает (MyCompany_ForthcomingProducts в вашем примере), предполагается, что он входит в пространство имён Мага.

Надеюсь, это поможет, Джо

8
ответ дан 3 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: