2015-04-24 105 views
0

我是magento的新手,並且正在對模塊進行一些更新。 據我所見,admin的所有表單配置都是通過system.xml完成​​的,因此我需要添加某種依賴關係,因爲我希望表單檢查某些api憑證,如果它們正確顯示其他輸入。 我已經試過依賴標記,但我不能從那裏調用一個函數。Magento依賴關係自定義表格

所以我有兩個問題: 如何管理,使依賴時,它依賴於一個值,我不知道,除非我例如諮詢的API,我可以這樣做:

<usertoken translate="label"> 
    <label>User Token</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> 
</usertoken> 
<new_value translate="label"> 
    <label>New Value</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> 
    <depends><usertoken><action>mymodule/system_config_source_token/retorno</action></usertoken></depends> 
</new_value> 

如果所以,我應該用什麼來代替行動。

我的第二個問題是,是否有任何其他方式在管理面板中構建一個窗體比使用system.xml,我想創建我自己的自定義窗體,使用AJAX,帶有複選框的表....但會想了解如何整合這一點。

+0

Stackoverflow一次只能提問一個問題。因爲你的問題是針對Magento的,所以我建議考慮在Magento Stackexchange上發佈:http://magento.stackexchange.com/ - 對於哪些XML元素是可用的以及它們是如何工作的,你可以通過閱讀magento的源代碼。如果你不想這樣做,不要這樣問,而應該提供一個它如何工作的方法,然後詢問它是否因爲你期望它工作而不工作。但除非檢查來源或諮詢支持。 – hakre

回答

0

是否有任何其他方式在管理面板中構建一個窗體比使用system.xml,我想創建我自己的自定義窗體,使用AJAX,帶有複選框的表....但想了解如何我可以整合嗎?

是的。 Magento是相當模塊化的,你在XML配置中看到的所有東西都有一個PHP代碼中的對應部分。大部分PHP代碼可以在您自己的模塊中擴展。

您通過使用步調試器集成最佳,並找到核心magento中的功能。然後考慮如何擴展magento以應用/注入您正在尋找的更改的衆多方法之一。 ' 在你的情況下,你也可能會問錯誤的問題。配置值不依賴於另一個配置值。無論是否存在,您生成的代碼都不應該搜索某些內容,而只是詢問它需要運行的信息。這應該保持整體邏輯不那麼複雜=更少的錯誤。

回答正確的問題可能是:爲什麼依賴關係在配置內而不在代碼內?

0

您可以通過在adminhtml_init_system_config事件中聲明觀察者來添加系統配置字段的依賴關係。這會讓你修改所有模塊的xml聲明的標籤,組,字段的system.xml。觀察者方法如下所示:

public function initSystemConfig($observer){ 
     $config = $observer->getConfig(); 
     $paymentGroups = $config->getNode('sections/payment/groups'); 
     //modify the payment groups array here... 

page對Magento的事件,以及如何掛鉤到他們的教程。