2011-04-20 55 views
2

我想在我正在開發的Magento擴展中有一個調試標誌。我想在開發時以及當我向用戶發佈擴展時刪除它(默認爲false),將其設置爲true。什麼是實施這個最好的方法?Magento:我如何在我的Magento擴展中有一個「調試標誌」?

首先想到的是將此標誌默認爲false,並在我的應用程序/ etc/local.xml文件中將其設置爲true。但是,如何將一個新的XML節點引入local.xml並讓Magento基礎結構解析(如果適用於我並使其可用於我的PHP代碼)?還有其他更簡單的方法嗎?

+0

無意冒犯,但請修改你的問題讓你想更加明確什麼完全實現。看完你的問題後,它看起來像調試標誌應該分佈無論如何。在你自己的回答中,你不希望將調試標誌分配給所有人,這與矛盾的問題是矛盾的。讓人們浪費時間^^ – 2011-04-21 10:57:35

+0

@JürgenThelen - 沒有拍過。很抱歉對於這個誤會。我已經按照你的要求重新提出了這個問題,儘管有點太晚了。 – urig 2011-05-02 13:12:27

回答

3

Magento的心給了我在Magento的論壇一個很好的解決方案:http://www.magentocommerce.com/boards/viewthread/226496/

引述他們:

一種解決方案來設置和你的模塊中得到 調試標誌的是 其添加到在您的模塊的等 目錄中的config.xml。

您可以將其添加到部分。 所以你的部分就會像:

<default> 
    <your_module> 
     <debug>1</debug>  
    </your_module> 
</default> 

而且從代碼,你可以得到這樣的:

$debugFlag = Mage::getStoreConfig('your_module/debug');

而我現在要做的就是把相同的XML塊我的local.xml文件。這樣,它只能在我的開發機器上啓動,並且不會與我的Magento擴展一起發佈(就像擴展自己的config.xml一樣)

3

通過管理面板進行配置,默認設置爲false。如果它在代碼中,用戶可以隨時切換它,所以你可以把它放在設置面板的開發者部分。

1

我會使用Magento的admin/system/config

添加適當的etc/system.xml你的模塊,如:

<config> 
    <!-- : --> 
    <tabs> 
     <!-- : --> 
     <mycompany> 
      <label>My Company Tab</label> 
      <sort_order>99</sort_order> 
     </mycompany> 
     <!-- : --> 
    </tabs> 
    <!-- : --> 
    <sections> 
     <!-- : --> 
     <mymodule> 
      <label>My Module</label> 
      <tab>mycompany</tab> 
      <frontend_type>text</frontend_type> 
      <sort_order>99</sort_order> 
      <show_in_default>1</show_in_default> 
      <show_in_website>1</show_in_website> 
      <show_in_store>1</show_in_store> 
      <groups> 
       <mygroup> 
        <label>My Group</label> 
        <frontend_type>text</frontend_type> 
        <sort_order>99</sort_order> 
        <show_in_default>1</show_in_default> 
        <show_in_website>1</show_in_website> 
        <show_in_store>1</show_in_store> 
        <fields> 
         <debug> 
          <label>Debug</label> 
          <frontend_type>select</frontend_type> 
          <source_model>adminhtml/system_config_source_yesno</source_model> 
          <sort_order>99</sort_order> 
          <show_in_default>1</show_in_default> 
          <show_in_website>1</show_in_website> 
          <show_in_store>1</show_in_store> 
         </debug> 
        </fields> 
       </mygroup> 
      </groups> 
     </mymodule> 
     <!-- : --> 
    </sections> 
</config> 

如果部分mymodule沒有之前已經存在,你還需要定義最初模塊的訪問控制(必須付諸的etc/config.xml你的模塊):

</config> 
    <!-- : --> 
    <adminhtml> 
     <!-- : --> 
     <acl> 
      <resources> 
       <admin> 
        <children> 
         <system> 
          <children> 
           <config> 
            <children> 
             <mymodule > 
              <title>My Module</title> 
             </mymodule> 
            </children> 
           </config> 
          </children> 
         </system> 
        </children> 
       </admin> 
      </resources> 
     </acl> 
     <!-- : --> 
    </adminhtml> 
    <!-- : --> 
</config> 

現在,管理員可以通過選擇

改變通Magento的後端定義的調試標誌3210

System -> Configuration - My Module - My Group - Debug - Yes|No

爲了讓您的調試標誌的當前值編程,您可以使用:

$sFlag = Mage::getStoreConfig('mymodule/mygroup/debug');  // null | '0' | '1' 
$bFlag = Mage::getStoreConfigFlag('mymodule/mygroup/debug'); // true | false