2011-05-25 13 views
11

我在周圍的Magento內部,並在Widget/Tab呈現層次結構中有這個陰影標籤的概念,我有點模糊。當你定義表單標籤,可以綁定它作爲一個陰影選項卡什麼是Magento的UI對象層次中的陰影選項卡?

protected function _prepareLayout() 
{ 
    parent::_prepareLayout(); 
    $this->addTab('bundle_items', array(
     'label'  => Mage::helper('bundle')->__('Bundle Items'), 
     'url' => $this->getUrl('*/*/bundles', array('_current' => true)), 
     'class' => 'ajax', 
    )); 
    $this->bindShadowTabs('bundle_items', 'customer_options'); 
} 

bindShadowTabs方法與

/** 
* Mark tabs as dependent of each other 
* Arbitrary number of tabs can be specified, but at least two 
* 
* @param string $tabOneId 
* @param string $tabTwoId 
* @param string $tabNId... 
*/ 
public function bindShadowTabs($tabOneId, $tabTwoId) 

,它利用PHP對象的JavaScript看起來像

文件
showTabContentImmediately : function(tab) { 
    this.hideAllTabsContent(); 
    var tabContentElement = $(this.getTabContentElementId(tab)); 
    if (tabContentElement) { 
     Element.show(tabContentElement); 
     Element.addClassName(tab, 'active'); 
     // load shadow tabs, if any 
     if (tab.shadowTabs && tab.shadowTabs.length) { 
      for (var k in tab.shadowTabs) { 
       this.loadShadowTab($(tab.shadowTabs[k])); 
      } 
     } 
     if (!Element.hasClassName(tab, 'ajax only')) { 
      Element.removeClassName(tab, 'notloaded'); 
     } 
     this.activeTab = tab; 
    } 
    if (varienGlobalEvents) { 
     varienGlobalEvents.fireEvent('showTab', {tab:tab}); 
    } 
}, 

從基本閱讀來看,我不完全清楚使一個標籤「依賴」另一個標籤的含義是什麼。這是一個簡單的「只呈現bundle_item選項卡,如果customer_options標籤被渲染?或者更多的東西?

+0

不知道我會將這稱爲答案,但與您所說的不同,如果您加載具有影子選項卡的選項卡,影子選項卡將自動加載。因此,不必顯式加載標籤A,B,C,只需加載A和B,就可以爲您加載C?快速瀏覽一下就是猜測。 – 2011-05-26 13:32:56

回答

5

看起來這意味着,只要任何綁定在一起shadowTabs顯示在其他選項卡在這個GROP選項卡也將呈現。

所以不是,而是「每當bundle_item選項卡或customer_options標籤呈現,會使另一一樣。」「如果customer_options標籤呈現只呈現bundle_item標籤」。

我不確定我喜歡暗影的比喻,但是。