Magentoの管理者側にフォームを追加する拡張機能を開発しようとしていますが、何らかの理由で、モジュールのインストール時にMagentoAdministrationをロードすることさえできないようです。私は開発の初期段階にあり、StackOverflowで数回報告されているエラーで立ち往生しています。残念ながら、私の場合、どの答えも役に立たないようです。
私が得るエラーは*致命的なエラーです:クラス'Mage_Mycompany_Logviewer_Helper_Data'が546行目のC:\ XAMPP \ htdocs \ magento \ app\Mage.phpに見つかりません*。つまり、Magentoはヘルパークラスを見つけることができませんが、そこにあり、その名前は探しているものと一致します(最初の「Mage_」を除いて、他の拡張機能では使用していません)。
更新2012/07/29MagentoAdmin
にログインするとすぐにエラーが発生します。「ログイン」をクリックすると、エラーページだけが表示され、何も表示されません。
これが私がこれまでに持っているすべてのファイルの内容です。
config.xml
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Logviewer>
<version>0.1.0</version>
</Mycompany_Logviewer>
</modules>
<global>
<models>
<logviewer>
<class>Mycompany_Logviewer_Model</class>
</logviewer>
</models>
<blocks>
<logviewer>
<class>Mycompany_Logviewer_Block</class>
</logviewer>
</blocks>
<helpers>
<logviewer>
<class>Mycompany_Logviewer_Helper</class>
</logviewer>
</helpers>
</global>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<mycompany_logviewer after="Mage_Adminhtml">Mycompany_Logviewer_Adminhtml</mycompany_logviewer>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<adminhtml>
<menu>
<mycompany translate="title" module="mycompany_logviewer">
<title>Mycompany</title>
<sort_order>90</sort_order>
<children>
<form translate="title" module="mycompany_logviewer">
<title>Form</title>
<sort_order>10</sort_order>
<action>adminhtml/logviewer</action>
</form>
</children>
</mycompany>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<mycompany>
<title>Mycompany</title>
<sort_order>90</sort_order>
<children>
<form>
<title>Form</title>
<sort_order>10</sort_order>
</form>
</children>
</mycompany>
</children>
</admin>
</resources>
</acl>
</adminhtml>
</config>
Data.php(ヘルパー)
class Mycompany_Logviewer_Helper_Data extends Mage_Core_Helper_Abstract
{
}
LogviewerController.php(コントローラー)
class Mycompany_Logviewer_Adminhtml_LogviewerController extends Mage_Adminhtml_Controller_Action
{
/**
* View form action
*/
public function indexAction() {
$this->loadLayout();
$this->_setActiveMenu('Mycompany/form');
$this->_addBreadcrumb(Mage::helper('Mycompany_Logviewer')->__('Form'), Mage::helper('Mycompany_Logviewer')->__('Form'));
$this->renderLayout();
}
/**
* Check allow or not access to ths page
*
* @return bool - is allowed to access this menu
*/
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('Mycompany/form');
}
}
Mycompany_Logviewer.xml(構成ファイル)
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Logviewer>
<active>true</active>
<codePool>local</codePool>
</Mycompany_Logviewer>
</modules>
</config>
上記はすべて、オンラインで見つけた例からコピーしたものです。名前空間とモジュール名をそれぞれMycompanyとLogviewerに置き換えました。それは私が忘れていた明らかなことだと確信していますが、それが何であるかを理解することはできません。助けてくれてありがとう。