Я создал модуль в папке локального кода в нашем пользовательском пространстве имен. Блок не отображается на 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>
Попробуйте настроить декларацию блоков следующим образом:
{{block type="forthcomingproducts/list" template="forthcomingproducts/list.phtml"}}
В своем конфигурационном файле вы определили псевдоним для ваших блоков (forthcomingproducts
), и теперь вы должны следовать этому псевдониму. Magento разыменует предстоящие продукты
на MyCompany_ForthcomingProducts_Block
, как вы просили, затем добавьте заглавное имя класса (list
), создав имя класса MyCompany_ForthcomingProducts_Block_List
. Когда вы используете алис, о котором Magento не знает (MyCompany_ForthcomingProducts
в вашем примере), предполагается, что он входит в пространство имён Мага.
Надеюсь, это поможет, Джо