Magento后端扩展未能打开流:没有这样的文件或目录

问题描述:

我试图写我的第一个扩展magento。所以我正在通过一些教程来弄清楚。Magento后端扩展未能打开流:没有这样的文件或目录

但是我遇到了在后端配置中显示一些选项的问题。

我的目录看起来像这样

--R2retail 
    /--HelloWorldTut 
    /--Block 
    /--controllers 
    /--etc 
     /--config.xml 
     /--system.xml 
    /--Helper 
     /--Data.php 
    /--Model 
     /--Options.php 
    /--sql 

我只列出了相关这里的文件。

R2retail_HelloWorldTut文件,是在/app/etc/modules/如下所示

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

我​​3210看起来像这样

<?xml version="1.0"?> 
    <config> 
    <modules> 
     <R2retail_HelloWorldTut> 
      <version>0.1.0</version> 
     </R2retail_HelloWorldTut> 
    </modules> 
    <global> 
     <helpers> 
      <helloworldtut> 
      <class>R2retail_HelloWorldTut_Helper</class> 
      </helloworldtut> 
     </helpers> 
     <models> 
      <class>R2retail_HelloWorldTut_Model</class> 
     </models> 
    </global> 
    <frontend> 
     <routers> 
      <helloworldtut> 
       <use>standard</use> 
       <args> 
       <module>R2retail_HelloWorldTut</module> 
       <frontName>helloworld</frontName> 
       </args> 
      </helloworldtut> 
     </routers> 
    </frontend> 
    <adminhtml> 
     <acl> 
     <resources> 
      <admin> 
      <children> 
       <config> 
       <children> 
        <helloworldtut_options> 
        <title>R2retail Modules</title> 
        </helloworldtut_options> 
       </children> 
       </config> 
      </children> 
      </admin> 
     </resources> 
     </acl> 
    </adminhtml> 
</config> 

system.xml看起来像这样(我怀疑的错误是这里的某个地方)

<?xml version="1.0"?> 
<config> 
    <tabs> 
     <helloworldtut translate="label" module="helloworldtut"> 
      <label>Custom Configuration Tab</label> 
      <sort_order>1</sort_order> 
     </helloworldtut> 
    </tabs> 

    <sections> 
     <helloworldtut_options translate="label" module="helloworldtut"> 
      <label>Custom Configuration Settings</label> 
      <tab>helloworldtut</tab> 
      <frontend_type>text</frontend_type> 
      <sort_order>1</sort_order> 
      <show_in_default>1</show_in_default> 
      <show_in_website>1</show_in_website> 
      <show_in_store>1</show_in_store> 
      <groups> 
       <section_one translate="label"> 
        <label>Section One</label> 
        <frontend_type>text</frontend_type> 
        <sort_order>1</sort_order> 
        <show_in_default>1</show_in_default> 
        <show_in_website>1</show_in_website> 
        <show_in_store>1</show_in_store> 
        <fields> 
         <custom_field_one> 
          <label>Custom Text Field</label> 
          <frontend_type>text</frontend_type> 
          <sort_order>1</sort_order> 
          <show_in_default>1</show_in_default> 
          <show_in_website>1</show_in_website> 
          <show_in_store>1</show_in_store> 
          <comment>Example of text field.</comment> 
         </custom_field_one> 
        </fields> 
       </section_one> 
       <secttion_two translate="label"> 
        <label>Section Two</label> 
        <frontend_type>text</frontend_type> 
        <sort_order>2</sort_order> 
        <show_in_default>1</show_in_default> 
        <show_in_website>1</show_in_website> 
        <show_in_store>1</show_in_store> 
        <fields> 
         <custom_field_two> 
          <label>Custom Select Field</label> 
          <frontend_type>select</frontend_type> 
          <source_model>helloworldtut/options</source_model> 
          <sort_order>1</sort_order> 
          <show_in_default>1</show_in_default> 
          <show_in_website>1</show_in_website> 
          <show_in_store>1</show_in_store> 
          <comment>Example of select field.</comment> 
         </custom_field_two> 
         <custom_field_three> 
          <label>Custom Radio Field</label> 
          <frontend_type>radios</frontend_type> 
          <source_model>helloworldtut/options</source_model> 
          <sort_order>1</sort_order> 
          <show_in_default>1</show_in_default> 
          <show_in_website>1</show_in_website> 
          <show_in_store>1</show_in_store> 
          <comment>Example of Radio Buttons</comment> 
         </custom_field_three> 
         <custom_field_four> 
          <label>Custom Multiselect Field</label> 
          <frontend_type>multiselect</frontend_type> 
          <source_model>helloworldtut/options</source_model> 
          <sort_order>1</sort_order> 
          <show_in_default>1</show_in_default> 
          <show_in_website>1</show_in_website> 
          <show_in_store>1</show_in_store> 
          <comments>Example of Multiselect field</comments> 
         </custom_field_four> 
        </fields> 
       </secttion_two> 
      </groups> 
     </helloworldtut_options> 
    </sections> 
</config> 

当我注释掉第二部分时。配置页面加载没有任何问题。所以出了问题,只要我做<source_model>helloworldtut/options</source_model>

Data.php看起来像这样

<?php 
/** 
* Sample Widget Helper 
*/ 
class R2retail_HelloWorldTut_Helper_Data extends Mage_Core_Helper_Abstract 
{ 
} 

最后我Options.php看起来像这样

<?php 
class R2retail_HelloWorldTut_Model_Options { 
    /** 
    * Provide available options as a value/label array 
    * 
    * @return array 
    */ 
    public function toOptionArray() 
    { 
    return array(
     array('value'=>1, 'label'=>'One'), 
     array('value'=>2, 'label'=>'Two'), 
     array('value'=>3, 'label'=>'Three'),    
     array('value'=>4, 'label'=>'Four')      
    ); 
    } 
} 

我希望有人能帮助我找出我的位置我错了

我还没有测试过你的代码,但你可能是对的源模型导致问题EM。

您参考模型别名:

<source_model>helloworldtut/options</source_model> 

然而,别名没有定义 - 也许你通过你的模型定义有点冲得太快?

<models> 
    <class>R2retail_HelloWorldTut_Model</class> 
</models> 

需要有一个别名:

<models> 
    <helloworldtut> 
     <class>R2retail_HelloWorldTut_Model</class> 
    </helloworldtut> 
</models> 
+0

我张贴Magento的堆栈,以及与已经有了答案在那里。但那确实是我犯的错误。我甚至不确定我是如何错过那个以tho开头的。 – NoSixties